EdgeMAX - automática WAN Failover

Visão geral


Leitores aprenderão como habilitar WAN failover sobre o EdgeRouter.

EdgeMAX pode lidar com múltiplas WANs com failover. Para um artigo mais recente que mostra esta implementação com failover automático, visite aqui .

Minha configuração de interface é a seguinte:

eth0 - WAN - IP: 10.75.1.2 / Gateway 10.75.1.1
eth1 - LAN - IP: 192.168.1.1
eth2 - WAN - IP: 10.90.1.2 / Gateway 10.90.1.1

 Primeiro passo é adicionar duas tabelas para a tabela de roteamento. Eu uso o vi para isso. Linha de comando:

sudo su
vi /etc/iproute2/rt_tables
1 ISP_PORT0
2 ISP_PORT2
Save

 Em seguida, adicione o seguinte ao /etc/rc.local:

#ADD ROUTE FOR PORT 0
ip route add 10.75.1.0/24 dev eth0 src 10.75.1.2 table ISP_PORT0
ip route add default via 10.75.1.1 table ISP_PORT0

#ADD ROUTE FOR PORT 2
ip route add 10.90.1.0/24 dev eth2 src 10.90.1.2 table ISP_PORT2
ip route add default via 10.90.1.1 table ISP_PORT2

#ADD RULES FOR WAN(s)
ip rule add from 10.75.1.2 table ISP_PORT0
ip rule add from 10.90.1.2 table ISP_PORT2

#DIVIDE TRAFFIC GIVE 1 ISP MORE WEIGHT. USE weight 1 FOR BOTH INTERFACES TO DIVIDE EVENLY
ip route add default scope global nexthop via 10.75.1.1 dev eth0 weight 1 nexthop via 10.90.1.1 dev eth2 weight 4

Em seguida baixe o script de gwping daqui: https://RAW.github.com/Evanlec/config/Master/bin/gwping

Salve o script /usr/sbin/gwping e chmod para 755

Edite o script para adequar seu ambiente, eis que mina parece com:

vi /usr/sbin/gwping
# Time between checks in seconds SLEEPTIME=3 #IP Address or domain name to ping. The script relies on the domain being #pingable and always available TESTIP=8.8.8.8 #Ping timeout in seconds TIMEOUT=2 # External interfaces EXTIF1=eth0 EXTIF2=eth2 #IP address of external interfaces. This is not the gateway address. IP1=10.75.1.2 IP2=10.90.1.2 #Gateway IP addresses. This is the first (hop) gateway, could be your router IP #address if it has been configured as the gateway GW1=10.75.1.1 GW2=10.90.1.1 # Relative weights of routes. Keep this to a low integer value. I am using 4 # for TATA connection because it is 4 times faster W1=1 W2=4 # Broadband providers name; use your own names here. NAME1=ISP_PORT0 NAME2=ISP_PORT2 #No of repeats of success or failure before changing status of connection SUCCESSREPEATCOUNT=4 FAILUREREPEATCOUNT=1

 Finalmente, acrescentamos o script para /etc/rc.local para que ser executado na inicialização: 

vi /etc/rc.local

Adicionar ao final do mesmo arquivo (RC) antes da saída 0

nohup /usr/sbin/gwping &

Reinicie o roteador e teste!