Multiple OSPF instances on one interface

Tore Anderson tore at fud.no
Fri Oct 10 08:48:36 CEST 2014


Hi,

I'm trying to run two instances of OSPFv3 on a single interface, one in
stub mode, the other in normal broadcast mode. It doesn't seem to work,
in one of the protocols the interface ends up being marked "down". I
don't see why that would be, since one of the instances is in stub mode,
there should be no conflict between the two instances.

bird6.conf on my test node contains the following ospf stanzas:

protocol ospf main_igp_topology {
  area 10 {
    interface "eth0" {
      stub yes;
    };
  };
}

protocol ospf customer_anycast {
  area 20 {
    interface "eth0" {
      type broadcast;
    };
  };
}

After starting BIRD6, eth0 in the "customer_anycast" instnace is marked
down, but looks fine in "main_igp_topology":

root at kvmtest:~# birdc6 show ospf interface main_igp_topology
BIRD 1.4.5 ready.
main_igp_topology:
Interface eth0 (IID 0)
	Type: broadcast
	Area: 0.0.0.10 (10)
	State: waiting (stub)
	Priority: 1
	Cost: 10
	Hello timer: 10
	Wait timer: 40
	Dead timer: 40
	Retransmit timer: 5
	Designed router (ID): 0.0.0.0
	Designed router (IP): ::
	Backup designed router (ID): 0.0.0.0
	Backup designed router (IP): ::
root at kvmtest:~# birdc6 show ospf interface customer_anycast
BIRD 1.4.5 ready.
customer_anycast:
Interface eth0 (IID 0)
	Type: broadcast
	Area: 0.0.0.20 (20)
	State: down            <---- why?
	Priority: 1
	Cost: 10
	Hello timer: 10
	Wait timer: 40
	Dead timer: 40
	Retransmit timer: 5
	Designed router (ID): 0.0.0.0
	Designed router (IP): ::
	Backup designed router (ID): 0.0.0.0
	Backup designed router (IP): ::

Disabling "main_igp_topology" immediately brings "customer_anycast" to
life (at this point I can see in tcpdump that OSPFv3 hellos start being
being trasmitted):

root at kvmtest:~# birdc6 disable main_igp_topology
BIRD 1.4.5 ready.
main_igp_topology: disabled
root at kvmtest:~# birdc6 show ospf interface customer_anycast
BIRD 1.4.5 ready.
customer_anycast:
Interface eth0 (IID 0)
	Type: broadcast
	Area: 0.0.0.20 (20)
	State: waiting         <---- looking better!
	Priority: 1
	Cost: 10
	Hello timer: 10
	Wait timer: 40
	Dead timer: 40
	Retransmit timer: 5
	Designed router (ID): 0.0.0.0
	Designed router (IP): ::
	Backup designed router (ID): 0.0.0.0
	Backup designed router (IP): ::

The use case is that of a server LAN that needs to be allowed to
dynamically advertise certain host routes to service addresses for
anycast / fail-over purposes. I would then proceed to import those host
routes into my IGP, which is the OSPFv3 instance that runs in stub mode
(after ensuring the announced routes fall within a permitted prefix).

I have used RIPng instead of OSFPv3 for the "customer_anycast" role
before, but it is very slow to react to failures and is rather limited
in other ways too. So I was hoping replace it with OSPFv3, hopefully
with BFD for super-fast failure detection.

Tore



More information about the Bird-users mailing list