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 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: 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 nao tenho 2 maquina para > > fazer com carp. > > > > > > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd