OpenMPTCProuter
openmptcprouter.com
openmptcprouter.com
I was able to get two OpenMPTCProuter installations talking to each other, but downstream traffic wouldn't balance across interfaces, and upstream was limited to 0.25-0.5Mbps (not a typo, and the links on their own have >300Mbps capability). I'll maybe try it again, but for now I have to add this to the pile of solutions that haven't worked for me (including VyOS WAN aggregation, ZeroTier multipathing, and Wireguard and ECMP).
The drawback is increased latency (about 60ms instead of 40 on each individual links) but openmptcprouter provides a nice tool to easily exclude specific services or devices from using the tunnel. My gaming packets and netflix are both setup to keep using the otherwise adsl link. (Netflix override is because their stupid geo check think my vps is a vpn endpoint used to mask my location).
Also, I am aggregating 2 4G link which might not help since both links send large packets of data infrequently if I understand correctly. Maybe aggregating 2 wired link would have lower increased latency cost.
In the end, I'm getting up to 40Mbits of bandwidth instead of being stuck with my 3MBits adsl link and I'm pretty happy.
Zerotier has started supporting multipath, that's what I'd use.
That being said, the script to install the VPS works great but is absolutely horrible. When I can finally get some time I'd love to try to make it better
This is intentional: TCP treats packets received out-of-order as representative of an overloaded network. There’s generally a guarantee that packets sent in-order over a single link will be received in that order, but no such guarantee exists for packets sent through two completely independent links/networks. You need something on the receiving end (either at the destination or at the point where the separate paths converge) that will coalesce and re-order packets, such as an MPTCP or PPP implementation.
MPTCP works just fine on different internet connections, while ECMP assumes everything has the same bandwidth. And the MPTCP gives the reliability of TCP: if one connection is dead, it'll detect it and transmit lost packets to the other one. It even supports break-before-make, so you can loose all your internet connections, then get a new one, and it'll resume.
I have a cheap VPS for non latency-sensitive stuff, and I just noticed that a ping to returns 15ms more than 1.1.1.1 (for instance). I'm wondering if you can get a cheap VPS with a good latency.
Really glad to see this project advancing.
Best I ever did with that code was a bank of 8 ISDN modems to a PM3 that we did as a test at the ISP's office just to see how far it could stretch. 230kbps serial ports on an ISA bus.