On Mon, Mar 11, 2013 at 10:44:21PM +0000, Stuart Henderson wrote:
> In gmane.os.openbsd.misc, you wrote:
> > On 09/03/13 14:50, Stuart Henderson wrote:
> >> Yes, the routes to carp interfaces in BACKUP are advertised but with a
> >> low priority (better to have the route stay in the table, even if it goes
> >> to a backup firewall, rather than have it drop in and out).
> >
> > Sorry to jump in, but Stuart are we sure about this?
> > In a current setup only the active firewall (carp master) is advertising
> > the network.
>
> Hmm. Well that is the idea, but it seems it was accidentally eaten
> by a tidy-up diff (ospfe.c r1.83). This restores it:
>
Didn't we change the linkstate value for carp to be not not DOWN for
backup and shouldn't LINK_STATE_IS_UP take care of that?
Guess I need to start looking into that again.
> Index: ospfe.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/ospfd/ospfe.c,v
> retrieving revision 1.85
> diff -u -p -r1.85 ospfe.c
> --- ospfe.c 17 Jan 2013 10:07:56 -0000 1.85
> +++ ospfe.c 11 Mar 2013 22:31:31 -0000
> @@ -870,9 +870,12 @@ orig_rtr_lsa(struct area *area)
> * do not add a stub net LSA for interfaces that are:
> * - down
> * - have a linkstate which is down
> + * unless they're carp, in which case down == backup
> */
> if (!(iface->flags & IFF_UP) ||
> - !LINK_STATE_IS_UP(iface->linkstate))
> + (!LINK_STATE_IS_UP(iface->linkstate) &&
> + !(iface->media_type == IFT_CARP &&
> + iface->linkstate == LINK_STATE_DOWN)))
> continue;
> log_debug("orig_rtr_lsa: stub net, "
> "interface %s", iface->name);
>
> > In advance I still cannot add carp interfaces (carpXX) to a different
> > area except 0.0.0.0
> > http://marc.info/?l=openbsd-misc&m=136267654831883&w=2
>
> No idea about this, config below pretty much works for me.
>
> area 0.0.0.1 {
> stub
> interface lo1 { passive }
> interface vlan700 {
> metric 4
> demote carp
> }
> interface carp193:xxxxx { passive } ## on vlan80
> interface carp410 { passive }
> interface carp411 { passive }
> interface carp412 { passive }
> <...snip some lines...>
> interface carp721 { passive }
> interface carp881 { passive }
> }
>
> Only problem is with the config parser getting confused about carp
> interfaces added at runtime when the subnet is on both the vlan backing
> interface and the carp interface because carp(4) doesn't send the
> expected rtm's when the address is added in those cases. (Pondering
> how best to fix that. It might be saner if ospfd notices the /32
> on the carp interface and picks a matching network on the carpdev
> instead, as that would also sort out some lladdr confusion..).
>
--
:wq Claudio