Multi-WAN bandwidth aggregation options

Hi everyone

after lurking forever I finally registered to ask this question.

I have two bad overpriced Internet connections… from two different bad providers, one using DSL and one LTE (middle of a US suburb in the heartland of AT&T - there is no competition so I doubt this will ever change). No fiber and too far south for Starlink (for now).

What I’d like to do is aggregate bandwidth. Rather than failover, or per-connection routing, I’m looking for something that takes into account per-link packet loss and any changes in per-link throughput and reassembles everything properly on the other end, in order to use the aggregate of both links even for a single connection.

Are there any bandwidth aggregation options other than Speedify or Peplink’s speed fusion, ideally something I could install myself on pf/opnsense or a Linux router on one side and a Linux VPS on the other? I think Speedify’s pricing is acceptable, but it’s really meant to be installed on desktop clients and I don’t particularly like sharing an originating IP with others, plus no inbound connections. Peplink (combination of hardware and service) is outside my price range.

I currently have dual WAN with failover but it’s less than satisfying because the wireless connection is unreliable and the DSL connection is slow.


Multipath TCP is probably your best bet but I have not tested and looked at what systems support it.

You’re thinking perhaps OpenVPN over Multipath TCP? This may be feasible: OpenVPN and Multipath TCP - CORE

There’s a project that implements this:

I wonder whether anyone here has heard of this.

I’ve been running OpenMPTCProuter for a couple of weeks now on a Raspberry Pi 4 and 3 LTE connections. Works quite well and it manages to aggregate the bandwidth. Only real issues I’ve had is that the IP of the VPS is blocked at some sites and services, and e.g. Google seems to have issues with my location (country). Not sure if the IP has been used with some VPN service before. But OMR has overrides for this so I can just add the problematic domains to an override list and it will route that traffic normally through the master connection.


@ mnordstr thanks for your reply! A few more questions if I may:
OpenMPTCProuter offers several different aggregation methods. Which one are you using?
I’m assuming on the Pi, it’s CPU speed that is the limiting factor, not memory, so the baseline model should be enough? What’s your aggregate bandwidth?

PS: I have had a VPS with a static IP for a long while and yes some destinations block all of the VPS IP ranges. I think it came out of a desire to fight comment spam and somehow stuck around (it’s not like it fixes anything). Sort of like my employer insisting to block ALL new TLDs…

I am using the default configuration and my LTE connections all support MPTCP. I don’t have access to the router right now but I believe the settings are:

ShadowSocks-libev for TCP traffic between OMR and the VPS
Glorytun TCP for UDP and ICMP traffic Both use MPTCP to aggregate links connections.

I have not seen the load on the Pi go over 1.0 so for my speeds the Pi’s performance seems more than enough. I have the 4Gb version. I’m getting around 120Mbit down and 50 up, which is about what can be expected from my LTE connections.

1 Like