Oi,

>  O problema é: (usarei como exemplo uma filial, lembrem possuem dois links
>  wan):
>  No box linux da filial preciso escolher um dos 2 links para ser meu gateway
>  default (o link mestre). Para que o mecanismo de failover detecte a queda do
>  link mestre, preciso de um mecanismo ou script que monitore (icmp/ping) o
>  link e, passe o gateway para o link backup, caso ocorra uma falha e, retorne
>  o gateway quando o link mestre voltar. Resolvendo isso no nivel de
>  roteamento os túneis vpn funcionam transparentes ao mecanismo.
>
>  Considero usar OPENVPN na matriz e filiais, mas conheço pouco da solução.
>  Aceito outras sugestões.

Definitivamente vc vai querer usar o openvpn... é facil e simples de
usar e vc pode combinar ele com outras soluções.

>  Coloquei essa mesma dúvida na lista openvpn-users e apenas uma pessoa
>  respondeu dizendo que usou "eql driver do linux" numa situação semelhante
>  para resolver isso. Ao que parece o OpenVpn não trata questões de failover,
>  espera que outro mecanismo faça isso para ele.

Existe mais de uma solução, ja comento elas. Mas vc esta engando
quando a questão do failover. o OPENVPN tem sim suporte a failover, e
vc pode usar ele.

>  O iproute2 não pode resolver isso também!

resolver não, mas definitivamente ele faz parte da solução.

Vou falar de uma forma mais generica, e vc escolhe o que melhor se
adapta a sua situação.

1) no openvpn vc pode definir mais de um servidor de destino. o
openvpn tb possui um mecanismo de verificação do link, no qual ele
"pinga" regularmente o destino para detectar que ele esta vivo.
digamos que  no seu servidor vc dispare dois daemons openvpn, um
fazendo bind no ip A porta X e outro no ip B porta Y. No seu cliente
vpn basta que vc coloque como servers o A:X e o B:Y. Tá... mas e como
ficam as rotas? dai é que entra o iproute. No ip route vc pode criar
uma tabela de rotas adicional, na qual a rota default  é o seu link
backup. Assim vc terá o teu sistema a tabela de rotas normal e mais a
essa. Com o iptables vc pode marcar os pacotes com um "tag" e usar o
ip rule fazendo com que pacotes com um determinada tag use a tabela de
rotas alternativa (procure no google por roteamento pela origem, ou va
direto em lartc.org).

2) essa é mais ninja... vc usa interfaces tap no openvpn. abre duas
conexoes vpn cada uma usando um link (use o ip route/rule como na
solução acima). adiciona as interfaces tap a uma bridge e usa
spanning-tree para cuidar da falha. Como é possivel vc atribuir
prioridades, vc resolve o problema do link principal / link
secundario.

3) A solução 2 tem um problema... que é quando vc tem falhas cruzadas,
ou seja, morre o link principal do servidor e o link backup do
cliente. Bom... tem ainda a solução 3, que é um melhoramento da
solução 1. O servidor mantem dois daemons, e usa o ip route para
rotear cada "daemon" (dica, marque os pacotes usando a porta de
origem) por cada link. Na filial vc cria duas configurações, uma para
cada daemon. e Finalmente usa o gnu mon, para pingar alguns destinos
(por exemplo o gateway de cada link) para decidir quem tá de pé e que
link do servidor está ok, e com isso decide a configuração de rota
default/vpn a usar.


mais um dica... pode ajudar... se vc vai usar o ppp(oe) para se
autenticar, vc pode mexer nos scripts que criam a rota default para
que ele atribua "pesos" (metricas na linguagem de redes) a cada rota,
assim é possivel ter duas rotas defaults, sendo que uma é melhor que a
outra. Se um link falhar, o ppp remove a rota default corresponde da
tabela de roteamento e o sistema pode então escolher a "segunda"
melhor rota default.

-- 
Christian Lyra
PoP-PR/RNP
---------------------------------------------------------------------------
Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utilização da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a