Dual DSL Linux help/Ideas

ME dugan at passwall.com
Sun Oct 21 19:25:25 PDT 2001


On Sun, 21 Oct 2001, Jake wrote:
> He has 4 sonic ips and will have 6 (I think) ATG ips.

kewl.

> I was thinking of having three nics:
> 
> eth0 internal network link
> eth1 ATG external link(all 6 ips on one card)
> eth2 Sonic External link (all 4 ips on one card)

Kewl.

> I know I can just set up NAT and if one dsl lines goes down, a script I can
> #! out can switch the default route.

Or, you could have a cron/at job or script ping some machine every second
with a small packets, and after X number of fails, or single ping attempts
that did not send one packet and exit, then automagically run a script for
default route... (This has problems, I know.)

> What would be a way to make a fail over or when the Sonic DSL starts to have
> its full capacity in use all other connections will go with the ATG link?

Above is one suggestion...

> What would I use to do the load balance?

Several ways to load balance.

If you are providing server based services at the home end of the DSL
links, and have access to the DNS, then for *clients connecting* you can
have a name resolve to 2 different ip addresses and based on an
application layer round-robin assignment, client machines connecting would
get one IP address, and then the other IP address so they connect to
different IP addresses and in turn use different routes...

Home based load balancing is a bit trickier. I have one thought on this
that seems like a hack/kludge, and given more time could probably find or
come up with a better solution, but here goes:

get a host machine connected to the internet with a fast link and shell
access and root access to control pppd *and* the linux based eql enslave
for ppp. Then have each machine (through scripts) connect up over the
internet wit telnet / ssh, create some ppp links (over the two different
DSL links to the high speed host) and then load balance both ends with
your new default route the eql interface. (slrip could be used on the
hosth speed access host machine if eql/pppd access was unavailable)

The above is likely a bad idea. (even if it would work)
1) you waste CPU cycles several times for processing packets twice, and if
ssh is used, delays/latency and cpu cycles are again used.
2) complicated and may result in problems when a link goes down and eql is
unable to recover fromt he lost pipe.
3) it is a hack and a kludge

I'd wait to see what others suggest here. You may be able to do something
with IPIP or IPSEC and eql that would be nicer. (One example from another
mailing list is listed below as URL)

I was looking to get 2 DSL links a while back to do service based load
balancing for servers and use the DNS load balancing for client side load
balancing, but lost interest.

We have a lot of networking people here who will cringe at the second
suggestion listed above, and probably have some muc better
suggestions. :-)

Another suggestion:
http://www.sandelman.ottawa.on.ca/linux-ipsec/html/2000/07/msg00433.html
But is requires 6 machines in the process...

a hack to limite the machine unmbers was proposed:
http://www.sandelman.ottawa.on.ca/linux-ipsec/html/2000/07/msg00435.htm
no followup...

Perhaps channel bonding could be used here - but I do not see how this is
obvious right now.

I'll think about it some more in the mean time. It is something I thought
would have a great coolness factor if done to make fall-back, reliability
client and server biased balancing without sacraficing security, and
excessive loss in CPU cycles, and all the other stuff.

-ME

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/CM$/IT$/LS$/S/O$ !d--(++) !s !a+++(-----) C++$(++++) U++++$(+$) P+$>+++ 
L+++$(++) E W+++$(+) N+ o K w+$>++>+++ O-@ M+$ V-$>- !PS !PE Y+ !PGP
t at -(++) 5+@ X@ R- tv- b++ DI+++ D+ G--@ e+>++>++++ h(++)>+ r*>? z?
------END GEEK CODE BLOCK------
decode: http://www.ebb.org/ungeek/ about: http://www.geekcode.com/geek.html
     Systems Department Operating Systems Analyst for the SSU Library





More information about the talk mailing list