Wednesday, June 2, 2010

Combining two or more boradband internet connections

The other day my cousin asked me how to combine two internet connections and use both of them at the same time. As per my old knowledge, even if two ethernet cards are available on the PC, an application cannot directly use both the IPs, do load balancing, and pump up the overall speed. This is because a TCP cannot cannot be shared over two different IPs. Once a TCP connection is established, lets us say by a browser, it cannot switch to the other one on the same PC.

Having said to my cousin that this is not possible by default I explored and found some interesting stuff which proves me wrong (I am happy that I am wrong). I guess the technical word for the above is "Link Aggregation". This is also called LAN or NIC Teaming, multi-link trunking etc. Having said this, let me also say that you cannot achieve this with just having two ethernet cards and two internet connections. The LAN cards should be capable of providing this support and the OS should have corresponding drivers. I am not sure what kind of ethernet cards are capable of doing it. But read on...

There are ready made products to uncomplicate things for you, but they are a bit pricey as of now. They are called dual-wan routers. If I understand correctly, they do NAT translation internally and achieve load balancing and high-availability (failover support).

Links to related discussions: link1, link2, link3

1 comment:

Sunil said...

Clarification from my friend Vijay:

Link aggregation is used at a link level; ie., using two 64Kbps links between SAME pair of neighbors to double the link speed. But I guess what you want is combine a 256kbps BSNL and a 512 Airtel into a 768Kbps connection. The other links you've given are pointing in the right direction.
This can be done by the linux kernel and once this is up, multiple applications (or some times multiple threads of the same application too - with some tweaks to the kernel) can choose one of the routes dynamically; thereby giving the feel of a larger bandwidth availability. Be informed that all packets of a particular TCP/UDP stream can only use one of the paths. Whereas, when you load www.yahoo.com, the html page can come from one link and an image on the page can come through the other.

Our network product iArmor does amongst many other things, bandwidth aggregation on up to 6 connections.