Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: PCLinuxOS 2012 LXDE
Por pinduvoz
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Redundância de links v0.1
Linux user
Publicado por Rafael Tomelin em 01/08/2008

Login: c.rafael, 121862 pontos | Blog: http://teclinux.no-ip.org:8080
[ Hits: 9470 ]

Redundância de links v0.1

Pessoal, como tive trabalho para achar alguma dica de redundância, resolvi criar um script para resolver o meu problema.

O script abaixo está todo comentado, então acho que fica fácil para todos. E como o fiz o mais dinâmico possível, é só mudar as variáveis que funcionará.

Antes de começar, criaremos o diretório /etc/link e o arquivo de log /var/log/redundante.log:

# mkdir /etc/link
# touch /var/log/redundante.log


No diretório /etc/link ficarão todos os arquivos utilizados pelo o script. Já no arquivo de log /var/log/redundante.log ficará todo o log gerado a cada execução do script.

Sempre que um link caiu e o outro substituiu o mesmo, demorou cerca de uns 20 segundos para a internet ficar no ar.

#!/bin/bash

#####A Embratel usa o TERRA para fazer o teste (ping)
TERRA="200.176.2.10"

#####A GVT usa o UOL para fazer o teste (ping)
UOL="200.98.249.120"

#####GW da Embratel
ROTAEMBRATEL="10.0.0.55"

#####GW da GVT
ROTAGVT="10.1.1.1"

#####IP fixo da Embratel
IPEMBRATEL="10.0.0.170"

#####IP da gvt
IPGVT="10.1.1.254"

#####Interface da REDE INTERNA
ETHG="eth0"

#####Interface da Embratel
ETHE="eth1"

#####Interface da GVT
ETHG="eth2"

#####IP do terra para fazer o teste de ping
TESTE="200.176.2.10"

#####Arquivo de firewall da Embratel
FWE="/etc/link/fwembratel.sh"

#####Arquivo de firewall da gvt
FWG="/etc/link/fwgvt.sh"

#####Data atual
DATA=`date +%Y-%m-%d`

#####Verifica a rota atual
ROTAATUAL=`(route -v | grep default | awk -F' ' '{ print $2}')`

#####Deleta a rota
ROTADEL="route del default gw "

##### Comando para adicionar a rota
ROTAADD="route add default gw "

#####Adiciona a rota do terra (Se a Embratel estiver fora)
route add -host 200.176.2.10 gw 10.0.0.55 dev eth1
route add -host 200.98.249.120 gw 10.1.1.1 dev eth2

#####Se o terra pingar, o link está OK

if ( ping -I $ETHE -c 4 $TERRA > /dev/null ); then

#Cria os logs
echo $DATA >> /var/log/redundante.log
echo "Link Embratel está OK" >> /var/log/redundante.log

#####Se a rota default for igual a rota da Embratel, não faz nada
if [ "$ROTAATUAL" == "$ROTAEMBRATEL" ]; then
echo "Rota Embratel está OK" >> /var/log/redundante.log

#####Se a rota default for diferente da Embratel, coloca a rota default como Embratel
else
$ROTADEL $ROTAGVT
$ROTAADD $ROTAEMBRATEL
$FWE
echo "Ativado a rota da Embratel" >> /var/log/redundante.log
#Envia um email avisando que o link da Embratel voltou a funcionar
mail -s "Link da EMBRATEL volto a funcionar"
meuemail@meudominio.com.br < /etc/link/embratel.txt
fi

#Finaliza os logs
echo "Fim da verificação EMBRATEL" >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
echo " " >> /var/log/redundante.log

else

#####Se pingar é porque o link está ok
if ( ping -I $ETHG -c 4 $UOL >/dev/null ); then

#cria os logs
echo $DATA >> /var/log/redundante.log
echo "Link GVT está OK" >> /var/log/redundante.log

##### Se a rota default for igual a da gvt, não faz nada
if [ "$ROTAATUAL" == "$ROTAGVT" ]; then
echo "Rota Embratel ainda está fora do ar" >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
echo " " >> /var/log/redundante.log

