Subject: Re: Bandwidth Aggregation
To: None <tech-net@netbsd.org, a.bocaniciu@computer.org>
From: Anthony de Almeida Lopes <guerrilla_thought@gmx.de>
List: tech-net
Date: 04/05/2005 00:32:17
Miles, I'd settle for KAME if it did does something like this (which I 
need to actually invetigate still). If I can get some basic multipath 
routing going on, that's a place to start.

As to Adrian's last comment about writing a daemon; that was actually 
something I was considering.  I was thinking, just for fun, I'd start by 
writing a program that alternated routes every X seconds or X packets, 
just as a userland daemon similar to what the 'route' utility does.
I want to go back to the tunneling idea for a second though. So I have 
two tunnels here.. interface A and B and they both come out at public IP 
C which does stateful NAT for us and what comes back in gets sent back 
through the correct tunnel to it's respective interface and from there 
to the application. So theoretically I don't have to worry about the 
packets path back, nor about established TCP connections. So, assuming 
this works, I could use something like libpcap to monitor traffic and 
change the way traffic goes out. I haven't worked out the details yet 
but I think these are interesting try for the education if not anything 
else. I assume this may not be the most efficient way to do but I'm now 
very much interested in the subject and as soon as I get some time I'll 
get to work on code and research.

Well I want to thank the bunch of you once again for sharing your 
experince and thoughts on the subject. I appreciate it.
- Anthony

Adrian Bocaniciu wrote:

 >
 > > My goal is to combine the bandwidth of two ADSL connections. Both
 >
 >    Unfortunately I am not aware of any simple solution for this in 
any *BSD.  I just wanted to mention the fact that on Linux this can be 
trivially accomplished by a single "ip route ... equalize ..." command line.
 >
 >    I used that for some time on a router and it worked very well.  At 
some point I replaced Linux with FreeBSD on that router (as I needed 
some packages whose versions were too old in the NetBSD pkgsrc), which 
brought some significant advantages in other areas compared to Linux but 
for the two external links I had to content myself to use one of them as 
a backup, which automatically replaced the other link when it failed, 
but without simultaneous sharing.
 >
 >    It should not be very difficult to write such a program for link 
sharing, it should be very similar to a NAT daemon, because the main 
problem is to remember all the existing connections in order to be able 
to send the subsequent packets of a connection on the same external 
interface on which the first packet has been sent.  Like I said, I am 
not aware of such a program, but it could have appeared, as the last 
time I searched for it was a couple of years ago.
 >
 >    Best regards !
 >