[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bgpd and two CARPed routers

On Mon, Aug 08, 2005 at 12:40:16PM +0300, Alexey E. Suslikov wrote:
> Hello misc_(_at_)_openbsd_(_dot_)_org,
>  setup is trivial: two uplinks, two CARPed boxes (three
>  interfaces each: 2 x uplinks, 1 x core servers' segment),
>  full-feed.
>  i know about bgpd's "depend-on" but this one means hard
>  resync due to full-feed.
>  is there any correct way to keep two CARPed routers with
>  bgpd in sync (means "to keep rib/fib tables coherrent")?

There is now way to transparently switch over bgp sessions form one box to
another without resetting the connection. To keep bgp routers in sync run
a IBGP session between them.

>  searching archives gives some cloudy hints to setup like
>   | peer1              peer2 |
>   |                          |
>   |                          |
> +---------+          +---------+
> | router1 |----------| router2 |
> +---------+          +---------+
>   |                          |
>   |       core segment       |
>  looks like router1 feeds peer1 and router2 feeds peer2
>  (router1 has higher advskew for peer2 and vice versa).
>  core segment is handled in ordinary master/backup way.
>  the only question is: how to do routers' interconnection
>  to see peer1's feeds on router2 and vice versa?
>  if the above is possible, example configs (or clear how-
>  to) would be nice. i am in doubt, but i think i need
>  iBGP for routers' interconnection....

If you have two upstreams, configure upstream on on router1 and upstream
to on router2 and run an ibgp session between the two routers.
With this setup one router may die and you still have net (but only via
one upstream provider).
If you have nice upstreams it may be possible to have redundant sessions
(both routers have a feed form both upstreams).
In case of providers that do not give you additional sessions and the need
for better fail over you need to create on carp interface per neighbor.
In your case one for provider1 (carp1) and one for provider2 (carp2).
carp1 defaults to router1 and carp2 defaults to router2.
Now use bgpd "depend on" so that if one router dies the killed session is
switched over to the backup router.
It is important that both router have a full feed to one upstream
because in case of a failover the other connection gets reset and so all
routes from that session will get lost until the session comes back up on
the other router.

:wq Claudio

Visit your host, monkey.org