The 8 OSPF Neighbor States
1. Down
What it means:
No Hello packets have been received from the neighbor. This is the starting state.
What's happening:
- The router is either:
- Waiting for the first Hello from a neighbor, or
- No longer receiving Hellos (neighbor went down)
What you'll see:
You usually won't see "Down" in show ip ospf neighbor because down neighbors aren't listed. The absence of a neighbor means it's in the Down state.
Next state: Init (when the first Hello is received)
2. Init
What it means:
A Hello packet has been received from the neighbor, but this router's Router ID is not yet listed in the neighbor's Hello packet.
What's happening:
- You've heard from the neighbor
- The neighbor hasn't heard from you yet (or hasn't acknowledged you)
Why you see this state:
- One-way communication (ACLs, firewall blocking return traffic)
- Wrong subnet mask (router receives Hello but can't respond properly)
- Authentication mismatch
What you'll see:
Router# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.1.2 1 INIT/DROTHER 00:00:33 192.168.1.2 Gi0/0
Troubleshooting:
If a neighbor is stuck in Init, there's one-way communication. Check:
- ACLs blocking OSPF packets (protocol 89)
- Subnet mask mismatch
- Passive interface configuration
Next state: 2-Way
Learn more: OSPF Neighbors Not Forming Troubleshooting (Article 18)
3. 2-Way
What it means:
Bidirectional communication has been established. Each router sees its own Router ID in the other's Hello packet.
What's happening:
- Hello packets are being exchanged successfully
- On point-to-point links, routers immediately move to ExStart
- On multi-access (Ethernet) networks, routers wait here while the DR/BDR election happens
Why this state is important:
On Ethernet, not all neighbors will progress past 2-Way. Only the DR and BDR will form full adjacencies with all routers. Regular routers (called "DROthers") stay at 2-Way with each other.
What you'll see:
Router# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.1.2 1 2WAY/DROTHER 00:00:34 192.168.1.2 Gi0/0
Key point:
2-Way is normal on multi-access networks if the router is not the DR or BDR. It's not normal on point-to-point links (it should quickly become Full).
Next state: ExStart (if forming full adjacency)
4. ExStart
What it means:
Routers are negotiating who will be the "master" and who will be the "slave" in the database exchange process.
What's happening:
- Routers exchange empty DBD (Database Description) packets with the I (Initial), M (More), MS (Master/Slave) bits set
- The router with the higher Router ID becomes the master
- The master controls the DBD sequence number
Why it matters:
This state is usually very brief (milliseconds to a few seconds). If neighbors get stuck here, it's almost always an MTU mismatch.
What you'll see:
Router# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.1.2 1 EXSTART/DR 00:00:35 192.168.1.2 Gi0/0
Troubleshooting:
If stuck in ExStart, check for MTU mismatch:
Router# show interface gi0/0 | include MTU
MTU 1500 bytes
Learn more: OSPF MTU Mismatch Troubleshooting (Article 20)
Next state: Exchange
5. Exchange
What it means:
Routers are exchanging Database Description (DBD) packets, which contain summaries of the LSAs in each router's LSDB.
What's happening:
- Each router sends DBD packets listing the LSAs it knows about
- Routers compare the summaries to their own LSDB
- If a router sees an LSA it doesn't have (or an LSA with a newer sequence number), it marks it for download
Why it matters:
This is where routers figure out what LSAs they need to request.
What you'll see:
Router# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.1.2 1 EXCHANGE/BDR 00:00:36 192.168.1.2 Gi0/0
Troubleshooting:
If stuck in Exchange, suspect:
- MTU mismatch (DBD packets too large to send)
- Overloaded router (CPU maxed out)
Next state: Loading (if missing LSAs) or Full (if LSDBs are identical)
6. Loading
What it means:
Routers are requesting and receiving missing LSAs.
What's happening:
- Router sends Link-State Request (LSR) packets asking for specific LSAs
- Neighbor responds with Link-State Update (LSU) packets containing the LSAs
- Router sends Link-State Acknowledgment (LSAck) to confirm receipt
Why it matters:
This is the state where LSDBs are synchronized.
What you'll see:
Router# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.1.2 1 LOADING/DR 00:00:37 192.168.1.2 Gi0/0
How long it lasts:
Usually very brief (seconds). In large networks with thousands of LSAs, it can take longer.
Next state: Full
7. Full
What it means:
The adjacency is fully formed. LSDBs are synchronized, and routers are exchanging LSA updates as needed.
What's happening:
- Routers have identical LSDBs (for the shared area)
- SPF has been calculated
- Routes are installed in the routing table
- Routers will continue to exchange periodic Hellos and LSA updates
Why it matters:
Full is the goal. This is what you want to see on all adjacencies (except DROther-to-DROther on multi-access networks).
What you'll see:
Router# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.1.2 1 FULL/DR 00:00:38 192.168.1.2 Gi0/0
192.168.1.3 1 FULL/BDR 00:00:34 192.168.1.3 Gi0/0
192.168.1.4 0 2WAY/DROTHER 00:00:39 192.168.1.4 Gi0/0
Key observations:
- Neighbor
192.168.1.2is the DR — Full adjacency - Neighbor
192.168.1.3is the BDR — Full adjacency - Neighbor
192.168.1.4is a DROther — 2-Way state (normal!)
8. Attempt (Rare)
What it means:
Used only on NBMA (Non-Broadcast Multi-Access) networks when manually configured neighbors haven't responded.
What's happening:
The router is trying to send unicast Hellos to a manually configured neighbor, but hasn't received a response.
Where you'll see it:
Almost never, unless you're working with Frame Relay or manually configured NBMA neighbors.
What you'll see:
Router# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.1.1.2 1 ATTEMPT/DROTHER - 10.1.1.2 Serial0/0
OSPF Neighbor State Transition Summary
Here's the normal flow for a successful adjacency:
| State | What's Happening | Packets Exchanged |
|---|---|---|
| Down | No Hellos received | None |
| Init | Hello received, waiting for bidirectional | Hello |
| 2-Way | Bidirectional communication established | Hello |
| ExStart | Master/slave negotiation | Empty DBD (I, M, MS bits set) |
| Exchange | LSA summaries exchanged | DBD packets |
| Loading | Missing LSAs requested | LSR, LSU, LSAck |
| Full | LSDBs synchronized | Periodic Hellos, LSA updates |
Point-to-Point Flow:
Down → Init → 2-Way → ExStart → Exchange → Loading → Full
Broadcast (Ethernet) Flow (DR/BDR):
Down → Init → 2-Way → ExStart → Exchange → Loading → Full
Broadcast (Ethernet) Flow (DROther-to-DROther):
Down → Init → 2-Way (STOPS HERE)
What "FULL/DR," "FULL/BDR," and "2WAY/DROTHER" Mean
When you run show ip ospf neighbor, you see two pieces of information in the State column:
Format: [State]/[Role]
Examples:
FULL/DR
- State: Full adjacency
- Role: Neighbor is the Designated Router
FULL/BDR
- State: Full adjacency
- Role: Neighbor is the Backup Designated Router
2WAY/DROTHER
- State: 2-Way (bidirectional communication, but no full adjacency)
- Role: Neighbor is neither DR nor BDR
FULL/-
- State: Full adjacency
- Role: Point-to-point link (no DR/BDR)
When to Expect Full Adjacencies vs 2-Way
Full Adjacencies Form:
✅ On point-to-point links (e.g., WAN serial links, GRE tunnels)
✅ Between all routers and the DR
✅ Between all routers and the BDR
✅ On point-to-multipoint networks
2-Way is Normal:
✅ Between DROthers on multi-access networks (Ethernet, etc.)
Example:
On an Ethernet segment with 5 routers:
- 1 router becomes the DR
- 1 router becomes the BDR
- 3 routers are DROthers
Adjacencies:
- DR ↔ All routers: Full (4 adjacencies)
- BDR ↔ All routers: Full (4 adjacencies)
- DROther ↔ DROther: 2-Way (no full adjacency)
This design reduces overhead. Without DR/BDR, 5 routers would need 10 full adjacencies (N × (N-1) / 2). With DR/BDR, only 8.
Learn more: OSPF DR and BDR Explained (Article 5)
Troubleshooting Stuck Neighbor States
Stuck in Init
Problem: One-way communication
Common causes:
- ACL blocking OSPF (IP protocol 89)
- Firewall dropping OSPF packets
- Subnet mask mismatch
- Interface configured as passive
How to verify:
Router# debug ip ospf adj
OSPF-1 ADJ Gi0/0: Rcv hello from 192.168.1.2 area 0
OSPF-1 ADJ Gi0/0: 2-Way communication to 192.168.1.2 on Gi0/0, state 2WAY
If you don't see "2-Way communication," the neighbor isn't seeing your Hellos.
Learn more: OSPF Neighbors Not Forming (Article 18)
Stuck in 2-Way (Point-to-Point Link)
Problem: Should progress to ExStart, but doesn't
Common causes:
- Interface configured as broadcast instead of point-to-point
- Misconfigured network type
How to check:
Router# show ip ospf interface gi0/0 | include Network Type
Process ID 1, Router ID 10.0.0.1, Network Type BROADCAST
How to fix:
Router(config)# interface gi0/0
Router(config-if)# ip ospf network point-to-point
Learn more: OSPF Network Types Explained (Article 17)
Stuck in ExStart or Exchange
Problem: MTU mismatch
Common causes:
- One router has MTU 1500, the other has MTU 1400
- Jumbo frames enabled on one side but not the other
How to check:
Router# show interface gi0/0 | include MTU
MTU 1500 bytes
How to fix (option 1):
Match MTU on both routers:
Router(config-if)# ip mtu 1500
How to fix (option 2):
Tell OSPF to ignore MTU:
Router(config-if)# ip ospf mtu-ignore
Learn more: OSPF MTU Mismatch Troubleshooting (Article 20)
Neighbors Flapping (Up/Down)
Problem: Adjacency forms, then drops, then forms again
Common causes:
- Hello/Dead timer mismatch
- Intermittent link issues
- Authentication misconfiguration
- Duplicate Router ID
How to check timers:
Router# show ip ospf interface gi0/0 | include Timer
Timer intervals configured, Hello 10, Dead 40
How to check for duplicate Router ID:
Router# show ip ospf
%OSPF-4-DUP_RTRID1: Detected router with duplicate router ID 10.0.0.1
Learn more: OSPF Timers Explained (Article 16), Duplicate Router ID Troubleshooting (Article 22)
Monitoring Neighbor State Changes
See current neighbors
Router# show ip ospf neighbor
Watch neighbor state changes in real time
Router# debug ip ospf adj
Example output:
*Mar 17 12:34:56.789: OSPF-1 ADJ Gi0/0: Rcv hello from 192.168.1.2 area 0
*Mar 17 12:34:56.791: OSPF-1 ADJ Gi0/0: 2-Way communication to 192.168.1.2, state 2WAY
*Mar 17 12:34:56.795: OSPF-1 ADJ Gi0/0: Nbr 192.168.1.2 has larger Router ID
*Mar 17 12:34:56.796: OSPF-1 ADJ Gi0/0: Send DBD to 192.168.1.2 seq 0x123 opt 0x52 flag 0x7 len 32
*Mar 17 12:34:56.801: OSPF-1 ADJ Gi0/0: Rcv DBD from 192.168.1.2 seq 0x456 opt 0x52 flag 0x7 len 32 state EXSTART
*Mar 17 12:34:56.802: OSPF-1 ADJ Gi0/0: NBR Negotiation Done. We are the SLAVE
*Mar 17 12:34:56.850: OSPF-1 ADJ Gi0/0: Loading Done, state FULL
Turn off debug:
Router# undebug all
⚠️ Warning: debug commands generate CPU-intensive output. Use carefully in production.
Summary: Neighbor State Checklist
Now you know:
✅ 8 OSPF neighbor states and what each means
✅ Normal state progression from Down to Full
✅ When 2-Way is normal (DROthers on Ethernet)
✅ When Full is expected (point-to-point, DR/BDR adjacencies)
✅ Common stuck states and their causes (Init, ExStart, Exchange)
✅ How to troubleshoot state issues with show and debug commands
Next Step:
Understanding neighbor states is half the battle. The other half is understanding why DR and BDR exist. Read OSPF DR and BDR Explained next.
Screenshot Suggestions:
- Topology with 4 routers on Ethernet showing which neighbors reach Full vs 2-Way
show ip ospf neighboroutput with annotations explaining State/Roledebug ip ospf adjoutput showing state transitions- Flowchart: Down → Init → 2-Way → ExStart → Exchange → Loading → Full
Internal Links:
- ← OSPF Key Terms and Concepts (Article 2)
- → OSPF DR and BDR Explained (Article 5)
- → OSPF Neighbors Not Forming Troubleshooting (Article 18)
- → OSPF MTU Mismatch Troubleshooting (Article 20)