[GTER] Failover de link ADSL

Flavio Junior billpp at gmail.com
Thu Mar 19 14:30:39 -03 2009


As rotas serão removidas quando as interfaces forem baixadas pelo
script, antes de rodar o dhclient na placa que deve assumir o link...

Vamos a um caso extremamente simples, um script:

#!/bin/bash
#

# Links por eth
ADSL=eth1
EBT=eth2

# Descobrindo link atual
LinkAtual="$(awk '$1~/0.0.0.0/{print $NF}' < <(route -n))"

# Hosts de teste
HOST[0]="200.160.2.3" # registro.br
HOST[1]="$(awk '$1~/0.0.0.0/{print $2}' < <(route -n))"

LinkStatus="DOWN"
for host in ${HOST[@]}; do
 ping -c2 -w2 -q $host >/dev/null 2>&1
 if [ $? -eq 0 ]; then
   exit 0
 fi
done

if [ "$LinkStatus" == "DOWN" ]; then
 ifdown $ADSL || ifconfig $ADSL down
 ifdown $EBT || ifconfig $EBT down
 if [ "$LinkAtual" == "$ADSL ]; then
   ifup $EBT || dhclient $EBT || dhcpcd $EBT
 else
   ifup $ADSL || dhclient $ADSL || dhcpcd $ADSL
 fi
fi

## FIM DO SCRIPT


Isso ta grosseiro e eu escrevi diretamente aqui no e-mail...
A ideia do funcionamento eu acho que ta correta, ou seja:

1. Executa testes no link atual
2. Se o link estiver fora, DESATIVA AS PLACAS DE REDE DE INTERNET e
reativa a do OUTRO link (dhclient)
2. Se o link estiver OK, ignora o restante do script

Veja que eu considerei o gateway como um host de teste, nem todos
cenarios são assim, muitas vezes a internet cai e o gateway ainda
responde ping, ou então o gateway se torna um IP de LAN que o modem
forneceu via DHCP e assim responde ping..
Tu pode por 2, 3, 4, X hosts ali pra testar... Qto mais testes, mais
tempo o script executa..

O caso agora seria por isso no crontab:

*/5 * * * * /usr/local/bin/script_ninja_linkswitch.sh


--

Flávio do Carmo Júnior aka waKKu

2009/3/19 Alexandro Corrêa - SulSoft <alexandro at sulsoft.com.br>:
> Sobre essa questão de rotas criadas pelo DHCLIENT, depois de adquirir o IP
> eu costumo rodar um script que remove todas as rotas e cria novamente
> conforme minhas necessidades.
> Tem funcionado bem até o momento...
>
> Atenciosamente,
>
>        Alexandro Corrêa
> Tecnologia da Informação
> alexandro at sulsoft.com.br
> Fone/Fax: +55 (51) 3333-1581
>
>
> "Esta mensagem pode conter informação confidencial e/ou privilegiada. Se
> você não for o destinatário ou a pessoa autorizada a receber esta mensagem
> não pode usar copiar ou divulgar as informações nela contidas ou tomar
> qualquer tipo de ação baseada nessas informações. Se você recebeu esta
> mensagem por engano por favor avise imediatamente o remetente respondendo o
> e-mail e em seguida apague-o."
>
>
> bruno at openline.com.br escreveu:
>>
>> --- Leonardo Amaral <leleobhz at leleobhz.org> escreveu:
>>
>>>
>>> Mas quando der o DHClient na primeira interface ele não "come"
>>> a rota da primeira?
>>>
>>
>> na verdade fica com 2 rotas...
>>
>> o que você pode fazer é alterar o script que "sobe" a rota
>> (o dhclient chama um script pra setar interface e rota)
>> e guardar o gateway num arquivo
>>
>> dai quando precisar mudar, verifica o arquivo e muda de
>> acordo
>>
>> pode no down do dhclient também remover o arquivo para
>> saber que este está down
>>
>> []s, !3runo
>>
>> --
>> gter list    https://eng.registro.br/mailman/listinfo/gter
>>
>
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
>



More information about the gter mailing list