Sign Up

Sign In

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

What is the capital of Egypt? ( Cairo )

You must login to ask a question.

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

EdgeMAX – Automatic WAN Failover

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!

Hits: 0

Leave a comment

What is the capital of Egypt? ( Cairo )