Octet

Walk me through the OSPF neighbor states from Down to Full. What is exchanged at each step?

Show the answer

Say this first

Down, then Init when I hear the neighbor's hello, then 2-Way when I see my own router ID in its hello. On broadcast links the DR election happens here. ExStart picks master and slave with empty DBDs, Exchange swaps DBDs full of LSA headers, Loading requests and receives the missing LSAs, and Full means both databases match.

Go deeper

State by state

StateWhat happenedPackets
DownNo hello heard within the dead intervalnone received
AttemptNBMA only: sending unicast hellos to a configured neighborHello
InitReceived a hello, but my router ID is not in its neighbor list yetHello
2-WayMy router ID is in its hello. Bidirectional. DR and BDR elected nowHello
ExStartMaster and slave chosen, higher router ID is master, master sets the DD sequenceEmpty DBDs with I, M and MS bits
ExchangeEach side describes its LSDB as a list of LSA headersDBD, LSR can start
LoadingRequesting the LSAs that are missing or newerLSR, LSU, LSAck
FullDatabases synchronized, adjacency completeHello, then LSU and LSAck for changes

Two points interviewers probe

  • 2-Way is the end state between two DROTHERs on a broadcast segment. They only go Full with the DR and BDR.
  • MTU is checked in the DBD packets. A mismatch is the classic cause of a neighbor stuck in ExStart or Exchange.

Traps

  • Saying 2-Way means the adjacency is broken. Between DROTHERs it is correct.
  • Saying the DR election happens in ExStart. It happens after 2-Way, before ExStart.
How did you do?