Neste artigo venho compartilhar a minha experiência e desespero quando precisei criar um sistema de alta disponibilidade de links em ambiente Linux numa Sexta-feira às 5:30 da tarde. Acredito que muitos já passaram por isso. Obtive sucesso com a minha solução e espero que este artigo ajude muitas pessoas contribuindo ainda mais com a comunidade.
Nosso objetivo consiste em construir um ambiente de alta
disponibilidade de link e somente de link, para o nosso cliente.
Nós não utilizaremos ferramentas como iproute2 e
heartbeat neste documento, pois nosso foco será somente
alta disponibilidade de link e não balanceamento de link ou
replicação de dados.
[2] Comentário enviado por pop_lamen em 16/11/2004 - 01:25h
Amigo, bem legal,
mas eu acho q faltou um IF aih, se a LP estivesse down, mas o speedy ja configurado, então ele deveria sair:
echo "verifica se existe rota da LP, se existir deleta"
if route -n | grep $LPGW > /dev/null; then
route del default gw $LPGW > /dev/null
fi
#agora vamos checar se o gw ja nao eh speedy
if if route -n | grep $SPEEDY > /dev/null ;then
#se for sai, se não continua
echo "Speedy ja ativado"
exit 0
else
echo "adiciono a rota default da speedy"
route add default gw $SPEEDY > /dev/null
echo "rota adicionada"
$IPTABLES -t nat -D POSTROUTING 1 > /dev/null
$IPTABLES -t nat -A POSTROUTING -i eth2 -j MASQUERADE > /dev/null
echo "regras de firewall adicionadas"
fi
#acionamos um ultimo
fi
done
--------------
Além disso serial legal implementar funções, a asism chama-las com um loop infinito, pausando, podendo assim, checar tudo de tempo em tempo.
[3] Comentário enviado por silvioreis em 16/11/2004 - 03:41h
Bruno,
A proposta é boa, mas a sua implementação precisa melhorar, essas soluções de coisas no cron monitorando de tempos em tempos são horriveis.
Estou trabalhando no mesmo problema e não vejo como fugir do iproute2 + "alguma coisa".
O problema link dedicado com ip fixo e link adsl com ip dinamico parece não ser muito facil de resolver de maneira simples, ou seja, sem precisar aplicar patches de kernel.
[6] Comentário enviado por chroot em 16/11/2004 - 10:18h
Obrigado pela forca galera, deixando claro que a solução esta aberta para criticas e opiniões, pois o objetivo é que juntos, consigamos tornar a solução a melhor possivel, então mãos a obra e ajudem a comunidade ;)
[11] Comentário enviado por andrelopes.mrx em 26/12/2009 - 16:52h
Eu achei precário, que a inteligência fique num script agendado no cron, pense nisso: mantenha rota para os 2 gateways de saída para a internet, sendo a saída pelo link secundário com uma metrica pior.
Em ambientes BSD, você pode monitorar as interfaces de maneira eficiente com ifstated, mas creio que para o seu cenário nem isso seja necessário.