[GTER] Failover de link ADSL

Flavio Junior billpp at gmail.com
Wed Mar 18 23:35:24 -03 2009


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
>>
>>
>
>
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
>



More information about the gter mailing list