OSPF

OSPF States Explained — DR/BDR Election and Neighbor Adjacency

G Gurpreet Singh July 9, 2025 6 min read
Animated diagram for OSPF States Explained, showing four routers in a line with a packet travelling hop by hop and a route table lookup highlighting each column in turn

OSPF neighbours progress through seven states before they can exchange routes. Knowing which state an adjacency is stuck in tells you almost exactly what is wrong, each state fails for a specific, small set of reasons.

Router# show ip ospf neighbor
Router# show ip ospf interface GigabitEthernet0/1

The Seven States

StateWhat has happenedStuck here means
DownNo hello received from this neighbourInterface down, OSPF not enabled, or hellos being filtered
AttemptNBMA only, unicast hellos sent to a manually configured neighbour, no replyFrame Relay or NBMA reachability problem
InitA hello was received, but this router’s ID was not listed in itOne-way communication, the neighbour is not hearing you
2-WayBidirectional communication confirmed; DR/BDR election happens hereNormal and permanent between two DROTHERs. A problem only if it should be Full.
ExStartMaster/slave roles being negotiated; sequence numbers agreedMTU mismatch, or duplicate router IDs
ExchangeDatabase Description packets being swappedMTU mismatch, or a unidirectional link
LoadingLink State Requests sent for LSAs the router lacksCorrupted LSA, resource exhaustion, or a software bug
FullDatabases synchronised, the adjacency is upThis is where you want to be

Reading the Stuck States

Stuck in Init, the most informative one

Init means you are receiving the neighbour’s hellos but your own router ID does not appear in their neighbour list. Communication is working in one direction only.

Causes: an ACL blocking OSPF (IP protocol 89) in one direction, a unidirectional fibre fault, or the neighbour having passive-interface set on that link, a passive interface listens but never sends.

Stuck in ExStart or Exchange, almost always MTU

This is the classic OSPF fault. During Exchange, routers send Database Description packets sized to the interface MTU. If the two ends disagree, the larger packet is dropped and the exchange never completes, while ping works perfectly, because a normal ping is small.

Router# show interfaces GigabitEthernet0/1 | include MTU
Router# ping 10.1.1.2 size 1500 df-bit

Fix the MTU to match on both sides. As a workaround only, OSPF can be told to skip the check:

Router(config-if)# ip ospf mtu-ignore

This is a workaround, not a fix, a genuine MTU mismatch will still fragment or drop data traffic later.

The other ExStart cause is duplicate router IDs. Two routers claiming the same ID cannot negotiate master/slave.

Router(config-router)# router-id 1.1.1.1
Router# clear ip ospf process

Stuck in 2-Way, usually correct

On a broadcast segment, only the DR and BDR form full adjacencies with everyone. Two DROTHER routers deliberately stop at 2-Way with each other. That is designed behaviour, not a fault.

It is a fault when both routers should be adjacent, for example on a point-to-point link, or when one of them should be the DR. Check the priorities.

Why an Adjacency Fails to Form at All

Everything in this list must match, or the neighbour never appears:

Must matchCheck with
Area IDshow ip ospf interface
Subnet and maskshow ip interface brief
Hello and dead intervalsshow ip ospf interface
Authentication type and keyshow ip ospf interface
Stub area flagsshow ip ospf
MTUshow interfaces
Network typeshow ip ospf interface

Router IDs must be unique, not matching, that is the one item on the list that works the other way round.

DR and BDR Election

On a broadcast segment with n routers, full-mesh adjacencies would be n(n−1)/2 relationships. OSPF avoids that by electing a Designated Router that everyone adjoins, plus a Backup Designated Router ready to take over.

Election rules:

  1. Highest OSPF priority wins (default 1; priority 0 means never eligible).
  2. On a tie, highest router ID wins.

Router ID itself is chosen as: an explicit router-id command, else the highest loopback address, else the highest active physical interface address. Always set it explicitly, otherwise it changes when an interface goes down, which restarts OSPF.

Router(config-if)# ip ospf priority 255    ! prefer this router as DR
Router(config-if)# ip ospf priority 0      ! never become DR or BDR

The election is not preemptive

This surprises people. Once a DR is elected, a router that later appears with a higher priority does not take over. The existing DR keeps the role until it fails. If you want a specific router to be the DR, either configure priorities before the segment comes up, or clear the OSPF process on the current holder.

Where DR/BDR applies

Network typeDR/BDR elected?Hello / dead
Broadcast (Ethernet)Yes10 / 40 s
Non-broadcast (NBMA)Yes, neighbours configured manually30 / 120 s
Point-to-pointNo10 / 40 s
Point-to-multipointNo30 / 120 s

Setting a network type mismatch between two ends is a common cause of adjacencies that never form, the hello timers differ as a side effect.

The multicast addresses

  • 224.0.0.5, AllSPFRouters. Every OSPF router listens here.
  • 224.0.0.6, AllDRouters. Only the DR and BDR listen; DROTHERs send their updates here.

A Practical Troubleshooting Order

  1. show ip ospf neighbor, note the state.
  2. If no neighbour at all: check the interface is up, OSPF is enabled on it, it is not passive, and area and subnet match.
  3. If Init: look for one-way blocking, an ACL, a passive interface on the far side, or a unidirectional link.
  4. If ExStart/Exchange: check MTU on both ends, then check for duplicate router IDs.
  5. If 2-Way unexpectedly: check priorities and whether this should be a point-to-point link.
  6. If it reaches Full then drops: check for physical instability and dead-interval mismatches.
Router# debug ip ospf adj
Router# debug ip ospf hello

Frequently Asked Questions

Why is my OSPF neighbour stuck in ExStart?

Almost always an MTU mismatch between the two interfaces, or duplicate router IDs. Check MTU first, a DF-bit ping at the interface MTU confirms it in seconds.

Is 2-Way state a problem?

Not between two DROTHER routers on a broadcast segment, that is normal and intended. It is a problem if the two routers should be adjacent, such as on a point-to-point link.

Can I force a specific router to be the DR?

Set its OSPF priority higher and set the others to 0. But because the election is non-preemptive, you must do this before the segment comes up, or clear the OSPF process on the current DR afterwards.

Do hello and dead timers have to match?

Yes, for OSPF, unlike EIGRP, where they do not. A mismatch prevents the adjacency forming entirely. Changing the hello interval automatically adjusts the dead interval to four times its value.

What happens when the DR fails?

The BDR is already fully adjacent with every router on the segment, so it promotes itself immediately and a new BDR is elected. That is the entire reason a BDR exists.

Why do I need a loopback for the router ID?

A loopback never goes down, so the router ID stays stable. If the ID is derived from a physical interface that fails, the router ID changes and the OSPF process restarts, dropping every adjacency. Setting router-id explicitly is better still.

GU
Written by

Gurpreet Singh

Hey! I"m Gurpreet Singh and I Have 7+ Years of experience in the Network & Security Domain as well as the Cloud Infra Domain. I am Certified with Cisco ( CCNA ), CheckPoint ( CCSA ), 1xAWS, 3xAZURE, and 3xNSE. So I love to share my tech knowledge with you.

One response to “OSPF States Explained — DR/BDR Election and Neighbor Adjacency”

Leave a Reply

Your email address will not be published. Required fields are marked *