Re: Best way to do failover default route? (ifstated, pf route-to, etc)

2007-03-05 Thread Toni Mueller
Hello,

On Wed, 21.02.2007 at 12:00:51 -0600, Chris Black [EMAIL PROTECTED] wrote:
 1) ifstated with ping and if.up tests and executing route commands
 The idea here would be ifstated would trigger commands something like:
 route delete default rtr0.ip; route add default rtr1.ip

you didn't give too many details, so I speculate. If your two routers
don't have the same IP set (eg, you're running two DSL lines to two
different ISPs), then (1) is your only easy option (unless in your LAN
ONLY). 

For the options below, you need either a specific application profile
that lets you do NAT on one of the lines, or you need a common set of
IP numbers. I'm not sure that multipath routing gives you failover,
only load balancing.

 4) ospf, bgp
 I am aware of these routing daemons but really don't know too much about
 them. I read some docs and it seemed overly complex for setting up just
 a simple failover default route on internal machines.

This should be 4 and 5, imho. If you can use NAT, you might be able to
inject a default route from both routers using OSPF. The client would
also talk OSPF and learn both routes from your routers.

If you have your own IP numbers (PI space, or you're a LIR), then you
can (and usually must) use BGP.


Best,
--Toni++



Re: Best way to do failover default route? (ifstated, pf route-to, etc)

2007-02-22 Thread Joachim Schipper
On Wed, Feb 21, 2007 at 12:00:51PM -0600, Chris Black wrote:
 I am trying to set up failover default routes. The situation is three
 OpenBSD machines, client, rtr0 and rtr1. Client has two interfaces, one
 with a crossover link to rtr0 and one to rtr1. I would like the default
 route for client to be rtr0 unless rtr0 has failed in some way
 (unreachable, etc). As far as I know, I can not use carp to give a
 single default route ip carp'd between rtr0 and rtr1 because they are
 not on a shared network. I know this has been discussed before and have
 read some archived posts (including the recent inet failover solution
 thread) but still have questions. I have read about the following
 options but would like some guidance/advice (and of course any pointers
 to previous docs/posts):
 1) ifstated with ping and if.up tests and executing route commands
 The idea here would be ifstated would trigger commands something like:
 route delete default rtr0.ip; route add default rtr1.ip

That's a simple solution, so should mostly Just Work.

 2) ifstated executing pf table change commands
 Same sort of tests, but instead of issuing route commands, change a pf
 table that is being used as a route-to. I am not sure exactly what
 this would look like yet. I am not sure what this would look like yet, I
 am still reading more on route-to.
 
 Downsides to ifstated approach is that I would like to use ifstated to
 also control a different set of interfaces from client, so this may
 create a complex many-state ifstated.conf.

Sounds too complex.

 3) new multipath routing, but somehow disable one route
 This one confuses me a bit. I read the presentation about the new
 multipath routing and some associated docs and it seems that multipath
 routing can only be used for balancing across routes based on source. I
 really want to have a failover set up, NOT load balancing so I don't
 think this would work.

Me neither.

 4) ospf, bgp
 I am aware of these routing daemons but really don't know too much about
 them. I read some docs and it seemed overly complex for setting up just
 a simple failover default route on internal machines.

They *would* be the canonical answer, of course. I'd be inclined to
recommend them - neither is perfect, but both are far better than
anything home-grown in the time it takes to set them up (and, unless you
are quite smart, experienced, and have lots of time, most likely
anything home-grown at all).

I'd go with 1 or 4, myself. The first is probably faster to set up; the
second should be more reliable, more flexible, and look better on your
CV. Plus it's more fun.

Joachim



Best way to do failover default route? (ifstated, pf route-to, etc)

2007-02-21 Thread Chris Black
I am trying to set up failover default routes. The situation is three
OpenBSD machines, client, rtr0 and rtr1. Client has two interfaces, one
with a crossover link to rtr0 and one to rtr1. I would like the default
route for client to be rtr0 unless rtr0 has failed in some way
(unreachable, etc). As far as I know, I can not use carp to give a
single default route ip carp'd between rtr0 and rtr1 because they are
not on a shared network. I know this has been discussed before and have
read some archived posts (including the recent inet failover solution
thread) but still have questions. I have read about the following
options but would like some guidance/advice (and of course any pointers
to previous docs/posts):
1) ifstated with ping and if.up tests and executing route commands
The idea here would be ifstated would trigger commands something like:
route delete default rtr0.ip; route add default rtr1.ip

2) ifstated executing pf table change commands
Same sort of tests, but instead of issuing route commands, change a pf
table that is being used as a route-to. I am not sure exactly what
this would look like yet. I am not sure what this would look like yet, I
am still reading more on route-to.

Downsides to ifstated approach is that I would like to use ifstated to
also control a different set of interfaces from client, so this may
create a complex many-state ifstated.conf.

3) new multipath routing, but somehow disable one route
This one confuses me a bit. I read the presentation about the new
multipath routing and some associated docs and it seems that multipath
routing can only be used for balancing across routes based on source. I
really want to have a failover set up, NOT load balancing so I don't
think this would work.

4) ospf, bgp
I am aware of these routing daemons but really don't know too much about
them. I read some docs and it seemed overly complex for setting up just
a simple failover default route on internal machines.

Thanks in advance,
Chris