[FUG-BR] Script para troca automatica de rota.

2011-01-24 Por tôpico Alessandro de Souza Rocha
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.

-- 
Alessandro de Souza Rocha
Administrador de Redes e Sistemas
FreeBSD-BR User #117
             Long live FreeBSD

                     Powered by 

                                          (__)
                                       \\\'',)
                                         \/  \ ^
                                         .\._/_)

                                     www.FreeBSD.org
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Script para troca automatica de rota.

2011-01-24 Por tôpico Luan Tasca
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  21  
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  
21  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  21  
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  21 
 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: luanta...@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 

Re: [FUG-BR] Script para troca automatica de rota.

2011-01-24 Por tôpico Pedro Madsen
vc pode conjugar com o ifstated do ports, faz isso muito bem:

http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/ifstated/
http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/ifstated/

http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/ifstated/Abs!

Em 24 de janeiro de 2011 15:45, Luan Tasca luan...@gmail.com escreveu:

 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  21 
 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
 21  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  21 
 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  21
  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

 #

 

 --