Cheers,

we have reproducible case in the lab where BIRD's OSPF sends LSUPDs with
illegal sequence number 0x80000000.

Here's what happens:

- The OSPF is up and running fine, including BIRD
- A change to bird.conf is made that affects OSPF routes
- BIRD receives a SIGHUP
- Apparently as part of reconfiguration, BIRD floods LSAs with MaxAge
  and MaxSequenceNumber 0x7fffffff (premature aging -- so far ok)
- Immediately after that, but before any other OSPF packet is
  received (!), BIRD floods the same LSAs again, but with an Age of
  2 or 3 (NOT MaxAge) and sequence number 0x80000000

We have a capture file (pcap) of this. If this is any help, I'm happy
to e-mail it.

The bug here is that sequence number 0x80000000 is reserved and not to
be used (RFC 2328, section 12.1.6).

As far as I can see, originate_ext_lsa() is called and simply looks up
a matching entry in its database (*en). It finds the previously-
originated entry with 0x7fffffff, blindly increments it to
0x80000000 (proto/ospf/topology.c:990) and then floods it.

>From what I understand, BIRD would have to wait for all routers to
LSACK the prematurely aged entries before starting to send fresh
LSUPDs with InitialSequenceNumber 0x80000001 (and not ...00).

Casual grep suggests that other places where the sequence number is
incremented, there isn't any warp-around check either.

Lab setup:

- 2x JunOS 9.3
- 1x BIRD OSPF (1.2.2) on Linux
- 1x Quagga OSPF (0.98.x, 0.99.16) on Linux

All connected on a single Ethernet as Area 0. The JunOS systems are
DR/BDR.

For the curious, the inter-op aftermath is this:

- Quagga's ospfd, on receiving the bad LSUPD, correctly logs the
  abnormality and then segfaults instantly [bug #586]
- JunOS just doesn't care and installs the entry with the illegal
  sequence number and sends it to other routers as usual -- thereby
  making a restart of quagga's ospfd very very short-lived and sad
- The situation only resolves itself after one hour (the illegal LSUPD
  reaches MaxAge) or by forcefully purging the entry from the other
  systems' databases

Regards,
- D.

Reply via email to