The devil is in the detail.

Recently I’ve taken a part in some OSPFv3 troubleshooting. It was a simple setup and the problem was soon reduced to just two adjacent routers, both running OSPF for IPv6. A simplified schema describes the situation:

schema

Adjacency was established but no OSPF routes were installed in the routing table. I was checking the OSPF database and all the prefixes were all there, but none was used. Rechecking the configuration, clearing the OSPF process, starring into the database, debugging, …with no success – no OSPF routes from router r1 :-(. To keep the story short, the problem was caused by a missing configuration statement on one of the two connecting interfaces – one of them was not configured as a point-to-point network type (see the configuration above).
Now, when the problem is resolved and almost forgotten, I can see that I’ve missed a few signs that would have been clearly indicating the misconfiguration error. First “misconfiguration indicator” is shown in the “show ipv6 ospf neighbor” printout:

r1>show ipv6 ospf neighbor 
Neighbor ID     Pri   State           Dead Time   Interface ID    Interface
2.2.2.2           1   FULL/DR         00:00:36    4               GigabitEthernet0/0

Check the State – FULL/DR. Why DR? There should be no “designated” routers on a point-to-point link!
Next, “show ipv6 ospf database router” shows some LSAs being ignored in SPF calculation. For example:

r2>show ipv6 ospf database router 

            OSPFv3 Router with ID (2.2.2.2) (Process ID 1)

Router Link States (Area 0)

  LSA ignored in SPF calculation
  LS age: 35
  Options: (V6-Bit, E-Bit, R-bit, DC-Bit)
  LS Type: Router Links
  Link State ID: 0
  Advertising Router: 1.1.1.1
  LS Seq Number: 8000000A
  Checksum: 0x22BD
  Length: 40
  AS Boundary Router
  Number of Links: 1

    Link connected to: a Transit Network
      Link Metric: 1
      Local Interface ID: 4
      Neighbor (DR) Interface ID: 4
      Neighbor (DR) Router ID: 2.2.2.2

It should say “Routing Bit Set on this LSA” instead!


Yes, the devil is in the detail ;-).

The missing “ipv6 ospf network point-to-point” caused our problem. The OSPF database was populated, but LSAs were not used because of the inter-connect network type mismatch. Once again I’ve seen that most problems in networking are not due to some complex misbehaviour or ridiculously bad design but in small details we mistook. We have to learn how to notice and explore not just to look and see.

Advertisements