Firstly I'm new to the forums, but have read here often and also read up lots on ethernet bonding! ...

I have a few questions/issues with Ethernet bonding. We currently have 2 ADSL lines (but may make that 3 or 4 if it's required in the near future) and both of them are connected to your bog-standard router that has a number of ethernet ports. I've got a PC that's got a number of Ethernet cards in (as many as required; it has 3 but could have 6 if it grew).

The ADSL lines are with different ISP's, and I want to bond them together to provide additional speed. As the current lines are shared by roughly 20 computers - and the 'heavy load' comes from random users at random times - it is no good simply assigning one line to the heavy users and the other line to the rest. If I could bond the lines together, the load can be shared depending on conditions.

Firstly - can this be done? They're different ISP's, and the third or fourth links would most likely be different ISP's. For that reason, MLPPP won't be supported, so it has to be done 'client side'. Could the Linux box take two (or more) Ethernet connections to different ADSL routers and share the traffic between the two lines, and then use an additional ethernet card to 'share' this newly created 'bond' link?

Secondly - if this is possible - which I'm led to believe from pages of documentation - what happens with regular TCP links? Eg, what if I'm securely connected over SSL and my IP address keeps switching (packet-to-packet!) between the physical links? How is this overcome?

Lastly - what distro is best for this kind of activity? I current use CentOS for our production server and Ubuntu for desktop activities, but am open to any distro that is best suited.

Thanks for any help on this, there's little documentation about the specifics of this!