Alta disponibilidade de Links com CentOS 6

Publicado por Carlos Eduardo Maciel Rodrigues (última atualização em 15/07/2012)

[ Hits: 6.619 ]

Download script_links.txt




O objetivo deste script é checar se o link principal está online, caso o mesmo não esteja é trocado automaticamente para o link secundário e assim que o link principal volta a ficar online a conexão é direcionada para placa principal novamente.

Este script tem a função de checar a disponibilidade dos links de internet, fazendo com que a empresa nunca fique sem internet, sendo que toda vez que o link principal fica indisponível a conexão é direcionada para o link secundário.  

Para que este script funcione os scripts de firewall deve esta configurado com o seguinte cenário:

Linux CentOS 6 com 3 placas de redes sendo:

eth0 = local 192.168.0.1 (rede local)
eth1 = 200.200.200.10  (link dedicado) principal
eth2 = 189.189.189.10  (link vivo)        secundário



  



Esconder código-fonte

#!/bin/bash
#
#####################################
##Carlos Eduardo Maciel Rodrigues                              #
# cadurodrigues@hotmail.com                                     #
#####################################
 
PATH=/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/

# gateway do Link principal

LDGW=200.200.200.1
DNS=4.2.2.2
 
# gateway do link Secundário
LVGW=189.189.189.1

IPTABLES=/sbin/iptables
 
# Testa acesso ao DNS do Google
# Se o mesmo estiver funcionando não é alterado as conexões caso contrário é deletada 
#a rota da placa principal e adicionada a rota da placa secundária.

if ping -c 2 -i 1 -q $DNS > /dev/null 2>&1; then         
       echo "PING OK"
   else
       if route -n | grep $LDGW > /dev/null; then
       route del default gw $LDGW  eth1 > /dev/null

       echo "adicionando nova rota default da Vivo"
       route add default gw $LVGW eth2 > /dev/null
       echo "Rota do Link da vivo adicionada"
       fi
fi

# Caso a rota da placa principal foi trocado para placa secundária o sistema lê o (fi) abaixo.
#O (fi) abaixo verifica se o link principal voltou a funcionar, caso o mesmo tenha voltado é trocado 
#a conexão da placa secundária para placa principal.

  # "Testando link principal" 
 
if
    ping -c 2 -i 1 -q $LDGW > /dev/null 2>&1; then
    echo "voltando para o link principal"
    route del default gw $LVGW eth2 > /dev/null
    echo "Adicionando Rota do Link dedicado"
    route add default gw $LDGW eth1 > /dev/null
   
fi 

#fim do script.

Scripts recomendados

Tux Colorido

Configurando Adaptador USBSerial no Ubuntu usando udev

Linkswitch (The POG)

Script de alteração do sources.list

Download do banco de dados NCBI NR (DNA)


  

Comentários
[1] Comentário enviado por retcon em 02/08/2012 - 10:17h

Meu cliente tem 2 links (net 10Mb e Vivo 4Mb) fiz um servidor de internet Debian 6.0 com squid e sarg usando 3 placas de rede, ai foi só usar esse script e adaptar para minhas configurações que ficou blz. Agora quando cai a net, o vivo entra automaticamente e quando volta a net é novamente trocada a rota. Obs. adcionei esse script na crontab para rodar a cada 1 minuto. Valeu Cadu.

[2] Comentário enviado por cristianrocks em 11/10/2012 - 09:53h

Olá, sou meio novo no universo linux, estou testando seu script em um Centos 6.3 e só me retorna que o comando grep não foi encontrado no comando route -n | grep $LDGW. Poderia me dar uma luz do que poderia ser? Grato

[3] Comentário enviado por cadurodrigues14 em 02/09/2013 - 11:34h

Olá Quote, desculpe fiquei um tempo afastado, porém essa dúvida é tranquila já tentou dar um restart nas placas de rede ?

[4] Comentário enviado por cadurodrigues14 em 02/09/2013 - 11:36h


[1] Comentário enviado por retcon em 02/08/2012 - 10:17h:

Meu cliente tem 2 links (net 10Mb e Vivo 4Mb) fiz um servidor de internet Debian 6.0 com squid e sarg usando 3 placas de rede, ai foi só usar esse script e adaptar para minhas configurações que ficou blz. Agora quando cai a net, o vivo entra automaticamente e quando volta a net é novamente trocada a rota. Obs. adcionei esse script na crontab para rodar a cada 1 minuto. Valeu Cadu.


Cristianrocks , boa tarde.

Desculpe fiquei um tempo afastado, porém essa dúvida é tranquila já tentou dar um restart nas placas de rede ?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts