[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Dynamic routing between multiple DSL lines
- To: <tech@openbsd.org>
- Subject: Re: Dynamic routing between multiple DSL lines
- From: "Trevor R.H. Clarke" <retrev@csh.rit.edu>
- Date: Fri, 16 Aug 2002 19:47:09 -0400 (EDT)
On Fri, 16 Aug 2002, Michael Lucas wrote:
>
> The *only* way to do this is with Border Gateway Protocol, BGP. This
> is an expensive proposition, requiring fairly expensive equipment, and
> requires that you have at least a /24 (class C) address block.
Not entirely true. Any exterior routing protocol will do this, but the
internet standard is BGP. You can do it on an openbsd box via Zebra, no
extra equipment needed. There are no requirements for address space except
most providers will not do this without some incentive (I.E. a peering
agreement or buy lots of bandwidth from them). It's possible to set up BGP
with your end using an anonymous aan. That setup will allow load balencing
over multiple lines with automatic failover and your routes will ont
propagate to the rest of the net so other people won't see your LAN as a
valid intermediate hop when calculating routes. Talk to your providers and
see if they are willing to set up this sort of system, I'd suggest trying
to get a hold of someone more technically minded (such as a network
admin) as they would probably be more willing to set this up (it's not
very difficult to do if the routing equipment on their end of your DSL
link supports BGP of OS-IS or another exterior routing protocol).
If this does not appeal to you or them, you may be able to set up pf and
nat to round robin connections. I don't remember if you can store
arbitrary state information but if so, have a bit that determines what
DSL you last established on. When a stream is first opened (tcp
establishing a connection, a new udp context is established, etc) have it
send it over that DSL, then switch the bit. NAT should take care of
sending the rest of the stream over the correct DSL.
Failover is even easier. Have a script run in the background that checks
each DSL periodically (via ping, etc.) or if you have a network/service
monitoring program running, use it to check for connectivity. When a line
goes down, change the pf and nat config's (dynamically, or create 3 (both
dsl's, and one for each dsl alone) and reload pf/nat. This may take some
time to converge (based on the delay in your pings) and will close
existing connections and it certainly isn't scalable but it should work
fine for you. If you need some more help setting this up, email me and
I'll see what I can do to help you out.
> Plus, way off-topic. The old inet-access archives probably have some
> good discussion on this. Heck, the freebsd-questions archives has
> some good discussion on this (I know, I've answered this question
> again, and again, and again...)
>
> ==ml
>
>
--
Trevor R.H. Clarke Computer Science House
Rochester Institute of Technology
retrev@csh.rit.edu
http://www.csh.rit.edu/~retrev/ finger retrev@csh.rit.edu for PGP key