Sunday 1 April 2012

OSPFv3 ABR Preference


This post discusses how OSPF ABR routers "filter and convert" LSA types as they cross an area boundary. The main aim of this note is to show which ABR is preferenced if there are multiple ABRs connected to a single area.

I've tested this on the following network





The NETMAP file for this is:

101:0 301:0
102:0 301:32
103:0 301:48

102:16 302:32
103:16 302:48
104:16 302:0

Where:

R1 - 101
R2 - 102
R3 - 103
R4 - 104

S1 - 301
S2 - 302

In the text below, Outbound LSAs are advertisements that are sent out of an area into area 0. In bound LSAs are advertisements coming in from area 0.

Normal OSPF Area

Outbound LSAs
  • Both ABRs R2 & R3 are responsible for converting  type 1/2/8/9 LSAs to type 3
  • Both ABRs advertise type 5 LSAs
Inbound LSAs
  • Both ABRs advertise type 3 LSAs from area 0
  • Both ABRs advertise type 5 LSAs from area 0
By default OSPF supports a maximum of 4 equal cost paths so both of these routes are inserted into the routing table. You can tweak this to a maximum of 16.

Question : What happens if there are 5 ABRs? Which 4 routes get into the routing table?


R1#show ipv6 route
IPv6 Routing Table - default - 5 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - Neighbor Discovery
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
C   2000:2000::/64 [0/0]
     via Ethernet0/0, directly connected
L   2000:2000::1/128 [0/0]
     via Ethernet0/0, receive
OI  2001:2001::/64 [110/20]
     via FE80::A8BB:CCFF:FE00:6700, Ethernet0/0
     via FE80::A8BB:CCFF:FE00:6600, Ethernet0/0
OE2 4000:4000::4/128 [110/20]
     via FE80::A8BB:CCFF:FE00:6700, Ethernet0/0
     via FE80::A8BB:CCFF:FE00:6600, Ethernet0/0
L   FF00::/8 [0/0]
     via Null0, receive


R4#show ipv6 route
IPv6 Routing Table - default - 6 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - Neighbor Discovery
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
OE2 1000:1000::1/128 [110/20]
     via FE80::A8BB:CCFF:FE00:6710, Ethernet0/1
     via FE80::A8BB:CCFF:FE00:6610, Ethernet0/1
OI  2000:2000::/64 [110/20]
     via FE80::A8BB:CCFF:FE00:6710, Ethernet0/1
     via FE80::A8BB:CCFF:FE00:6610, Ethernet0/1
C   2001:2001::/64 [0/0]
     via Ethernet0/1, directly connected
L   2001:2001::4/128 [0/0]
     via Ethernet0/1, receive
LC  4000:4000::4/128 [0/0]
     via Loopback0, receive
L   FF00::/8 [0/0]
     via Null0, receive


Stub OSPF Area


Outbound LSAs

  • Both ABRs R2 & R3 are responsible for converting  type 1/2/8/9 LSAs to type 3
Inbound LSAs
  • Both ABRs advertise type 3 LSAs from area 0
  • Both ABRs advertise a default route type 3 LSAs
  • Both ABRs filter out type 5 LSAs
R1#show ipv6 route
IPv6 Routing Table - default - 5 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - Neighbor Discovery
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
LC  1000:1000::1/128 [0/0]
     via Loopback0, receive
C   2000:2000::/64 [0/0]
     via Ethernet0/0, directly connected
L   2000:2000::1/128 [0/0]
     via Ethernet0/0, receive
OI  2001:2001::/64 [110/20]
     via FE80::A8BB:CCFF:FE00:6700, Ethernet0/0
     via FE80::A8BB:CCFF:FE00:6600, Ethernet0/0
L   FF00::/8 [0/0]
     via Null0, receive
R4(config-rtr)#do show ipv6 route
IPv6 Routing Table - default - 6 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - Neighbor Discovery
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
OI  ::/0 [110/11]
     via FE80::A8BB:CCFF:FE00:6710, Ethernet0/1
     via FE80::A8BB:CCFF:FE00:6610, Ethernet0/1
OI  2000:2000::/64 [110/20]
     via FE80::A8BB:CCFF:FE00:6710, Ethernet0/1
     via FE80::A8BB:CCFF:FE00:6610, Ethernet0/1
C   2001:2001::/64 [0/0]
     via Ethernet0/1, directly connected
L   2001:2001::4/128 [0/0]
     via Ethernet0/1, receive
LC  4000:4000::4/128 [0/0]
     via Loopback0, receive
L   FF00::/8 [0/0]
     via Null0, receive




Totally Stub OSPF Area


Outbound LSAs

  • Both ABRs R2 & R3 are responsible for converting  type 1/2/8/9 LSAs to type 3
Inbound LSAs
  • Both ABRs filter type 3 LSAs from area 0
  • Both ABRs advertise a default route type 3 LSAs
  • Both ABRs filter out type 5 LSAs
 R1#show ipv6 route
IPv6 Routing Table - default - 5 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - Neighbor Discovery
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
LC  1000:1000::1/128 [0/0]
     via Loopback0, receive
C   2000:2000::/64 [0/0]
     via Ethernet0/0, directly connected
L   2000:2000::1/128 [0/0]
     via Ethernet0/0, receive
OI  2001:2001::/64 [110/20]
     via FE80::A8BB:CCFF:FE00:6700, Ethernet0/0
     via FE80::A8BB:CCFF:FE00:6600, Ethernet0/0
L   FF00::/8 [0/0]
     via Null0, receive

