Channel bonding, load balancing, or failover? 3 interesting methods for improving your home internet reliability
Three important networking concepts that have different meanings
There’s a lot of confusion among those interested in home networking about the differences between three important concepts.
How to group three distinct ideas under one heading is a little tricky. But perhaps “better, more stable internet” would be a good catch-all.
Typically, these “advanced” networking setups have been the preserve of business users who need to adhere to minimal downtime — sometimes by statutory decree although more often by service level agreements (SLAs) which they conclude with their customers.
An example of the former might be any utility in the critical infrastructure sector — say a power provider or an ambulance service. These users have to stay online all of the time or lives are lost. An example of the latter might be an internet service provider (ISP). If these infrastructures go offline too frequently, they tend to go out of business.
The pandemic has blurred the divisions between home users and business users — for instance, you’re running a home-based business. And more non-enterprise users are looking towards these kind of setups to improve connection reliability beyond what any one provider in their geographical radius can manage.
These connection strategies are enormously popular in locations not well-served by traditional connectivity options. Disproportionately those interested in this kind of thing live in places like rural Nevada, India, or the Australian outback. But you can also find yourself in the middle of a city without any means to stable connectivity.
All three strategies listed below attempt to achieve much more reliable internet and do so by aggregating connectivity sources. This is called WAN aggregation although methodologies used to pass on that connectivity locally divide into a number of different approaches.
Some good news: there are no rules as to what combination you can choose in this networking mix and match:
- My setup utilizes a DSL-based ISP and combines it with a cellular network. In parts of the world where cellular connectivity is both cheap and widespread — like where I’m based — this is probably the most logical option.
- You could also use satellite-based connectivity, like Starlink, backed up by cellular.
- Or you could use two over-land internet solutions: say a primary fiber optic connection. Those new to fiber-optic connectivity often assume that they don’t need to supplement their connection for robustness. So as a reminder: speed does not equal reliability.
I’m wont to pass on others’ knowledge without proper attribution — that’s called plagiarism. The home networking subreddit (/r/homenetworking) has been instrumental in refining my own understanding of where the divisions lie between these various approaches.
They’ve also confirmed what I suspected — that there’s a lot of misinformation out there on the internet which is why I’m writing this explainer. Many enthusiastic YouTubers have posted videos bragging about their spectacular “bonding” connection — and how they’ve been able to aggregate connections — when all they’re doing is using multi-threading to load-balance one connection among several WANs.
Normal internet usage — say browsing — doesn’t utilize connection threading. So to claim that this is “speeding up internet” is either disingenuous clickbait.
Most articles describing these three terms have been written for IT professionals. The purpose of this piece is to attempt to make things a little more relatable
What is channel bonding?
When many think about what they would like to be able to do with multiple connectivity sources, it’s adding one WAN (wide area network source) onto another and stacking together the “pipes” to yield one superior and faster connection.
For instance: if we have a 50/5 ISP line (this denotation means 50 Mbps download 5 Mbps upload) then wouldn’t it be great if we could combine that with a 20/10 cellular line to achieve a connection that consistently delivered 70/35?
Channel bonding is the approach that comes closest to achieving this networking pipe-dream (get it?).
But there’s one major catch:
We can aggregate multiple connections on our hardware. But we need another piece of hardware sitting in the cloud — basically anywhere on the internet side of our LAN — to split up the packets and diverge them to the various WANs.
If this sounds complicated, it’s because it is. If you always wondered why you couldn’t just “combine” multiple internet connections — say an ethernet line and a WiFi network — now you know that: a) you can but b) it’s not that easy and you need some technology to make that work.
Thankfully, you have two options:
a) Speedify is a SaaS solution that specializes in connection bonding. For those new to this world, it will look and feel a little bit like a VPN. That’s because it has to utilize a server it manages to do the packet splitting.
b) If you’re more technically literate and into open source, then check out a project called OpenMPTCProuter. This is going to be more complicated but you will be in charge of the networking stack and not a third party.
Changes: BBR2 alpha support for 64bits processor OpenVPN UDP Bonding support V2Ray update TCPdump web interface…
Here’s a diagram, from the project, showing how the connectivity is intended to work:
c) You can find an ISP that supports connection bonding. These ISPs will bond connectivity upstream of where they deliver it to you. This is by far the easiest approach as you just need to subscribe to an ISP. The downside: you don’t get the same total control over what options are available.
What is load balancing?
For those managing servers or cloud computing resources, load balancing is an enormously relevant concept. Today, in fact, it’s considered foundational.
When multiple internet users attempt to access a group of servers, it makes sense to split the traffic up between different servers hosting those resources so that no one server becomes so overloaded that it can’t serve traffic.
The good news is that you can mimic this concept on your local network — simply by provisioning multiple connectivity sources and then purchasing a router that supports load balancing.
Just as a load balancer in a data center will handle multiple incoming requests and use some form of logic to determine which local resource(s) to send them too, you can use a load balancing router to pull in connectivity from different internet connectivity sources and determine which resource on your local network should get internet from where.
Various business-grade routers can be purchased that support load balancing out of the box. In fact, most of them do.
- Load balancing routers
- Wired routers
- Business routers
- Ethernet routers
- VPN routers
Pour over the spec sheets and see if load balancing is a feature.
If it is, then you’ll be able to load balance. Probably in one of several ways:
- You can send different WANs to different computers on the local network. For instance, all desktops could pull connectivity from WAN 1 while all IP phones could pull connectivity from WAN 2.
- You could configure application-level load balancing.
When you’re using an application that supports threading, it can configure separate streams to pull in connectivity from different sources. Standalone download managers typically offer this feature regardless of what operating system they’re built for.
In this use case, simply load balancing could improve your connection speed. But it won’t offer the fluidity of channel bonding.
What is connection failover?
Failover is the simplest of the three approaches.
When connection A fails (example: ISP) we’ll move connectivity over to connection B (example:cellular/satellite).
In order to determine when one line has failed, the router supporting this feature will typically “ping” an IP address — or a DNS server — at regular intervals.
When the pings start failing, it knows that the connection is no longer operable and automatically switches it over.
Typically these routers also support a configuration manager in which you can mark which internet connection will be your primary connection source and which will be your secondary one used for providing a backup line.
Channel bonding, load balancing, and failover are three forms of “enhanced” connectivity that utilize multiple wide area network (WAN) sources — connections to the internet — in order to improve the stability and reliability of a local internet network.
Channel bonding requires the most configuration as there needs to be hardware on the WAN side. Load balancing can manage multiple WANs more intelligently. And failover simply ensures that one WAN can be used to back another WAN — or a few of them.