Você está na página 1de 3

02/12/2009

Alta disponibilidade de links [Artigo]

Alta disponibilidade de links


Autor: Bruno <bzanelato at gmail.com> Data: 16/11/2004 Introduo Nosso objetivo consiste em construir um ambiente de alta disponibilidade de link e somente de link, para o nosso cliente. Ns no utilizaremos ferramentas como iproute2 e heartbeat neste documento, pois nosso foco ser somente alta disponibilidade de link e no balanceamento de link ou replicao de dados.

Ambiente O cliente possui 2 links, o primeiro uma LP de 256 Kbps e o segundo um Speedy Empresarial.
Link 1 (Principal) LP = 200.232.63.203 GW = 200.232.63.201 IFACE = ETH0 Link 2 (Secundrio/Speedy)IP = 200.207.207.91 GW = 200.207.207.65 IFACE = ETH2

Basicamente a idia que se o primeiro link cair, o outro assume, ento a partir disto fui tentar achar algo na internet, mas nada do que eu achei me ajudou, ou era complicado demais para a soluo que eu queria. Ento resolvi colocar a mo na massa e escrever um shell script com regex que resolvesse o meu problema. A minha dvida era como eu faria se o link secundrio entrasse em ao aps a queda do link primrio e se o link primrio voltasse a responder aps alguns minutos, que ele voltasse a ser o link principal como antes, alm disso, colocando as regras de MASQUERADE para cada interface de rede, toda vez que uma assumia o posto. A soluo foi trabalhar com rotas, manter a interface eth2 (link secundrio) up sempre e fazer um script que ficasse pingando o gateway da LP (link principal) e no o prprio ip da eth0, isto obvio, pois ele sempre ir conseguir pingar ele mesmo. Se o gateway da LP (200.232.63.201) parar de responder, o script automaticamente apaga a rota default da LP e adiciona o ip do gateway da Speedy como rota default e finalmente adiciona a regras de
vivaolinux.com.br//impressora.php? 1/3

02/12/2009

Alta disponibilidade de links [Artigo]

MASQUERADE para todos na interface eth2 que agora se torna a principal. Coloquei no crontab para este script rodar de 5 em 5 minutos, se o link principal voltar a responder, o script vai conseguir pingar a vai entrar em ao, deletando as rotas correspondentes ao link secundrio e tambm as regras de POSTROUTING que estavam ativas na eth2, colocando a eth0 "LP" como link principal novamente.

Implantao Segue abaixo o script que torna esta soluo possvel, coloque-o em /etc/init.d e depois torne-o executvel com "chmod 775": #!/bin/bash # ##################################### # bruno@cdcorp.com.br 22/10/04 # # levanta tunnel adsl # ##################################### PATH=/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # gateway da LP LPGW=200.232.63.201 # speedy SPEEDY=200.207.207.65 IPTABLES=/sbin/iptables # Testa acesso ao gateway da LP if ping -c 2 -i 1 -q $LPGW > /dev/null 2>&1; then echo "PING OK" if route -n | grep $SPEEDY > /dev/null;then echo "ROTA SPEEDY ENCONTRADA..DELETANDO..." route del default gw $SPEEDY > /dev/null echo "ROTA SPEEDY DELETADA" route add default gw $LPGW > /dev/null echo "ROTA LP adicionada" echo "Iniciando regras de firewall" $IPTABLES -t nat -D POSTROUTING 1 > /dev/null $IPTABLES -t nat -A POSTROUTING -i eth0 -j MASQUERADE > dev/null echo "REGRAS DE FIREWALL OK" fi # tudo ok echo "OK..SAINDO" exit 0
vivaolinux.com.br//impressora.php? 2/3

02/12/2009

Alta disponibilidade de links [Artigo]

else echo "SENAO...." echo "Caso a LP esteja down" 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 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 done

http://www.vivaolinux.com.br/artigo/Alta-disponibilidade-de-links Voltar para o site

vivaolinux.com.br//impressora.php?

3/3

Você também pode gostar