I have been looking for something similar and found very little.
Enough people seem to be interested in sending IP traffic over
two serial links (with no special cooperation at the other ends
of the links) that I predict whoever implements this is going to
be cheered as providing the next GREAT Linux feature.
My research so far has been:
1. The EQL package provides load balancing over two modems
but only if the other end talks the special protocol (MPPP?). Another
Linux box with EQL and some Livingston Portmasters speak this
protocol.
2. The Beowulf project implemented "Channel Bonding" for Linux
which looks very nice, but it only seems to work for network cards. See
http://beowulf.gsfc.nasa.gov/software/bonding.html
3. If you look into using clusters (like Beowulf) for high availability
(not "just" high performance) then being able to do "channel bonding"
over WANs is very imporant to protect your system from crashes
caused by things like earthquakes and other natural disasters.
4. Vixie Enterprises (keepers of the BIND package) implemented
something called ifdefault (see ftp://ftp.vix.com/pub/vixie/ifdefault) but
this seems to be directed more to load balancing inbound traffic to
servers instead of load balancing outbound traffic.
5. I thought of trying something similar to your suggestion of using
netmasks to split the IP load over the two links. Using route with
netmask=0.0.0.1 seemed like a clever idea, until someone had to
spoil my fun and point out the fact that it just doesn't work. Like
the other poster said, a netmask needs to be contiguous 1 bits all on
the left side of the mask.
6. There is a potential security hazard if the two links go to different
sites. For example, if one link goes to an ISP and the other link to
to an employers internal network. Since the connection to the employer
network probably bypasses any firewall, someone could possibly
come in to your Linux box from the ISP and get into your employer's
network using your Linux box as an unintentional gateway. My guess
is you employer would not be amused. Maybe an 'ipfwadm -F' rule
could slow down an attack like this.
7. If you do connect to two different sites, you will need to route some
traffic (like SMTP based outgoing e-mail and netnews access) over the
right link for the connection to be accepted by the SMTP and NNTP
servers. An ISP or employer network will generally not allow "foreign"
connections to these servers.
8. It would be very nice to have a software implementation of "Bandwidth
On Demand". That is:
a. With no load, both links would be down.
b. With light load only the first link would be up
c. If the load is high enough for long enough,
the software would bring up the second link to share the load.
d. Then if the load drops low enough for long enough,
the second link is dropped.
e. And finally when the link has been idle long enough, the first link would be
dropped also.
There are some twists to this, if your links go to two different sites you may need
to bring up the second link even when there is low load if you are trying to connect
to one of the special (SMTP or NNTP) servers that do not accept "foreign"
connections.
9. One nice feature of MultiLink PPP (MPPP) is that it also load balances the traffic
coming back into your Linux box. Without this incoming load balancing, if you start
a big download the entire download will come into your Linux box over just one link
and the big download will not use any second link at all. This is acceptable to me
to
meet the requirement of "no cooperation on the other end of the link". However it
would be good if the feature noticed one link is saturated and send more outgoing
traffic
over the other link to balance the load.
Well this got much longer than I originally intended. I guess I ended up writing up
requirements for a Linux feature I have been wanting. Maybe I will even do something
about it and start implementing it!
Brian Beuning
Vladislav Malyshkin wrote:
> Hi,
> I use RedHat 5.1 box with two modems and two ppp connections.
> I can masquerade to any of these connections.
> Is there any way to masquerade some hosts to ppp0
> and some hosts to ppp1 simultaneously.
>
> If I do:
> /sbin/ipfwadm -F -a m -S 192.168.1.0 /255.255.255.224 -D 0.0.0.0/0.0.0.0 -W ppp0
> and
> /sbin/ipfwadm -F -a m -S 192.168.1.32 /255.255.255.32 -D 0.0.0.0/0.0.0.0 -W ppp1
>
> and have two default routes
> /sbin/route add default metric 1 dev ppp0
> /sbin/route add default metric 0 dev ppp1
>
> This works either for ppp0 or for ppp1.
> It does not work simultaneously for both.
> if I put
> /sbin/route add default metric 1 dev ppp0
> down it works for ppp1,
> and if I put
> /sbin/route add default metric 1 dev ppp1
> down it works for ppp0.
>
> Is there any way how BOTH connections can work?
>
> Vladislav
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ppp" in
> the body of a message to [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]