OSPF adjacency troubleshooting
Evidence-led OSPF diagnosis: neighbor states, mismatched parameters and passive interfaces, separating symptoms from confirmed causes.
Reading neighbor states
OSPF diagnosis is evidence-led: read the neighbor state, form hypotheses, and check the specific parameter each state implicates. Don't guess from 'no routes' — the neighbor table tells you exactly where the process stalled.
Neighbor states and what they mean
| State | Meaning | If stuck here, suspect |
|---|---|---|
| DOWN | No hellos received | Link down, OSPF not enabled, passive, ACL blocking protocol 89 |
| INIT | Hello received, own RID not yet seen | One-way reachability, multicast filtering |
| 2-WAY | Bidirectional — DR election point | Normal on broadcast between DROTHERs; if stuck FULL needed, check network types |
| EXSTART | Master/slave DBD negotiation | MTU mismatch is the classic cause |
| EXCHANGE | DBD packets flowing | MTU or duplicate RID |
| LOADING | Requesting LSAs | LSA corruption/flood issues |
| FULL | Databases synchronized | The goal — adjacency complete |
Neighbor 2.2.2.2, state EXSTARTDBD negotiation never completes.MTU mismatch: local 1500, neighbor 1400DD packets carry MTU — a mismatch halts negotiation.Common mismatches
Mismatch → where to look
| Requirement | Verification command |
|---|---|
| Same area | show ip ospf interface brief — the area column |
| Same subnet | show ip interface on both ends |
| Hello/dead match | show ip ospf interface — timer line |
| MTU match | show interfaces — MTU field both ends |
| Auth match | show ip ospf interface — auth type line |
| Unique RID | show ip ospf — the router ID field |
| Not passive | show ip protocols — passive interface list |
| Protocol 89 allowed | Interface ACLs + debug ip ospf hello |
- Symptom
- Two routers in the same intended area reject each other; LSDB shows identity conflicts
show ip ospfon both shows the same router ID.- RIDs must be unique in the domain — duplicates in the same area corrupt the LSDB, not just the adjacency.
- Fix: set explicit unique
router-id, thenclear ip ospf processon each.
An explicit router-id is both documentation and insurance against this failure mode.
Diagnostic workflow
Verification toolbox
show ip ospf neighbor— state and role per neighbor.show ip ospf interface— network type, timers, cost, passive.show ip ospf database— the LSDB itself.show ip route ospf— what OSPF actually installed.debug ip ospf adj/hello— the mismatch in the device's own words (lab only).
Common mistakes
- Treating 2-WAY between DROTHERs as a fault — on broadcast segments DROTHERs stop at 2-WAY by design.
- Declaring 'routes missing = adjacency missing' — FULL neighbors can still withhold routes (no network statement covering the prefix).
- Ignoring MTU — it's the top cause of EXSTART hangs.
- Blaming OSPF when a physical/interface problem exists — check
show ip interface brieffirst.
Observation: Neighbors flap between FULL and INIT every few minutes.
- Hello/dead timers mismatched
- Physical layer instability
- Duplicate router ID elsewhere in the domain
- Authentication configured on one side only
| Check | Indicates |
|---|---|
show ip ospf interface timers both ends | Mismatched dead intervals cause periodic expiry. |
| Interface error counters and uptime | Physical flaps look identical at OSPF level. |
show ip ospf RID on all domain routers | Duplicates corrupt the LSDB and produce flapping. |
Correction: Fix whichever parameter the evidence names; don't guess.
Neighbors hold FULL through several dead-interval cycles and routes stay stable.
Related resources
Sources
- Cisco CCNA 200-301 v1.1 Exam Topics (official PDF) — reviewed 2026-11-02
- RFC 2328 — OSPF Version 2 — reviewed 2026-11-02
- Cisco — IP Routing: OSPF Command Reference — reviewed 2026-11-02
Targets CCNA 200-301 v1.1 objectives. Supplemental blocks are labeled beyond exam scope.