[GTER] Failover de link ADSL

Leonardo Amaral leleobhz at leleobhz.org
Thu Mar 19 10:49:23 -03 2009


Mas quando der o DHClient na primeira interface ele não "come" a rota da 
primeira?

Flavio Junior escreveu:
> Eu ainda nao entendi sua preocupaçao com o DHCP, ele na verdade vai te ajudar...
>
> Ele configure ip, maskara, bcast e gateway automatico, eh soh executar
> o dhclient ou ifup (depende da tua distro).
>
> Veja a ideia que escrevi (ultimo post), se ela nao funcionar pra voce
> me diga porque e tentamos resolver...
> Falo isso porque ja utilizei a mesma ideia e um script parecido par
> fazer exatamente o que deseja.
>
> --
>
> Flávio do Carmo Junior aka waKKu
>
> 2009/3/18 Leonardo Amaral <leleobhz at leleobhz.org>:
>   
>> O problema e que tenho um ADSL e um Virtua (que me da IP Direto, nao tem
>> como rotear o modem). Cada vez que eu uso o dhclient ele me manda um router
>> diferente, e nao tem como eu fixar o IP, então esta é minha duvida.
>>
>> E eu nao quero load-balance. A demanda e so detectar se um link caiu e
>> levantar o outro, e vice-versa.
>>
>> Alexandro, vou comer esse script pra ver se ele vai funfar legal e retorno
>> se rolar.
>>
>> Obrigado a todos, e espero ter uma solucao mesmo que simples.
>>
>> Flavio Junior escreveu:
>>     
>>> 2009/3/18 Leonardo Amaral <leleobhz at leleobhz.org>:
>>>
>>>       
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA1
>>>>
>>>> Antes de continuar, gostaria de agradecer a todos que responderam
>>>> minha pergunta (Eu sei que todo administrador de rede tem birra disso
>>>> e eu também tenho :P) ...
>>>>
>>>> Alexandro Corrêa, Sm, é por ai. Se o seu script se comportar bem com
>>>> DHCP, por favor me mande.
>>>>
>>>>         
>>> Leonardo, não vejo diferenças com o uso de DHCP.
>>> A troca do IP de saida é tranquila, o problema vai acontecer no caso
>>> de SSL e não vejo muita solução. O caso do sticky-address que citaram
>>> é pra uma aplicação de 2 links em load-balance, o que não é seu caso
>>> (isso garante que, quando uma conexão for pra porta 443 (por exemplo),
>>> ela seja sempre pelo menos IP/link de saida, já que o normal é
>>> alternar links pra balancear a saida).
>>>
>>> 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
>>> 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
>>>
>>> Claro que seria legal ele te avisar qdo trocar link, e tudo mais.. ai
>>> é só fazer um script mais completo, mas a ideia ta ai..
>>>
>>>
>>> --
>>>
>>> Flávio do Carmo Júnior aka waKKu
>>>       



More information about the gter mailing list