##### Se a rota default for diferente da GVT, adiciona a rota default como sendo da GVT
else
$ROTADEL $ROTAEMBRATEL
$ROTAADD $ROTAGVT
$FWG
echo "Ativando a rota da GVT" >> /var/log/redundante.log
#Envia o email avisando o que link da Embratel está fora do ar (embratel_caiu.txt) e que o link da GVT irá assumir (gvt.txt)
mail -s "Link da EMBRATEL fora do AR" meuemail@meudominio.com.br <
/etc/link/embratel_caiu.txt
mail -s "Link da GVT está no AR" meuemaile@meudominio.com.br < /etc/link/gvt.txt
fi

#Cria os logs
echo "Fim da verificação GVT" >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
fi

fi

#####Deleta rotas do Terra
route del -host 200.176.2.10 gw 10.0.0.55 dev eth1
route del -host 200.98.249.120 gw 10.1.1.1 dev eth2

Temos que dar permissão de execução nos scripts de firewall (fwembratel.sh e fwgvt.sh).

Os arquivos usados no script acima podem ser baixados aqui.

Colaboração de: Jorge Borcelli


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Atualização do Firefox pelo navegador no Slackware
   Dica Linux recomendada Conectividade Social da Caixa Econômica - Resolvendo definitivamente
   Dica Linux recomendada Iptables comunitário
   Dica Linux recomendada Baixando vídeos de sites feitos em flash
   Dica Linux recomendada Limitação de banda de download com wget

Comentários
[1] Comentário enviado por dhcamargo em 18/09/2008 - 13:24h:

Muito legal este script! Mas o arquivo dos scripts para download está corrompido. Vc teria os arquivos fwembratel.sh e fwgvt.sh para me enviar? meu email é dhcamargo@hotmail.com Obrigado, abraços!

[2] Comentário enviado por dhcamargo em 03/10/2008 - 11:04h:

vc colocou o script principal no cron? se sim, de quanto em quanto tempo configurou para ele rodar?


[3] Comentário enviado por c.rafael em 03/10/2008 - 11:30h:

Oi DHCAMARGO,

Irei enviar para o seu e-mail os scripts.
Coloquei o arquivo principal no cron para rodar a cada 5 minutos

[4] Comentário enviado por dhcamargo em 03/10/2008 - 11:39h:

Obrigado! Sobre os scripts, estão ok agora, acho que vc acertou eles =) Foi o melhor script que encontrei na net sobre redundância sem load-balance. Abraços!

[5] Comentário enviado por randão em 31/10/2008 - 12:07h:

Rafael boa tarde,

Venho por meio de este e-mail lhe solicitar o script que esta compactado, pois o mesmo ao ser baixado esta com problemas. Meu e-mail e rande33@gmail.com.
Estou com uma dificuldade em realizar a redundância do meu Link de Internet e meu speedy. O que ocorre não sei se pode me ajudar tenho dois Servers aqui na empresa
rodando Debian com tres placas de redes cada uma para a rede interna outra para o link e uma que esta ligada via cabo cross entre os servers. Tenho um Link da telefônica e um
speedy que no caso utilizo para a redundância, mas quando meu Link cai tenho que sair correndo para altear as configurações para meu Speedy, pois a NET não pode para aqui
a idéia seria quando o speedy cair o link assumir automático e vise-versa... Teria alguma idéia para me ajudar... Dês de já agradeço sua atenção...


[6] Comentário enviado por info24hs em 20/11/2008 - 10:58h:

Usei esse script pot muito tempo, funciona muito bem...

[7] Comentário enviado por calaff2 em 14/12/2008 - 21:48h:

Amigo tem como vc mandar o script para meu email e se possivel os script do:
#####Arquivo de firewall da Embratel
FWE="/etc/link/fwembratel.sh"
#####Arquivo de firewall da gvt
FWG="/etc/link/fwgvt.sh"

Att: Idalmo Junior
calaff2@hotmail.com

[8] Comentário enviado por calaff2 em 14/12/2008 - 22:07h:

Agora amigo + 1 pergunta como funciona: mail -s "Link da EMBRATEL fora do AR" meuemail@meudominio.com.br <
/etc/link/embratel_caiu.txt
mail -s "Link da GVT está no AR" meuemaile@meudominio.com.br < /etc/link/gvt.txt

você ta usando que sistema para enviar o email caso o link caia ?

Att: Idalmo Junior
calaff2@hotmail.com

[9] Comentário enviado por esmatos em 15/05/2009 - 13:47h:

boa tarde, funcionaria em uma distribuição CENTos?
Pode ser duas ADSL com IP's variáveis - PPPOE? (GVT 2Mb e BRTURBO de 4Mb)
se sim gostaria de recebero o script por mail para esmatos@terra.com.br
Caso não funcione com ip variável tem algum modo de ser feito isto?

Grato.

[10] Comentário enviado por LPI em 29/08/2009 - 12:08h:

Ola, fera se poder me enviar os email ficarel grato, o email é lucas_vts@hotmail.com.
desde ja obriga, e parabéns pelo script.

[11] Comentário enviado por jorgealf em 05/10/2009 - 21:22h:

Amigo tem como vc mandar o script para meu email e se possivel os script do:
#####Arquivo de firewall da Embratel
FWE="/etc/link/fwembratel.sh"
#####Arquivo de firewall da gvt
FWG="/etc/link/fwgvt.sh"

Att: Jorge Lima
jorge-fl@uol.com.br


[12] Comentário enviado por msgoulart em 22/12/2009 - 14:34h:

Buenas Jorge, muito bom este script, tem como enviar para o meu e-mail:
msgoulartrs@gmail.com
Muito Obrigado.

[13] Comentário enviado por msgoulart em 22/12/2009 - 14:38h:

Tchê por favor me envie os scripts (fwembratel.sh e fwgvt.sh) tmbm...
É muito bom mesmo este script, vai me ajudar bastante na resolução do meu problema...
Obrigado.

[14] Comentário enviado por alexsilva_bike em 11/02/2010 - 18:46h:

Tem como enviar os escriptes que estão faltando ?
Valeu

[15] Comentário enviado por adailtonlp em 10/05/2010 - 10:14h:

Ola Rafael!!!
Parabéns pelo artigo! Das documentações que li na internet o seu artigo é sem duvida muito pratico e didatico!!
O amigo poderia me enviar os arquivos do seu script?
Atenciosamente,
Adailton Lima Pereira
GOIANIA - GO
adailton.lima@gmail.com.


[16] Comentário enviado por trgtecno em 10/10/2010 - 08:26h:

bom dia. pode me enviar os scripts de cada link? Obrigado

[17] Comentário enviado por ramos1986 em 10/11/2010 - 17:39h:

Boa tarde, tem como enviar os scripts dos links?

Obrigado e parabéns pelo artigo.

[18] Comentário enviado por thiagoanselmo em 27/11/2010 - 17:43h:

Amigo Tem como Você compartilhar esses scripts comigo me enviando por e-mail?

thiagoo.anselmoo@gmail.com

Parabéns pelo trabalho!!!

[19] Comentário enviado por alexandredsc em 08/04/2011 - 16:45h:

Muito bom o script, mas no meu caso, não consigo executar o comando route -v quando o gateway default é o do link principal, que caiu.
O script para naquela linha:
#####Verifica a rota atual
ROTAATUAL=`(route -v | grep default | awk -F' ' '{ print $2}')`

Mas se o gateway for o do link secundário, consigo executar o comando e o script funciona perfeitamente.
Entretanto, o padrão é que o gateway default seja do link principal.
Alguém já passou por algo assim?

[20] Comentário enviado por eluanf em 23/03/2012 - 20:54h:

Boa noite, gostaria de saber, neste script qual dos dois links é o principal? E se acaso esse principal voltar a funcionar ele volta automaticamente a operar?
Outra duvida é a variável ETHG que esta atribuída tanto para etho quanto para a eth2, isso esta correto?

Muito obrigado, parabéns pelo post...


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.