Neighbor States and Adjacency
Key Takeaways
- OSPF discovers neighbors with multicast Hellos (224.0.0.5) and forms adjacencies only when critical parameters match: area, timers, authentication, stub flags, and compatible network types.
- The must-know state sequence is Down → Init → 2-Way → ExStart → Exchange → Loading → Full.
- On multi-access networks, DROthers often remain in 2-Way with each other and reach Full only with the DR and BDR—Full with every neighbor is not always required.
- Hello interval and Dead interval must match; common defaults are Hello 10 s and Dead 40 s on broadcast networks (Dead typically 4 × Hello).
- Troubleshoot stuck states by checking IP connectivity, area ID, timer mismatch, MTU/ExStart issues, and network-type mismatch using display ospf peer.
Neighbor States and Adjacency
Quick Answer: OSPF neighbors form through Hello packets. Matching parameters move the relationship through Down → Init → 2-Way → ExStart → Exchange → Loading → Full. Full means LSDB exchange finished with that neighbor. On Ethernet multi-access segments, DROthers may stay 2-Way with each other and only go Full with the DR and BDR—that is normal, not a failure.
Areas and roles describe the map. This section describes the handshake: how two routers discover each other, when they become adjacent, and which display output indicates health. HCIA loves state-sequence questions and “stuck in ExStart/Exchange” troubleshooting themes.
Hello packets and multicast
On broadcast multi-access networks, OSPF routers send Hello packets to 224.0.0.5 (AllSPFRouters). Hellos advertise:
- Router ID
- Area ID
- Hello interval and Dead interval
- Router priority (for DR election)
- DR and BDR fields (when known)
- Neighbor list (Router IDs heard on the segment)
- Options / flags (for example stub area related bits)
- Authentication data if configured
Dead interval is how long a router waits without hearing Hellos before declaring the neighbor down. A common teaching default on broadcast links is Hello = 10 seconds, Dead = 40 seconds (Dead = 4 × Hello). Point-to-point defaults can differ (often Hello 10 still, but know that mismatched Hello/Dead prevents adjacency regardless of the number).
Parameters that must match (adjacency checklist)
| Parameter | Must match? | Notes |
|---|---|---|
| Area ID | Yes | Different areas → no adjacency on that link |
| Hello / Dead timers | Yes | Classic silent failure |
| Authentication type/key | Yes | Mismatch → neighbors never form |
| Stub area flags / special area options | Yes | Stub vs normal mismatch fails |
| Compatible network types | Yes | Broadcast vs P2P mismatch causes issues |
| IP subnet / mask on the link | Yes (practical) | Must be on the same subnet to exchange Hellos |
| MTU | Should match | MTU mismatch often sticks at ExStart/Exchange |
| Router ID | Must be unique | Duplicate Router IDs cause chaos |
| Process ID | No | Local only |
| Interface cost | No | Does not need to match for adjacency |
The seven states (HCIA must-know sequence)
Memorize both the order and the meaning of each state.
| State | Meaning |
|---|---|
| Down | No recent Hello information about this neighbor (initial or dead). |
| Init | Hello received from the neighbor, but the neighbor has not yet listed my Router ID in its Hello (one-way awareness). |
| 2-Way | Bidirectional communication: each router sees its own Router ID in the neighbor’s Hello. DR/BDR election can complete from here on multi-access networks. |
| ExStart | Master/slave negotiation for Database Description exchange; the higher Router ID becomes master. |
| Exchange | Database Description (DBD) packets describe LSDB contents (LSA headers). |
| Loading | Link State Requests pull missing/newer LSAs; Link State Updates supply them. |
| Full | Adjacency complete; LSDBs are synchronized with this neighbor for the area. |
Narrative of a successful adjacency
- Interfaces come up; routers start Hellos → neighbors leave Down.
- First Hello arrives → Init.
- When Hellos are mutual → 2-Way.
- If the pair should become fully adjacent (for example, both on P2P, or one is DR/BDR on multi-access), they enter ExStart, elect master/slave, then Exchange DBDs.
- Any gaps are filled in Loading.
- When the neighbor’s needed LSAs are installed → Full.
SPF can run when the LSDB is stable; routes install into the OSPF table and may become candidates for the global RIB based on preference.
Full versus 2-Way: the multi-access exam trap
On a broadcast segment with multiple routers, OSPF elects a Designated Router (DR) and Backup DR (BDR). To reduce adjacency mesh:
- Every router becomes Full with the DR and BDR.
- Two DROther routers (neither DR nor BDR) typically remain in 2-Way with each other.
That 2-Way between DROthers is expected. Operators who panic at “not Full with everyone” mis-troubleshoot healthy LANs. Conversely, if a router never reaches Full with the DR, that is a problem.
On point-to-point links there is no DR/BDR pair in the multi-access sense; the two routers should progress to Full with each other.
| Topology | Expected adjacency pattern |
|---|---|
| Point-to-point | Two routers → Full with each other |
| Broadcast multi-access | Full with DR and BDR; DROthers often 2-Way among themselves |
| Single neighbor Ethernet | Still elects DR/BDR roles; usually Full between the pair |
Common stuck states and fixes
| Symptom | Likely causes | What to check on VRP |
|---|---|---|
| Stuck Down / no neighbor | Link down, ACL blocking OSPF/multicast, wrong network statement, passive interface | Physical/L3 reachability, display ospf interface, ACL |
| Stuck Init | One-way Hello (asymmetric filter, one side wrong area/timers) | Both sides’ Hello config, filters |
| Stay 2-Way only (when Full expected) | On multi-access: may be normal DROther–DROther; on P2P: abnormal | Who is DR? Network type? |
| Stuck ExStart / Exchange | MTU mismatch, duplicate Router ID, unicast DBD problems | Interface MTU, Router IDs, display ospf peer detail |
| Flapping neighbors | Unstable link, aggressive timers, CPU overload | Interface errors, timer consistency |
Passive interfaces and Hello suppression (concept)
A passive OSPF interface advertises the connected prefix into OSPF but does not send or accept Hellos on that interface. Use passive on host-facing VLANIF/SVI edges where no OSPF router should peer, while still injecting the subnet. Accidental passive on an inter-router link is a frequent lab mistake: the network appears in the LSDB design intent, but no neighbor forms.
Huawei verification focus
[Router] display ospf peer
[Router] display ospf peer brief
[Router] display ospf interface
[Router] display ospf error
Read peer state (Full/2-Way/…), neighbor Router ID, which interface faces the peer, and Dead timer countdown. Confirm Area ID and network type on the interface. When timers were customized, verify both ends show the same Hello/Dead values.
Conceptual timer change (exam recognition):
[Router-GigabitEthernet0/0/0] ospf timer hello 5
[Router-GigabitEthernet0/0/0] ospf timer dead 20
If only one side changes Hello to 5 and Dead to 20 while the other stays 10/40, adjacency fails. Always change pairs consistently and keep Dead longer than Hello (commonly 4×).
Adjacency versus neighbor (language precision)
Some texts call any 2-Way relationship a “neighbor” and reserve “adjacency” for Full (or for the DBD exchange relationship). Exam questions may use the words loosely. Focus on state names: if the question asks whether LSDBs finished syncing, look for Full. If it asks whether bidirectional Hello works, look for 2-Way or better.
Worked mini-scenario
Four routers on one VLAN: R1 (priority 100), R2 (priority 50), R3 (priority 1), R4 (priority 1). After election, R1 is DR, R2 is BDR.
- R3 should show Full toward R1 and R2, and 2-Way toward R4.
- R4 same pattern toward DR/BDR and 2-Way toward R3.
- R1 shows Full toward R2, R3, and R4.
If R3–R4 shows Full on a pure broadcast multi-access segment, re-check whether the network type is actually treated as point-to-point or whether only two routers exist.
Exam checklist
- Recite states in order: Down, Init, 2-Way, ExStart, Exchange, Loading, Full.
- Explain Init vs 2-Way (seen Hello vs bidirectional).
- Explain why DROthers stop at 2-Way with each other.
- List match requirements: area, timers, auth, stub flags, network type; process ID not required to match.
- Associate MTU problems with ExStart/Exchange stuck states.
- Know Hello/Dead relationship and that mismatches kill adjacency.
With stable Full (or correct 2-Way) relationships, routers share LSAs. Next: which LSA types fill the LSDB and what each type means on the exam.
Which sequence correctly lists OSPF neighbor states from initial discovery through LSDB synchronization?
On a multi-access Ethernet segment, two DROther routers typically show which state toward each other?
Router A uses Hello 10 s / Dead 40 s. Router B uses Hello 10 s / Dead 30 s on the same link and area. What happens?
An OSPF adjacency is stuck in ExStart/Exchange. Which cause is most commonly associated with this symptom?