[MLB-WIRELESS] ADSL / CABLE Channel Bonding

Kim Hawtin kim at hawtin.net.au
Mon Oct 26 14:59:54 EST 2009


Hi Todd,

Todd Hubers wrote:
> That's helpful - thanks. The instructions I found were 
> http://www.cyberciti.biz/tips/linux-bond-or-team-multiple-network-interfaces-nic-into-single-interface.html and 
> created a virtual interface, and seemed to have very low level control 
> over the upstream links - interacting with MII messages (which enable it 
> to detect when a link is down). One of the modes stripes per packet, and 
> therefore I understand that this would be impossible unless the links 
> being bonded where configured for this (as the Cable and ADSL are from 
> two ISPs this is far from possible). Other modes may be possible, but 
> your suggestion of using iproute and iptables looks like the most likely 
> choice. I see that a TCP stream would need to stay linked to a single 
> channel (except for fail over).

that article is specifically for ethernet where both ends of the link 
are aware of the channel bonding being used. this is not what you need here.

> The iptables look good for redirecting all RDP traffic automatically.

iptables is set and forget. alternatively you could put a monitoring
script together that pings the remote end point of the adsl/cable 
connections and adjusted iptables rules on the fly. not so easy.

you really want something like bgp to make policy decisions based on 
availability. but again bgp needs to be on both ends of the links for 
this to work.

anyhow, check out "4.2. Routing for multiple uplinks/providers" from 
LARTC howto.

> As for spill-over the ultimate setup would:
> * Watch throughput on eth0 (being the ADSL2+ link with heaps of volume 
> in the plan)
>     * May also watch the number of TCP sessions - and maybe limit eth0 
> to 50 TCP sessions or 80% of bandwidth, which ever comes first

have a look at the QoS stuff, see; "Chapter 9. Queueing Disciplines for 
Bandwidth Management" in LARTC howto.

> * Most traffic would be HTTP and therefore TCP sessions would be short

perhaps you can push your dns queries out the cable side if the latency 
is lower and your bulk traffic down the adsl line.

> * When throughput reaches say 80% of a predefined limit for eth0, 
> redirect new streams to eth1
> * The "spill over" would be a rare occurance, maybe totalling one minute 
> of traffic a day

perhaps you might look to proxying any service/protocol you care about
and from the host that does the proxying, monitor both remote end point 
of your service and set the default route entires on that host.
ie, caching DNS, web using squid, imap/pop proxy, etc.

also you can use a dynamic dns client (dyndns) to set your external 
facing IP to which ever primary active connection you're using. unless 
you have two fixed IP addresses.

> I'm not sure if Linux has such scope for that functionality 
> out-of-the-box, or whether a custom/third-party application or driver 
> would be required.

the out of the box commands are ip and tc along with iptables.
you'll want to install the package "ip-route"

try the HowTo; Linux Advanced Routing & Traffic Control
http://lartc.org/

i've just noticed that the latest news is dated 2005-08-21.
i wonder if there is a more up-to-date resource these days?

regards,

Kim



More information about the Melbwireless mailing list