[GTER] redundancia ADSL
Tux Wi-FI
tuxwifi at gmail.com
Wed Jul 23 14:29:08 -03 2008
Saudações,
Eu uso em um cliente, deixeis os dois modens adsl em BRIDGE e ainda um
roteador cisco com um link dedicado.
uso o adsl-start(ou pppoe-start, dependendo da distro) para conectar,
ai levanta as interfaces ppp0 e ppp1.
To usando da seguinte forma, segue meus scripts... Qualquer coisa da um grito...
Funciona assim: Quando uma ADSL cai, automaticamente a interface PPP
dela tb cai, entao a rota "desaparece". Quando ela conecta denovo, o
script ip-up cria as rotas novamente e chama o script criarota.sh para
testar todas os "links" e criar a rota com os HOPs certos...
Tem funcionado legal, apesar de estar meio "tosco"..
Ah, usei o nome das tabelas com o mesmo nome da interface, para facilitar...
cat /etc/iproute2/rt_tables
#
# reserved values
#
#255 local
#254 main
#253 default
#0 unspec
#
# local
#
#1 inr.ruhep
10 ppp0
11 ppp1
12 eth1
30 eth0
[levantando rotas]
ip route add IP-gateway-do-ppp0 dev ppp0 src ip-da-interface-ppp0 table ppp0
ip route add default via IP-gateway-do-ppp0 table ppp0
ip route add IP-gateway-do-ppp1 dev ppp1 src ip-da-interface-ppp1 table ppp1
ip route add default via IP-gateway-do-ppp1 table ppp1
ip route add classe-ip-do-cisco/24 dev eth1 src ip-do-roteador-cisco table eth1
ip route add default via ip-do-roteador-cisco table eth1
ip route add default via ip-do-roteador-cisco
ip rule add from ip-do-roteador-cisco table eth1
ip rule add from ip-da-interface-ppp0 table ppp0
ip rule add from ip-da-interface-ppp1 table ppp1
ip rule add fwmark 3 lookup eth0 prio 3
ip rule add fwmark 4 lookup ppp0 prio 3
ip rule add fwmark 5 lookup ppp1 prio 3
ip rule add fwmark 6 lookup eth1 prio 3
ip route add default table eth0 nexthop dev eth1 weight 1 nexthop dev
ppp0 weight 1 nexthop dev ppp1 weight 1
[/levantando rotas]
[inicio /etc/ppp/ip-up]
ip route add $PPP_REMOTE dev $PPP_IFACE src $PPP_LOCAL table $PPP_IFACE
ip route add default via $PPP_REMOTE table $PPP_IFACE
ip rule del table $PPP_IFACE
ip rule add from $PPP_LOCAL table $PPP_IFACE
/opt/criarota.sh
[fim /etc/ppp/ip-up]
[inicio /opt/criarota.sh]
srv-gat:~# cat /opt/criarota.sh
#!/bin/sh
ping -qc5 -I eth1 www.uol.com.br >/dev/null
if [ $? -gt 0 ]; then # Se cair a net, executar ...
testeETH1=""
else # Caso contrario, executar...
testeETH1=" nexthop dev eth1 weight 2"
fi
ping -qc5 -I ppp0 www.uol.com.br >/dev/null
if [ $? -gt 0 ]; then # Se cair a net, executar ...
testePPP0=""
else # Caso contrario, executar...
testePPP0=" nexthop dev ppp0 weight 1"
fi
ping -qc5 -I ppp1 www.uol.com.br >/dev/null
if [ $? -gt 0 ]; then # Se cair a net, executar ...
testePPP1=""
else # Caso contrario, executar...
testePPP1=" nexthop dev ppp1 weight 1"
fi
cmd="ip route add default table eth0 $testeETH1 $testePPP0 $testePPP1"
#echo "Conexao ETH1 $testeETH1 - Conexao PPP0 $testePPP0 - Conexao
ppp1 $testePPP1"\n
ip route del default table eth0
$cmd
ip route flush cached
[fim /opt/criarota.sh]
2008/7/23 bruno at openline.com.br <bruno at openline.com.br>:
> --- "Flavio Junior" <billpp at gmail.com> escreveu:
>> Só adicionando (eu espero que sem falar besteiras) a resposta do amigo..
>>
>> Por que não funciona?
>>
>> Esse esquema do ip route trabalharia com metricas de rota e peso.
>> No teu caso, os 2 links trabalhariam ativo/ativo como um (ambos tem o
>> mesmo peso) e dividindo a carga em 50% pra cada.
>>
>> Por que não funciona quando a ADSL cai?
>> Por que o iproute não detecta o rompimento do link, já que o que caiu
>> foi a WAN do MODEM e ele ta linkado na LAN do mesmo. Ou seja, pra ele
>> o link ta OK (e realmente está).
>
> Ola
>
> Ja experimentou remover o IP/deixar somente a rota para
> a interface? No caso de down da interface a rota seria
> ignorada e mantida só a outra? Conta pra gente o resultado
> desse teste! ;-)
>
> Tipo assim (com os PPP no próprio linux ao invés de em
> roteadores ou máquinas externas da LAN. man adsl-connect)
>
> ip route add default scope global nexthop dev ppp0 weight 1 \
> nexthop dev ppp1 weight 1
>
> []s,
> !3runo
>
>> Se tu conseguisse progrmar um trap/trigger num modem adsl desses pra
>> quando a interface WAN caisse e/ou perdesse o IP válido ele derrubasse
>> a interface LAN tambem, o teu comando iproute funcionaria muito bem.
>> Assim que o iproute detectar a queda do link na ethX, ele para de
>> encaminhar os pacotes por ela e usa somente a ethY.
>> Seria necessário talvez só mais algumas linhas definindo tables e as
>> rotas de cada table.
> --
> gter list https://eng.registro.br/mailman/listinfo/gter
>
--
[]´s
CeBoLaRk
http://www.tuxwifi.com.br
msn: cebolark at hotmail.com
More information about the gter
mailing list