hackingsnake
(usa Slackware)
Enviado em 16/02/2011 - 09:16h
Só altere os dados que estiverem em LETRA_MAIÚSCULAS=
depois disso salve esse script com o nome que vc quiser e execute via nohup ex.: salvei com o nome de failover.sh vou chamar este no rc.local nohup failover.sh
Boa Sorte.
# gwping
#IP Address or domain name to ping. The script relies on the domain being
#pingable and always available
##Modifique para um endereço mais perto, ou seja mais rápido, neste caso usei o IP da GVT
TESTIP=www.uol.com.br
# Relative weights of routes. Keep this to a low integer value. I am using 4
# for TATA connection because it is 4 times faster
## Peso das rotas, como o link da Gvt é 2x mais rápido que a BRT, deixei a proporção 2:1
W1=2
W2=1
# Broadband providers name; use your own names here.
## Mudei para o nome das minhas tabelas
NAME1=GVT
NAME2=BRT
# No of repeats of success or failure before changing status of connection.
## No meu caso se houver 4 tentativas sem resposta o link é desabilitado, uma tentativa com sucesso ele reabilida o link. Assim o script não vai trocar a rota padrão e achar que o link caiu quando houver sobrecarga.
SUCCESSREPEATCOUNT=1
FAILUREREPEATCOUNT=4
# Abaixo acrescentei as regras para desmarcar os pacotes caso um link caia,
# assim os pacotes marcados não retornaram sem resposta.
echo Switching to $NAME2
ip route replace default scope global via $GW2 dev $EXTIF2
ip rule del fwmark 0x10 lookup gvt prio 3 ##Deleta a marcação de pacotes
ip rule del fwmark 0x20 lookup brt prio 3 ##Deleta a marcação de pacotes
ip route flush cache #Limpa as rotas no cache
elif [[ $LLS1 -eq 0 && $LLS2 -eq 1 ]]; then
echo Switching to $NAME1
ip route replace default scope global via $GW1 dev $EXTIF1
ip rule del fwmark 0x10 lookup gvt prio 3 ##Deleta a marcação de pacotes
ip rule del fwmark 0x20 lookup brt prio 3 ##Deleta a marcação de pacotes
ip route flush cache #Limpa as rotas no cache
elif [[ $LLS1 -eq 0 && $LLS2 -eq 0 ]]; then
echo Restoring default load balancing
ip rule add fwmark 0x10 lookup gvt prio 3 ##Adiciona a marcação de pacotes quando voltar o link que caiu
ip rule add fwmark 0x20 lookup brt prio 3 ##Adiciona a marcação de pacotes quando voltar o link que caiu
ip route replace default scope global nexthop via $GW1 dev $EXTIF1 weight $W1 nexthop via $GW2 dev $EXTIF2 weight $W2
ip route flush cache ##Limpa as rotas no cache