The 8 OSPF Neighbor States
1. Down
What it means:
No Hello packets have been received from the neighbor. This is the starting state.
New to OSPF? Start with the full OSPF guide, then come back here for the deep dive.
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
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
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:
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
Get the OSPF Field Reference - 9 pages, free
Everything you'd want to remember about OSPF on nine printable pages. State machine diagram, LSA types, troubleshooting decision tree, copy-paste IOS XE templates, and real lab captures. Free for PingLabz members - just sign up with your email.
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.
That is the useful part: the router has already told you which direction is dead, so you only have to explain one side of the link. Diagnosing a one-way OSPF hello takes that reading and works through the ACL, the mask and the passive-interface cases one at a time.
Learn more: OSPF Neighbors Not Forming
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
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
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, Duplicate Router ID Troubleshooting
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.
Internal Links:
- ← OSPF Key Terms and Concepts
- → OSPF DR and BDR Explained
- → OSPF Neighbors Not Forming Troubleshooting
- → OSPF MTU Mismatch Troubleshooting