EdgeMAX - Automatic WAN Failover

by Ubiquiti Employee on ‎03-17-2013 09:21 PM - edited on ‎01-08-2014 10:18 PM by Ubiquiti Employee (9,445 Views)

Overview


Readers will learn how to enable WAN failover on the EdgeRouter.

EdgeMAX can handle multiple WANs with failover. For a more recent article that shows this implementation with automatic failover, visit here.

My interface setup is as follows:

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

 First step is to add two tables to routing table. I use vi for this. From command line:

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

 Next add the following to /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

Next download gwping script from here: https://raw.github.com/Evanlec/config/master/bin/gwping

Save script to /usr/sbin/gwping and chmod to 755

Edit the script to suit your environment, here is what mine looks like:

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

 Finally we add the script to /etc/rc.local so it runs on startup: 

vi /etc/rc.local

Add to the end of the same file (rc.local) before exit 0

nohup /usr/sbin/gwping &

Restart the router and test!

FCC Compliance Information
For information on compliance with FCC rules and requirements, please read this: FCC Compliance Information
Disclaimer
The articles in the knowledge base are voluntarily provided by community members, and Ubiquiti Networks makes no guarantee of the validity of this content.