melhorar script failover link de internet

1. melhorar script failover link de internet

jose marciano de sousa brito
jmsb

(usa Outra)

Enviado em 25/08/2015 - 17:52h

ola a todos , tenho um scripts adquirido aqui o vivaolinux, ele faz a redundância de dos links de internet da empresa se um cair o outro assume, so tem um pequeno problema , quando o link principal volta ele tem que assumir, a internet não pode sair pelo backup, tem que volta pro principal , só esta voltando se o backup cair. vou posta o script quem pode me ajudar a melhorar

galera antes de criticar e pedir pra estudar sobre os comandos e ações no sistemas linux , eu vou entender que tem quer fuçar e ler sobre os assunto , eu estou justamente fazendo isso
mais o caso e um pouco urgente ,e agradeço quem pode me ajudar .

segue abaixo o script

#!/bin/bash

### CONFIGURE AS VARIÁVEIS AQUI:
testeip="8.8.8.8"
iface1=eth0
iface2=eth1
gw1="10.26.20.1"
gw2="10.15.20.1"
nomeGw1="link1"
nomeGw2="link2"
### FIM DA CONFIG.
rota1=0
rota2=0
nomeScript="loadbalanceFAILOVER.sh"

iniciar(){
### LIMPEZA:
iptables -t mangle -F
iptables -t mangle -X
iptables --flush
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X
ip route flush cache
### HABILITA ROTEAMENTO:
echo "1" > /proc/sys/net/ipv4/ip_forward
### MASCARA OS PACOTES COM DESTINO A INTERNET (NAT):
iptables -t nat -A POSTROUTING -o $iface1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $iface2 -j MASQUERADE
### ADICIONA OS GATEWAYS NAS DEVIDAS INTERFACES:
route add -net default gw $gw1 dev $iface1
route add -net default gw $gw2 dev $iface2

### LINK 1 ATIVO
clear
echo "Link em atividade: $nomeGw1"
echo "Interface:$iface1"
echo "Gateway:$gw1"
echo "Status: Ok"
while [ $(ping -qc 3 $testeip -I $iface1 > /dev/null 2>&1 ; echo $? ) = 0 ]
do
if [ $rota1 = 0 ]
then
rota1=1
route del -net default gw $gw2 dev $iface2
fi
done

route add -net default gw $gw2 dev $iface2

### LINK 2 ATIVO
clear
echo "Link em atividade: $nomeGw2"
echo "Interface:$iface2"
echo "Gateway:$gw2"
echo "Status: Ok"
while [ $(ping -qc 3 $testeip -I $iface2 > /dev/null 2>&1 ; echo $? ) = 0 ]
do
if [ $rota2 = 0 ]
then
rota2=1
route del -net default gw $gw1 dev $iface1
fi
done

### Se os links estiverem 'down', tenta uma reparação restartando a rede e chamando novamente o script:
if [ $(ping -qc 3 $testeip -I $iface1 > /dev/null 2>&1 ; echo $? ) != 0 ] || [ $(ping -qc 3 $testeip -I $iface2 > /dev/null 2>&1 ; echo $? ) != 0 ]
then
clear
echo "Sem conexao!"
echo "Tentando reparar..."
/etc/init.d/networking stop
/etc/init.d/networking start
iniciar
fi
}
parar(){
kill -9 `ps aux | grep $nomeScript | awk '{print $2}'`
echo "Morto"
exit
}
helpp(){
echo "Para executar o script, usa-se a seguinte sintaxe:"
echo " "
echo "Iniciar:"
echo "sh $nomeScript start"
echo "Parar:"
echo "sh $nomeScript stop"
echo "Rodar em modo background:"
echo "sh $nomeScript start &"
echo "Após rodar em background, verifique se está rodando:"
echo "ps aux | grep $nomeScript"
echo "Obs.: Não esquecer de configurar as VARIÁVEIS do script de acordo com sua rede."
echo " "
echo ""
echo " "
exit
}
case $1 in
'start') iniciar ; exit ;;
'stop') parar ; exit ;;
'--help') helpp ; exit ;;
*) echo "Parâmetro desconhecido: '$1'" ; echo "Utilize --help para informações. Exemplo: sh $nomeScript --help"; exit ;;
esac





  


2. Re: melhorar script failover link de internet

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 26/08/2015 - 13:18h

Utilize o UCARP, já ouviu falar? Ae não tem necessidade d script.
--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts