Will Althea use MPTCP to aggregate and load balance it's gateways?

It sounds like it would allow a linux gateway to bond two connections from diverse ISPs together as one.

Is this how Althea will do it’s magic?
Also of note: zerotier and tailscale

Althea currently doesn’t do bonding, mostly because good performance from bonding requires both connections to perform consistently, in an environment where we are more concerned about potential failover that’s not a good plan all the time.

In an ideal scenario Althea would identify when two connections have good consistent performance and bond them for a faster link, and skip bonding unreliable links that would create a bonded connection slower than either of it’s parts.

Great idea @tomachi - I got Multipath TCP working at home to abstract two ISPs (ADSL at 50/7 and cable at 400/50) - it’s pretty clunky to setup but it works, averages 440/55 when using both subflows

My specific multiple TiB neuroscience data processing use-case requires using all the bandwidth I can get in bursting mode, so abstracting away 2+ Althea SubnetDAOs for my home network to reliably connect to the internet is very appealing.

I suppose we can mptcpize Althea by using 1 single exit node for 2 independently run SubnetDAOs, where your home router connects to 2 uplinks, like in the image here: https://www.openmptcprouter.com/

Basically, the modems in this illustration would be independent Althea antennas connected to 2 different mesh ports(?). It’s unclear how I can configure my single Althea client router to connect to two different SubnetDAOs, though it seems possible in theory.

The cool thing is that we might simply be able to setup a shadowsocks server on the exit node, and call it a day(?), a la: MPTCP proxy setup at home: easier now! - Tessares

…unless every SubnetDAO requires its own exit node? I’m missing some conceptual pieces of how exit nodes are supposed to be setup, and the Althea docs seem thin on this topic at the moment

I should mention that MPTCP kernel support is not yet enabled upstream in OpenWRT, so it might be worth waiting for all this to become generally available in multiple Linux distros - the world will eventually catch up to MPTCP’s benefits :slight_smile:

Meanwhile, I found these docs most helpful (even though my setup is on 22.04 Ubuntu server): Chapter 28. Getting started with Multipath TCP Red Hat Enterprise Linux 8 | Red Hat Customer Portal (for the v1 MPTCP and not the v0, which is easier to run into by mistake while web searching for help)

skip bonding unreliable links that would create a bonded connection slower than either of its parts

To my knowledge, Multipath TCP handles all this on its own, i.e.: if an additional subflow is possible, it will be opened. Same conceptual benefits as having 2 Althea routers to connect to: 99% uptime for each would result in 99+% uptime for both, however, without MPTCP, one client cannot use both uplinks at the same time for a single TCP connection (I specifically needed this ability, plus the increased reliability is nice: less connection drops)

Multipath TCP can aggregate heterogenous links (say a wired with a satellite with a wireless connection), whereas bonding seems to usually mean same-medium connections, like 2 wired ethernet links.