Editor’s Note:We often get asked if our NetEqualizer bandwidth shapers can do load balancing. The answer is yes -maybe if we wanted to integrate into one of the public domain load balancing devices freely available. It seems that to do it correctly without issues is extremely expensive.
In the following excerpt, we have reprinted some thoughts and experience from a user who has a wide breadth of knowledge in this area. He gives detailed examples of the trade-offs involved in bonding multiple WAN connections.
When bonding is done by your provider, it is essentially seamless and requires no extra effort (or risks to the customer). It is normally done using bonded T1 links, but also can come in the form of a bonded DSL. The technology discussed below is applicable to users who are bonding two or more lines together without the knowledge (or help) of their upstream provider.
As for Linux freeware Load Balancing devices, they are NOT any sort of true bonding at all. If you have 3 x 1.5 Mbit lines, then you do NOT have a 4.5 Mbit line with these products. If you really want a 4.5Mbit Bonded line, then I’m not aware of any way to do it without having BGP or some method of coordinating with someone upstream on the other side of the link. However, what a multi-WAN-router will do is try to equally spread sessions out over the three lines, so that if your users are collectively doing 3Mbit of collective downloads, that should be about 1Mbit on each line. For the most part, it does a pretty good job.
It does this by using fairly dumb round-robin NATing. So, it’s much like a regular NAT router – everyone behind it is a private 192.168 number (which is the 1st downside) – and it will NAT the privates to one of the 3 Public IP’s on the WAN ports. The side effect of that is broken sessions, where some websites (particularly SSL) will complain that your IP address has changed, for example, while you’re inside the shopping cart or whatever.
To counteract that problem, they have ‘session persistence’ which tries to track each ‘Session Pair’ and keep the same WAN IP in effect for that ‘Session Pair’. That means that the 1st time one of the private IP:port accesses some particular public ip:port, the router will remember that and use that same WAN port for that same public/private pair. The result of this is that ‘most’ of the time, we don’t have these broken sessions, but the downside of this is that the fairness of the load balancing is offset.
For example, if you had 2 lines connected:
- User1 comes to speakeasy and does a speedtest – the router says ‘speakeasy is out WAN1 forevermore’.
- User2 comes and looks up google, and the router says ‘google is out WAN2 forevermore’
- User3 goes to Download.com and the router decides ‘Download.com is on WAN1′.
- User4 goes to smalltextsite.com (WAN2)
- User5 goes to YouTube (WAN1)
And so on. With session persistence turned on, User300 will get SpeakEasy, Download.com and YouTube across WAN1 because that’s what it originally learned to be persistent about.
So, the tradeoff is if you don’t use the session persistence, then you’ll have angry customers because things break. If you do use persistence, then there may be an unbalancing.
Also, there are still some broken sites, even with persistence on. For example, some online stores have the customer shopping at www.StoreSite.com and when they checkout it transfers their cart contents to www.PaymentProcessor.com, which may flag an IP security violation. Any time the router sees different IP’s out in the public side, it figures it can use a new WAN port and doesn’t know it’s the same user and application. There are a few game launchers that kids load a ‘launcher’ program and select a server to connect to, but when they actually click ‘connect’, the server complains because the WAN addresses have changed.
In all honesty, it works quite well and there are few problems. We also can make our own exception list, so in my shopping cart example, we can manually add ‘storesite.com‘ and ‘paymentprocessor.com‘ to the same WAN address and that will ensure that it always uses the same WAN for those sites. This requires that users complain first before you would even know that there is a problem, AND also requires some tricks to figure out what’s going on. However, the exception list can ultimately handle these problems if you make enough exceptions.
Created by APconnections, the NetEqualizer is a plug-and-play bandwidth control and WAN/Internet optimization appliance that is flexible and scalable. When the network is congested, NetEqualizer’s unique “behavior shaping” technology dynamically and automatically gives priority to latency-sensitive applications, such as VoIP and email. Click here to request a full price list.
Additional articles
How to inexpensively increase internet bandwidth by bonding cable and dsl.
From BusinessPhoneNews.com a great guide to access bandwidth needs, Bandwidth Management Buyers Guide.
April 15, 2009 at 4:20 AM
wow, very interesting article. Congratulations buddy.
January 7, 2010 at 9:56 PM
Very nicely explained.
July 19, 2011 at 8:21 PM
vUnity uses multiple GRE tunnels to bond multiple circuits without ISP support. It’s provided as a service. http://www.vUnity.com
November 9, 2011 at 11:14 PM
thank you very much for the article, actually I had a problem with session persistence and you help me to find and fix it over my network.
February 18, 2013 at 4:18 PM
The split sessions are solved quite easily with packet mangling.
May 6, 2013 at 7:48 PM
We’re a bunch of volunteers and starting a brand new scheme in our community. Your web site provided us with valuable information to work on. You have done an impressive job and our whole neighborhood will be thankful to you.