OSPF

OSPF Neighbor States Explained (With Packet Exchange Examples)

OSPF neighbors progress through 8 states from Down to Full, and understanding the packet exchange at each step is the key to troubleshooting adjacency problems. A guide to OSPF neighbor states with real packet captures.
OSPF Neighbor States Explained (With Packet Exchange Examples)
Table of Contents
In: OSPF

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.2 is the DR - Full adjacency
  • Neighbor 192.168.1.3 is the BDR - Full adjacency
  • Neighbor 192.168.1.4 is 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:

Down
What's HappeningNo Hellos received
Packets ExchangedNone
Init
What's Happening
Hello received, waiting for bidirectional
Packets ExchangedHello
2-Way
What's Happening
Bidirectional communication established
Packets ExchangedHello
ExStart
What's Happening
Master/slave negotiation
Packets Exchanged
Empty DBD (I, M, MS bits set)
Exchange
What's Happening
LSA summaries exchanged
Packets ExchangedDBD packets
Loading
What's HappeningMissing LSAs requested
Packets ExchangedLSR, LSU, LSAck
Full
What's HappeningLSDBs synchronized
Packets Exchanged
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)

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.

Get the OSPF cheat-sheet

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)

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:

  1. Topology with 4 routers on Ethernet showing which neighbors reach Full vs 2-Way
  2. show ip ospf neighbor output with annotations explaining State/Role
  3. debug ip ospf adj output showing state transitions
  4. Flowchart: Down → Init → 2-Way → ExStart → Exchange → Loading → Full

Internal Links:

Written by
More from Ping Labz
Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to Ping Labz.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.