ProxyNow! 5 supports link load-balancing. This feature allows multiple Internet connections to be joined together to provide more bandwidth for the users.
Starting with version 5.0.35, it also supports link failover. This feature ensures that should any of the Internet connections, joined by the link load-balancing feature, go down, traffic is automatically redirected to the remaining alive connections.
Once the down connections are back up, traffic will be automatically redirected through them again.
How to set up load balancing
First you need to define multiple Internet connection interfaces. Ensure that each Internet interface is working. This can easily be done by making sure that only one Internet interface has a gateway defined at one time. The interface with the gateway will be the one that ProxyNow! will use to direct the traffic out.
Here we have 3 interfaces defined. The first one is the LAN, the second and third are the 2 Internet connections to be load-balanced.
Next you want to ensure that NAT Masquerading rules have been created for each of the Internet connections.
Once you have confirmed that all your Internet interfaces are working, you can load-balance them on the Link Load Balancing page as below. Just tick all those Internet links that you have and click Save. Finally click on the green switch button to turn on the feature.
ProxyNow! will take a minute or so to reconfigure your routing and network interfaces. And during this time you might not be able to access the web admin and see the error below. Just wait for a while and then try accessing the web admin again.
Confirming that link load-balancing is working
First and foremost, check the load-balancer log file which can be accessed under Administration | Logs Viewer. Select type Middleware and file log-pn-loadbalancer. You should see lines like below indicating that link load-balancing is on and which Internet connections are currently linked.
Note that the interfaces linked are eth1 (p1) and eth0 (streamyx), which are the 2 interface connections defined earlier.
If you have access to the ProxyNow! internal Linux shell, you can also check its routing table to further confirm this. Beware, not to use the route command as it will only show one of the gateways.
Notice that only one default gateway is shown if you use the route command. In this case it is the p1 line (eth1)
Instead you should use the ip route show command.
Now you can see both gateways.
To further confirm that traffic is in fact going out via both Internet connections, you can use the traceroute command (or tracert on Windows machines). ProxyNow! link load balancing will redirect traffic in a round-robin manner so if you try to traceroute to a number of locations, you should see the traffic going out via different gateways.
Note that this can be done from within ProxyNow! or from one of the workstations that is going out through ProxyNow!
Notice that when we traceroute to www.cnn.com we are going out via streamyx interface
Next we traceroute to www.bernama.com.my and we are going out via the p1 interface
Link failover
To test link failover we can try to disable each of the Internet connections either by pulling out the network cable from ProxyNow! network port, turning off the Internet router or modem, or pulling out the telephone line or Internet cable connected to your modem.
In the case below, we first disabled the streamyx connection by pulling out the network cable for this connection from ProxyNow!
Within 30 seconds you should see the follow lines in the log-pn-loadbalancer log file. The first line indicates that the streamyx (10.199.0.2) has been detected to be down. The network reconfiguration will start to take place. This will take a few seconds. During that time you might not be able to connect to the web admin and see the error message below.
An error message due to the fact that the ProxyNow! network is being reconfigured.
After a few seconds just refresh the screen to connect back to the web admin. You should see the following log. Notice that the reconfiguration took 24 seconds to complete in this example.
Now even though link load-balancing is specified as on, there is only one Internet interface alive (eth1)
If you try to connect to www.cnn.com now, notice that it is longer going out via the streamyx interface. Instead it is using the p1 (10.1.1.254) interface.
If we plug back in the streamyx connection, we should see the following lines indicating that both lines are now back up and linked.
Notice that no gateways are detected to be down (i.e. all are up). And both Internet connections are link load-balanced.
Finally we test disconnecting both Internet lines. We should see the following lines.
Notice that both Internet lines are detected to be down and and link load-balancing is totally off.
And if we bring back up both lines we should see the following lines.
Both lines are back up
Other relevant information
- Link failover feature is only available from version 5.0.35 onwards. The links are monitored every 30 seconds. So please wait for up to a minute for the traffic to be totally switched to the remaining alive connections.
- Internally ProxyNow! uses a list of IP addresses which are guaranteed to be up to assist in monitoring the Internet connections. These IPs are global DNS servers. It is not advisable for you to use these IPs are your DNS. We suggest that you use Google DNS servers which are not used by ProxyNow! The IP of Google DNS servers are 8.8.8.8 and 8.8.4.4