[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