Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Apr 2001 01:38:46 -0700 (PDT)
From:      Ken Bolingbroke <hacker@bolingbroke.com>
To:        Ted Mittelstaedt <tedm@toybox.placo.com>
Cc:        questions@FreeBSD.ORG
Subject:   RE: Redundant Internet connections
Message-ID:  <Pine.BSF.4.21.0104290057220.87921-100000@fremont.bolingbroke.com>
In-Reply-To: <015b01c0d076$e5e544a0$1401a8c0@tedm.placo.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Sat, 28 Apr 2001, Ted Mittelstaedt wrote:

> >Given a FreeBSD box with _two_ independent connections to the internet,
> >and also serving as the gateway to a third, private network, how would I
> >configure it to use both Internet links as "default" routes?
> 
> You don't.  The concept of a "default route" always mandates that on a
> single host that a SINGLE connection exists to "The Internet"

Hmm, well, RFC 1123, W. Richard Stevens, Solaris, & Irix would seem to beg
to differ with you there.

Take Solaris, for example:

 # netstat -rn
 
 Routing Table: IPv4
   Destination           Gateway           Flags  Ref   Use   Interface
 -------------------- -------------------- ----- ----- ------ ---------
 10.211.0.0           10.211.0.8            U        1   8404  hme0
 224.0.0.0            10.211.0.8            U        1      0  hme0
 default              10.211.0.1            UG       1  10163
 default              10.211.0.2            UG       1      0
 127.0.0.1            127.0.0.1             UH      474994476  lo0

RFC 1123 mentions having a _list_ of default gateways several times, for
example:

  o    ipOutNoRoutes

              This object counts datagrams discarded because no route
              can be found.  This may happen in a host if all the
              default gateways in the host's configuration are down.

Especially note the part where it says, "...all the default gateways in
the host's configuration..."

Now granted, it would seem that FreeBSD doesn't conform to RFC and
accepted practice in other OSen in this respect, but it _is_ possible to
have multiple default routes.

Heck, even Windows9x allows you to enter multiple default gateways.  Now
_that_ is embarrassing. :-(


>  I would
> >prefer one over the other, but need it to fall back to the second if the
> >first goes offline.
> >
> 
> In this case the "preferred" route _is_ the "default route" and the
> "non-preferred" route is _not_ the "default route".  In the event that
> the default route goes offline, then what you apparently want to have
> happen is that this route _stops_ being the default route, and the
> non-preferred route _starts_ being the default route.
>
> You may think all this is semantics,

No, I don't particularly care about semantics.  Whether I have two default
routes or one default route that automagically switches to the backup if
the first dies, either way works.

The main idea here is to have a persistent Internet connect.  I'm not
trying to do load sharing or anything else fancy.  Just having a backup
connection that promptly takes over if the primary dies.


> But, if you have the money to spend on multiple ISP connections that
> duplicate each other and you don't care that 99% of the time one of
> the pipes is going to be wasted, why then you can implement this kind
> of "default route switching" if you want, there's a number of ways to
> do it.

That's basically it, yes.  Care to share these ways you're referring to?


> for a DSL line.  You can read it at http://www.computerbits.com in the
> Network Community section.  However, you WILL NOT be able to do this
> with multiple ISP's, don't even waste time trying.

That's out then, my connections are over different media to different ISPs
(the idea is to avoid the single point of failure after all).


> You need to give some more background, like what kind of links and so
> on, that you have before anyone could assist here.  But, I can tell
> you that I have a feeling that I know what your trying to accomplish
> and I also have a feeling that you don't understand all of the
> ramifications of why it won't work for most applications.  I also
> think that for the few apps that it would work for, that your going to
> have to have an awful icky hack on that FreeBSD system.

Granted, I'm not as much of a routing expert as I'd like to be.  But you
surprise me--wasn't the idea of redundant routes one of the fundamental
concepts underlying the whole idea of the Internet?  And those redundant
routes used to be implemented in individuals hosts before we split those
functions off into dedicated routers.  So essentially, I'm trying to
duplicate what people were doing 20, 25 years ago.  Or at least, I think I
am. :-)


> My advice here is this:  In Internet Connectivity, people assume that
> 
> "cheap unreliable high-speed ISP connection"
> + "cheap unreliable high-speed ISP connection"
>  = "reliable cheap high-speed connection"
> 
> However, this is wrong.  There is no such beast as a CHEAP reliable
> high-speed connection.  The three don't mix.

:-)  Yes, I'd tend to agree with you in general.  One of my own axioms is
"Cheap, Easy, Reliable:  Pick any two".

However, if ISP A dies on Wednesday, ISP B takes over the slack.  If ISP B
dies on Friday, ISP A is handling things anyway.  True, there's the chance
that both ISPs will die on the same day, but the likelihood of that is
definitely much lower than the liklihood of being without access
altogether if you have only ISP A.  It doesn't guarantee 100% uptime, but
it does get a lot closer at much less expense than it would cost for a
99.95% SLA.

And besides, it's a fun learning experience.  And therein lies the main
attraction.  Just banging on this has already refreshed/enhanced my
knowledge of routing tremendously. :-)

Ken


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0104290057220.87921-100000>