Subject: Bandwidth Aggregation
To: None <tech-net@netbsd.org, cdine@cdine.org>
From: Anthony de Almeida Lopes <guerrilla_thought@gmx.de>
List: tech-net
Date: 04/03/2005 20:51:40
I've done some research on this topic yet I haven't found an appropriate 
solution yet and I was wondering if anyone who's had some experience 
with this could point me in the right direction.

My goal is to combine the bandwidth of two ADSL connections. Both 
connections have their own gateways and their IP addresses are on 
different subnets.

We've tried several different approaches. The first and obvious one was 
to use packet filtering and we had minor success with this on OpenBSD 
using a round-robin rule but this turned out to be very slow. I'm not 
sure that we were doing it correctly or not, but has anyone managed to 
do this with ipf on NetBSD?

The the other idea that we had was to use ALTQ somehow but it seems ALTQ 
was made to manage only one interface.

Thirdly, we looked at multiple default routes, but from the mailing 
lists it seems that there hasn't been success with this yet either.

Finally, and probably the most interesting was 802.3ad link aggregation 
which was added to NetBSD -CURRENT just a few weeks ago. I was very 
pleased with this new code. We actually managed to combine the two 
100baseT NICs to make a "200baseT" connection, but this is, 
unfortunately, not a solution to our problem.

I've made up my mind that must be a solution to this using NetBSD 
without any more expensive hardware.
I have some other vague ideas which I haven't completely hashed out yet 
such as some kind of bridging of the two subnets and using this link 
aggregation. If we could we could use the agr0 device such that it would 
send packets out in a round robin (or possibly a better algorithm since 
ALTQ will be able to operate on this single agr0 interface [can it 
select default routes?]) fashion to each of the two gateways which we 
could easily put on the same subnet by bridging. With the use of NAT, 
the packets would be returned to the right ports on that agr0 address. 
Like I said, that's quite vague but I believe there may be a solution in 
there somewhere.

I'm actually hoping someone on this mailing list will know of a simpler, 
more efficient, solution.

Thank you,
 * Anthony