R4(config-rtr)#do show ipv6 route
IPv6 Routing Table - default - 5 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - Neighbor Discovery
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
OI  ::/0 [110/11]
     via FE80::A8BB:CCFF:FE00:6710, Ethernet0/1
     via FE80::A8BB:CCFF:FE00:6610, Ethernet0/1
C   2001:2001::/64 [0/0]
     via Ethernet0/1, directly connected
L   2001:2001::4/128 [0/0]
     via Ethernet0/1, receive
LC  4000:4000::4/128 [0/0]
     via Loopback0, receive
L   FF00::/8 [0/0]
     via Null0, receive




NSSA OSPF Area


Outbound LSAs

  • Both ABRs R2 & R3 are responsible for converting  type 1/2/8/9 LSAs to type 3
  • Only ABR R3 is responsible for converting type 7 LSA into type 5!  (Highest Router ID)
Inbound LSAs
  • Both ABRs advertise type 3 LSAs from area 0
  • Both ABRs DO NOT advertise a default route type 7 LSAs
  • Both ABRs filter out type 5 LSAs
The area border routers (ABRs) for the NSSA does not, by default, originate a default route into the NSSA. You must use the area <x> nssa default-information originate command. If you use this command on both ABRs then both default routes are imported into the routing table. See the last output for R4s routing table.


R1#show ipv6 route
IPv6 Routing Table - default - 6 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - Neighbor Discovery
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
LC  1000:1000::1/128 [0/0]
     via Loopback0, receive
C   2000:2000::/64 [0/0]
     via Ethernet0/0, directly connected
L   2000:2000::1/128 [0/0]
     via Ethernet0/0, receive
OI  2001:2001::/64 [110/20]
     via FE80::A8BB:CCFF:FE00:6700, Ethernet0/0
     via FE80::A8BB:CCFF:FE00:6600, Ethernet0/0
OE2 4000:4000::4/128 [110/20]
     via FE80::A8BB:CCFF:FE00:6700, Ethernet0/0
L   FF00::/8 [0/0]
     via Null0, receive


 
R4(config-rtr)#do show ipv6 route
IPv6 Routing Table - default - 5 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - Neighbor Discovery
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
OI  2000:2000::/64 [110/20]
     via FE80::A8BB:CCFF:FE00:6710, Ethernet0/1
     via FE80::A8BB:CCFF:FE00:6610, Ethernet0/1
C   2001:2001::/64 [0/0]
     via Ethernet0/1, directly connected
L   2001:2001::4/128 [0/0]
     via Ethernet0/1, receive
LC  4000:4000::4/128 [0/0]
     via Loopback0, receive
L   FF00::/8 [0/0]
     via Null0, receive


R4's Routing table after the NSSA default information originate command

R4(config-rtr)#do show ipv6 route
IPv6 Routing Table - default - 6 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - Neighbor Discovery
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
ON2 ::/0 [110/1]
     via FE80::A8BB:CCFF:FE00:6610, Ethernet0/1
     via FE80::A8BB:CCFF:FE00:6710, Ethernet0/1
OI  2000:2000::/64 [110/20]
     via FE80::A8BB:CCFF:FE00:6710, Ethernet0/1
     via FE80::A8BB:CCFF:FE00:6610, Ethernet0/1
C   2001:2001::/64 [0/0]
     via Ethernet0/1, directly connected
L   2001:2001::4/128 [0/0]
     via Ethernet0/1, receive
LC  4000:4000::4/128 [0/0]
     via Loopback0, receive
L   FF00::/8 [0/0]
     via Null0, receive





Totally stubby NSSA OSPF Area


Outbound LSAs

  • Both ABRs R2 & R3 are responsible for converting  type 1/2/8/9 LSAs to type 3
  • Only ABR R3 is responsible for converting type 7 LSA into type 5! (Highest Router ID)
Inbound LSAs
  • Both ABRs filter type 3 LSAs from area 0
  • Both ABRs advertise a default route type 3 LSAs (in the previous case it was a type 7)
  • Both ABRs filter out type 5 LSAs
 R1#show ipv6 route
IPv6 Routing Table - default - 6 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - Neighbor Discovery
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
LC  1000:1000::1/128 [0/0]
     via Loopback0, receive
C   2000:2000::/64 [0/0]
     via Ethernet0/0, directly connected
L   2000:2000::1/128 [0/0]
     via Ethernet0/0, receive
OI  2001:2001::/64 [110/20]
     via FE80::A8BB:CCFF:FE00:6700, Ethernet0/0
     via FE80::A8BB:CCFF:FE00:6600, Ethernet0/0
OE2 4000:4000::4/128 [110/20]
     via FE80::A8BB:CCFF:FE00:6700, Ethernet0/0
L   FF00::/8 [0/0]
     via Null0, receive

R4(config-rtr)#do show ipv6 route
IPv6 Routing Table - default - 5 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, M - MIPv6, R - RIP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - Neighbor Discovery
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
OI  ::/0 [110/11]
     via FE80::A8BB:CCFF:FE00:6710, Ethernet0/1
     via FE80::A8BB:CCFF:FE00:6610, Ethernet0/1
C   2001:2001::/64 [0/0]
     via Ethernet0/1, directly connected
L   2001:2001::4/128 [0/0]
     via Ethernet0/1, receive
LC  4000:4000::4/128 [0/0]
     via Loopback0, receive
L   FF00::/8 [0/0]
     via Null0, receive
R4(config-rtr)#




No comments:

Post a Comment