Alternar gateways em falha (WRT)

1

Eu tenho dois roteadores WRT, cada um conectado ao seu próprio gateway sem fio (telefone celular e hotspot do outro lado da rua). As rotas dos roteadores são conectadas com WDS e na mesma sub-rede, para que os clientes possam se conectar a qualquer gateway (dependendo das configurações de rede). Estou tentando implementar um script para que o gateway do roteador 2 seja alterado para apontar para o roteador 1 quando o gateway do roteador 2 não puder acessar a Internet (quando desligamos o ponto de acesso no telefone ou quando o telefone não está em casa). Ele precisa mudar de volta quando o gateway do Roteador 2 estiver de volta.

Como documentado aqui Gateway duplo com failover , encontrei o script abaixo, mas depois de implementá-lo nos scripts de inicialização, ele não está alterando meu gateway quando eu desconecto o gateway principal.

Eu li e li sobre vários gateways e diferentes rotas estáticas com métricas diferentes, e quando um é inacessível, o padrão é a outra rota. Se é assim e pode ser implementado em um roteador WRT no modo Repeater Bridge, então o tipo de script abaixo é necessário, e alguém me apontaria na direção certa? Obrigado.

INTERVAL=6 
PACKETS=2 
USINGWAN=0 
GW=br0 
WAN1GW=192.168.3.4 
WAN2GW=192.168.3.1 
DNS1=202.88.149.25 
CH=1 

while sleep $INTERVAL 
do 
TARGET='ip route | awk '/default via/ {print $3}'' 
if [ "$WAN1GW" = "$TARGET" ]; then 
USINGWAN=1; 
else if [ "$WAN2GW" = "$TARGET" ]; then 
USINGWAN=2; 
fi; 
fi 
RET='ping -c $PACKETS $DNS1 2>/dev/null | awk '/packets received/ {print $4}'' 
if [ "$RET" -lt "$CH" ]; then 
if [ "$USINGWAN" = "1" ]; then 
ip route delete default via $WAN1GW dev $GW 
ip route add default via $WAN2GW dev $GW 
sleep 2 
USINGWAN=2 
echo "Changed active WAN port to 2!" 
fi 
fi 
if [ "$USINGWAN" = "2" ]; then 
WAN1STAT='ping -c $PACKETS $DNS1 2>/dev/null | awk '/packets received/ {print $4}'' 
if [ "$WAN1STAT" = "$PACKETS" ]; then 
ip route delete default via $WAN2GW dev $GW 
ip route add default via $WAN1GW dev $GW 
sleep 2 
USINGWAN=1 
echo "Changed active WAN port to 1!" 
fi 
fi 
done; 

Below are the creator/users comments:
Used the code above with ping to only one ip, added a static route in gateway 192.168.3.1 for ping ip to be always routed through 192.168.3.4 as a result of which in case of ping failure gateway changed to secondary gateway and once ping was back live it switched to primary... Also used -lt variable to make sure that gateway changed on at least 2 ping failures and not 1.
    
por TDave00 21.04.2015 / 14:53

0 respostas