[FUG-BR] Script para troca automatica de rota.
Luan Tasca
luanfug em gmail.com
Segunda Janeiro 24 15:45:35 BRST 2011
Uso esse script em um cliente, ele é meio grande mais traz um bom
resultado..
#
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
export TERM=linux
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# roteadores locais
dgw="200.215.41.1" # Oi
gw2="189.127.142.41" # ?
rota_atual=`/sbin/route -n | grep UG | awk '{printf $2}'`
# interface conectada aos roteadores
if_dgw="eth1" # Oi
if_gw2="eth4" # ?
# ips da internet para teste de conexao
ip_teste1="8.8.8.8"
ip_teste2="200.176.2.10"
# limpando terminal...
clear
# adicionando rotas temporarias para teste
echo + adicionando rotas temporarias para o teste do primeiro roteador...
echo " "
/sbin/route add -host $ip_teste1 gw $dgw $if_dgw
/sbin/route add -host $ip_teste2 gw $dgw $if_dgw
/sbin/route -n
sleep 2
# testando o link padrao de navegacao
echo " "
echo + testando roteador padrao... pingando o primeiro ip de teste...
ping -q -c 2 $ip_teste1 -I $if_dgw > /tmp/defaultgw1.link 2>&1 &&
status_dgw="UP" || status_dgw="DOWN"
if [ $status_dgw == DOWN ]; then
echo - FALHA! verificando conectividade no segundo ip de teste
atraves da rota padrao...
ping -q -c 2 $ip_teste2 -I $if_dgw > /tmp/defaultdgw2.link
2>&1 && status_dgw="UP" || status_dgw="DOWN"
rm /tmp/defaultdgw2.link
fi
sleep 2
# removendo rotas temporarias de teste
echo + removendo rotas temporarias para o teste do roteador padrao...
/sbin/route del -host $ip_teste1 gw $dgw $if_dgw
/sbin/route del -host $ip_teste2 gw $dgw $if_dgw
sleep 2
# limpando arquivos temporarios
echo + removendo arquivos de logs do primeiro teste...
rm /tmp/defaultgw1.link
sleep 2
# testando segunda rota padrao
clear
echo + adicionando rotas temporarias para o teste do segundo roteador...
echo " "
/sbin/route add -host $ip_teste1 gw $gw2 $if_gw2
/sbin/route add -host $ip_teste2 gw $gw2 $if_gw2
/sbin/route -n
sleep 2
# testando o link padrao de navegacao
echo " "
echo + testando o roteador secundario... pingando o primeiro ip de teste...
ping -q -c 2 $ip_teste1 -I $if_gw2 > /tmp/defaultgw3.link 2>&1 &&
status_gw2="UP" || status_gw2="DOWN"
if [ $status_gw2 == DOWN ]; then
echo - FALHA! verificando conectividade no segundo ip de teste
atraves da rota secundaria...
ping -q -c 2 $ip_teste2 -I $if_gw2 > /tmp/defaultgw4.link 2>&1
&& status_gw2="UP" || status_gw2="DOWN"
rm /tmp/defaultgw4.link
fi
sleep 2
# limpando arquivos temporarios
echo + removendo arquivos de logs do segundo teste...
rm /tmp/defaultgw3.link
sleep 2
# removendo rotas temporarias de teste
echo + removendo rotas temporarias para o teste do segundo roteador...
/sbin/route del -host $ip_teste1 gw $gw2 $if_gw2
/sbin/route del -host $ip_teste2 gw $gw2 $if_gw2
sleep 2
#
----------------------------------------------------------------------------------
# tratamento dos resultados..
#
----------------------------------------------------------------------------------
case $status_dgw:$status_gw2 in
UP:UP)
echo " "
echo - Sem problemas de Conectividade - usando o link Oi como
padrao. . .
if [ $rota_atual == $dgw ];
then echo - Sem necessidade de ajustes. . .
else
/sbin/route add default gw $dgw
/sbin/route del default gw $gw2
fi
echo " "
;;
UP:DOWN)
echo " "
echo - ATENCAO! problemas no link secundario!
alterando navegacao para Oi!
if [ $rota_atual == $dgw ];
then echo - Gateway padrao ja setado para Oi!
else
/sbin/route add default gw $dgw
/sbin/route del default gw $gw2
fi
echo " "
;;
DOWN:UP)
echo " "
echo - ATENCAO! problemas no roteador padrao Oi! -
alterando navegacao para o link secundario!
if [ $rota_atual == $gw2 ];
then echo - configuracoes ok!
else
/sbin/route add default gw $gw2
/sbin/route del default gw $dgw
fi
echo " "
;;
DOWN:DOWN)
echo " "
echo - ATENCAO! os links nao estao respondendo! entre
em contato com a provedora e verifique os cabos!
echo " "
;;
*)
exit 0
;;
esac
#
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--
Luan Tasca
e-mail: luantasca em gmail.com
tel: 48 - 99494665
twitter: @luantasca
site: www.beersd.com.br
BSD User: 51785
|/- Amar é... deletar o Windows do HD !
/|
|/
/|
Em 24-01-2011 15:27, Alessandro de Souza Rocha escreveu:
> Boa tarde, alguem de vcs aqui na lista tem alguns script para troca de
> rota default quando um link
> ou adsl cai.
> pesquisando no google so tenho carp, so que nao tenho 2 maquina para
> fazer com carp.
>
Mais detalhes sobre a lista de discussão freebsd