
Hey all, Does anyone have real-world experience of using linux's interface bonding on public networks? (In the bandwidth-aggregation mode, not the redundancy mode)
I was wondering how I could make the following setup work: * Rent a VPS in Melbourne with four IP addresses * Get four (or just two) ADSL connections wired up to home * Have your VPS connect four VPN connections from itself back to each of your home IPs. * Bond all four interfaces together * Create a fifth VPN connection, this time going over the bonded-virtual-interface between VPS and home, and then configure your home server to use that link as the default route?
It sounds pretty messy and I'm not sure it'd actually work in practice; the routing tables would be hell to get right.
Are there any guides already out there?
I've use PPP multilink over ADSL before, many years ago, but your telco has to support that and I suspect not many do as these days ADSL is disproportionally cheap compared to anything else these days and they'd want to push you onto their higher SLA (and price) products. PPP multilink reduces latency a bit too because it splits each packet up equally. This more than offsets the additional overheads. Your way will likely increase latency. A lot for small packets. You have your top layer VPN, your next layer VPN, and then the PPPoE that you use for ADSL has a whole load more layers under it too. (the way we implement ADSL here in Australia is dumb) I think you might be able to use multilink via ppp over L2TP though, which would mean you would have just one VPN spread across 4 links, and it may allow you to split up the packets too. This would reduce a few layers, and IPSEC works well in conjunction with L2TP. That would give you redundancy too if everything is working right. A quick google search for linux multilink l2tp shows up a few promising leads, but if nobody else is doing it the relevant code could have suffered a bit of bitrot. I remember having to go bug fixing in ppp when I tried it over ADSL, but that was a long time ago. James