Course contents

Module 5: PracticeLesson 5.3 (3 of 5 in this module)19 of 29 in the OSPF course

OSPF troubleshooting tickets

A route has disappeared. Which evidence tells you whether to check the link, the neighbour, the advertised network or the installed route? Work through eight separate faults before opening their diagnoses.

Intermediate · 20 min read

What does a healthy lab look like?

Every ticket uses the finished lab from the configuration lessons: R1, R2 and R3 in a line, point-to-point router links, passive LAN interfaces, a reference bandwidth of 10 000 Mbps (so each gigabit interface costs 10), and a default route from R1 to the ISP. Read the symptom and the output, decide on the cause and the fix, then open the diagnosis.

A method for every ticket
A method for every ticketWork from the neighbour table up to the routing table.Symptomwhat is wrongNeighboursshow ip ospf neighborDatabaseLSAs present?Routesinstalled?

On small screens, swipe sideways or focus the diagram and use the arrow keys.

Do not clear the process as a first step.

Use the completed single-area OSPF lab as the baseline. These are independent tickets, not eight changes to apply in order. All links are initially up, every required LAN has an installed connected route and there are no extra static routes to hide an OSPF fault. Use an isolated Cisco IOS or IOS XE lab; exact output formatting varies by release.

Neighbour means the OSPF router at the other end of a link. Full means the required database exchange completed; it does not prove every destination is advertised or installed. The router ID identifies the OSPF router. The neighbour Address field identifies its actual IP on that link. We compare both, rather than using a router ID as a presumed next hop.

What does a healthy lab look like?
What does a healthy lab look like?Router; Router ID; Transit and LAN interfaces. R1: 1.1.1.1 Gi0/1 10.0.12.1/30 to R2; Gi0/0 192.168.1.1/24 to LAN 1; Gi0/2 203.0.113.2/30 to ISP 203.0.113.1 R2: 2.2.2.2 Gi0/0 10.0.12.2/30 to R1; Gi0/1 10.0.23.1/30 to R3; Gi0/2 192.168.2.1/24 to LAN 2 R3: 3.3.3.3 Gi0/0 10.0.23.2/30 to R2; Gi0/1 192.168.3.1/24 to LAN 3RouterRouter IDTransit and LAN interfacesR11.1.1.1Gi0/1 10.0.12.1/30 to R2; Gi0/0192.168.1.1/24 to LAN 1; Gi0/2203.0.113.2/30 to ISP 203.0.113.1R22.2.2.2Gi0/0 10.0.12.2/30 to R1; Gi0/110.0.23.1/30 to R3; Gi0/2192.168.2.1/24 to LAN 2R33.3.3.3Gi0/0 10.0.23.2/30 to R2; Gi0/1192.168.3.1/24 to LAN 3

On small screens, swipe sideways or focus the diagram and use the arrow keys.

Read each row across: the left box names the item, the others describe it.

PC-1 is 192.168.1.10/24 with gateway 192.168.1.1. The destination server is 192.168.3.10/24 with gateway 192.168.3.1. A LAN reachability test uses those IP addresses. It does not require a website URL or DNS. The ISP cloud is an external next hop, not proof that the lab has public internet access.

Gi0/2Gi0/1 .1.2 Gi0/010.0.12.0/30Gi0/1 .1.2 Gi0/010.0.23.0/30Gi0/0Gi0/2Gi0/1ISPIP 203.0.113.1R1RID 1.1.1.1R2RID 2.2.2.2R3RID 3.3.3.3LAN 1Subnet 192.168.1.0/24LAN 2Subnet 192.168.2.0/24LAN 3Subnet 192.168.3.0/24

Device key: ISP (network / service) · R1, R2, R3 (router) · LAN 1, LAN 2, LAN 3 (network / site)

Lines show the example’s network connections. Thick links: uplinks/WAN, as labelled. Read the numbered steps for traffic direction and changes.

Reading the addresses

IP labels identify interfaces or destinations. Subnet labels identify networks; /n is the prefix length. A router ID (RID) identifies a routing process and need not be a reachable interface.

An IP address alone is not a URL. A web URL includes a scheme such as https://; an address on a router or printer does not imply a website.

  • ISP: IP 203.0.113.1
  • R1: RID 1.1.1.1
  • R2: RID 2.2.2.2
  • R3: RID 3.3.3.3
  • LAN 1: Subnet 192.168.1.0/24
  • LAN 2: Subnet 192.168.2.0/24
  • LAN 3: Subnet 192.168.3.0/24
  1. 1. Router links: 10.0.12.0/30 and 10.0.23.0/30, both ip ospf network point-to-point, area 0.
  2. 2. LANs: 192.168.1.0/24, 192.168.2.0/24 and 192.168.3.0/24, all passive.
  3. 3. Internet: R1 has a static default to 203.0.113.1 and default-information originate.
The healthy three-router baseline. Router-to-router links form neighbours; LANs are advertised passively; R1's ISP interface stays outside OSPF.

A symptom narrows the investigation; it does not automatically prove one cause. Avoid clearing the whole OSPF process as a first step. A restart can interrupt working neighbours and erase useful transient evidence without correcting the setting.

Ticket 1: nobody can reach the internet

Since a change on R1 last night, users on every LAN can reach each other but not the internet. R1 can ping 203.0.113.1.

Illustrative Cisco IOS output written for this ticket, not a router capture
R3#show ip route | include Gateway
Gateway of last resort is not set
Illustrative Cisco IOS output written for this ticket, not a router capture
R1#show running-config | include ip route|default-information
ip route 0.0.0.0 0.0.0.0 203.0.113.11
 default-information originate
Show diagnosis

The static default points at 203.0.113.11, a typo for 203.0.113.1. That address is not on R1's provider subnet (Gi0/2 is 203.0.113.2/30). In this baseline there is no other route that resolves the mistyped next hop, so the configured default is not installed. Confirm with show ip route 0.0.0.0 and show ip route 203.0.113.11. Without an installed default route of its own, R1 doesn't originate one into OSPF. Fix: no ip route 0.0.0.0 0.0.0.0 203.0.113.11 and ip route 0.0.0.0 0.0.0.0 203.0.113.1. R2 and R3 get O*E2 0.0.0.0/0 back after the OSPF update and route calculation. Adding always would advertise a default despite this missing exit; it would not repair the next-hop typo.

Verify R1's installed default via 203.0.113.1, then R3's O*E2 default via 10.0.23.1. The ping to the directly connected ISP address worked without a default route, so that successful ping did not disprove this fault. A real external service also needs provider return routing.

Ticket 2: R1 is cut off after security hardening

A security checklist was applied to R1. LAN 1 can no longer reach LAN 2 or LAN 3, and R2 has lost R1 as a neighbour.

Illustrative Cisco IOS output written for this ticket, not a router capture
R1#show ip protocols | begin Passive
  Passive Interface(s):
    GigabitEthernet0/0
    GigabitEthernet0/1
    GigabitEthernet0/2
  Routing Information Sources:
    Gateway         Distance      Last Update
Show diagnosis

The checklist added passive-interface default, which also made Gi0/1, the link to R2, passive. No hellos, no neighbour. Fix: under router ospf 1, no passive-interface GigabitEthernet0/1. Gi0/0 (LAN 1) should stay passive. Gi0/2 is not in OSPF anyway, so its passive setting does nothing.

The output names a specific blocked transit interface, so do not remove the whole passive policy. Compare R1's Gi0/1 OSPF settings with R2 Gi0/0, then verify R1 has one Full neighbour and R2 has two. Recheck the LAN routes and host test after the adjacency returns.

Ticket 3: R2 and R3 never finish

R3's Gi0/0 was reconfigured during a VPN test. Now R1 and R2 have no routes to LAN 3.

Illustrative Cisco IOS output written for this ticket, not a router capture
R3#show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   EXSTART/  -     00:00:33    10.0.23.1       GigabitEthernet0/0
Illustrative Cisco IOS output written for this ticket, not a router capture
R3#show ip interface GigabitEthernet0/0 | include MTU
  MTU is 1400 bytes
Illustrative Cisco IOS output written for this ticket, not a router capture
R2#show ip interface GigabitEthernet0/1 | include MTU
  MTU is 1500 bytes

What did the neighbour already achieve, and what does the second output add to your diagnosis? MTU is the maximum IP packet size supported on this interface. An OSPF database description (DBD) packet includes an interface MTU field used during database negotiation.

Show diagnosis

Hellos work (the neighbour exists), but the database exchange doesn't. R3's IP MTU is 1400 while R2's is 1500, so R3 rejects R2's DBDs, which announce the larger MTU. The routers can show EXSTART or EXCHANGE at different moments; do not expect one fixed state on each side.Fix: restore the lab's intended supported 1500-byte IP MTU. On R3, interface GigabitEthernet0/0, then no ip mtu, restores that baseline here because this lab has no other MTU-changing settings. Check the actual value afterwards. ip ospf mtu-ignore skips the OSPF field check; it does not make the data path support larger packets and is not the first repair for this accidental override.

EXSTART alone is not proof of an MTU mismatch; packet filtering, duplicate IDs and other negotiation problems can produce similar symptoms. Here the two measured MTUs support the diagnosis. After restoring the intended value, verify Full and the LAN 3 route. Where appropriate, test path packet sizes separately rather than treating a small successful ping as an MTU test.

Ticket 4: LAN 2 has disappeared

R2 was rebuilt from notes after a hardware swap. Its neighbours are Full, but R1 and R3 have no route to 192.168.2.0/24.

Illustrative Cisco IOS output written for this ticket, not a router capture
R2#show ip ospf interface brief
Interface    PID   Area            IP Address/Mask    Cost  State Nbrs F/C
Gi0/1        1     0               10.0.23.1/30       10    P2P   1/1
Gi0/0        1     0               10.0.12.2/30       10    P2P   1/1
Illustrative Cisco IOS output written for this ticket, not a router capture
R2#show running-config | section router ospf
router ospf 1
 router-id 2.2.2.2
 auto-cost reference-bandwidth 10000
 passive-interface GigabitEthernet0/2
 network 10.0.12.0 0.0.0.3 area 0
 network 10.0.23.0 0.0.0.3 area 0
 network 192.168.2.0 0.0.0.0 area 0
Show diagnosis

Gi0/2 is missing from the interface list, so OSPF isn't running on it at all. The statement network 192.168.2.0 0.0.0.0 area 0 only matches an interface whose address is exactly 192.168.2.0, and Gi0/2 is 192.168.2.1. The passive line doesn't enable anything by itself. Fix: no network 192.168.2.0 0.0.0.0 area 0, then network 192.168.2.0 0.0.0.255 area 0 (or network 192.168.2.1 0.0.0.0 area 0).

Keep passive-interface GigabitEthernet0/2. It prevents host-side neighbours; it does not cause the missing advertisement. After repairing the selection, Gi0/2 should appear in show ip ospf interface brief with no neighbours, and R1/R3 should install the LAN 2 /24. Confirm the LAN interface is up and connected before blaming the wildcard alone.

Ticket 5: the costs look wrong

Everything works, but an audit notices odd metrics on R3.

Illustrative Cisco IOS output written for this ticket, not a router capture
R3#show ip route ospf | include 192.168
O     192.168.1.0/24 [110/21] via 10.0.23.1, 01:12:40, GigabitEthernet0/0
O     192.168.2.0/24 [110/11] via 10.0.23.1, 01:12:40, GigabitEthernet0/0

The two metrics are both nine below the expected values. Does that prove a reference-bandwidth mismatch, or could an explicit interface cost produce the same symptom? Request the confirming check before opening the diagnosis.

Show diagnosis

With every router at 10 000 Mbps, each gigabit interface costs 10, so LAN 1 should be 30 (R3 Gi0/0 + R2 Gi0/0 + R1 Gi0/0) and LAN 2 should be 20. The totals are 9 lower on each route that passes R2: R2's relevant outgoing interfaces appear to cost 1 rather than 10. That fits a reference-bandwidth mismatch, but an explicit cost or a different configured interface bandwidth could do the same. Compare show ip ospf, show ip ospf interface and the interface configuration on R2. For this ticket, the confirming output is Reference bandwidth unit is 100 mbps, gigabit configured bandwidth and no explicit ip ospf cost. With 100 ÷ 1000 below 1, the calculated cost becomes the minimum of 1. Fix: auto-cost reference-bandwidth 10000 under R2's router ospf 1. In a network with more than one path, this mismatch would also change which paths are chosen.

Check all three routers use the intended reference and inspect their calculated interface costs. Afterwards, R3's LAN 1 and LAN 2 metrics should return to 30 and 20. In this line topology the next hop remains R2; changing a metric does not create a missing alternate path.

Ticket 6: Full neighbours, missing routes

A colleague tidied up the R2–R3 link. Both routers show each other as Full, yet R1 has no route to LAN 3.

Illustrative Cisco IOS output written for this ticket, not a router capture
R2#show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
3.3.3.3           0   FULL/DROTHER    00:00:36    10.0.23.2       GigabitEthernet0/1
1.1.1.1           0   FULL/  -        00:00:31    10.0.12.1       GigabitEthernet0/0
Illustrative Cisco IOS output written for this ticket, not a router capture
R3#show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   FULL/  -        00:00:38    10.0.23.1       GigabitEthernet0/0
Show diagnosis

R2 labels R3 DROTHER, a router that is neither the designated router nor its backup. That role is used on broadcast and non-broadcast multi-access OSPF networks, while R3 shows R2 with no role (-). R2's Gi0/1 has gone back to the broadcast type (the "tidy-up" removed ip ospf network point-to-point), while R3 is still point-to-point. The timers match, so they reach Full, but they describe the link differently in their link-state advertisements (LSAs), the records used to calculate routes. The mismatched descriptions can prevent usable topology links even with a Full adjacency. Confirm R2 reports Network Type BROADCAST and R3 reports Network Type POINT_TO_POINT in their interface output. Fix: put ip ospf network point-to-point back on R2 Gi0/1. Compare Network Type in show ip ospf interface on both ends.

Do not treat matching Hello timers as proof of matching network types. After the interface change, allow the adjacency to rebuild, confirm both ends report point-to-point and check R1's route to 192.168.3.0/24. This repair targets the inconsistent link description rather than hiding the symptom with a static route.

Ticket 7: a log message on R2

R1 was re-addressed this morning. R2 now logs this every 10 seconds, and LAN 1 is unreachable.

Illustrative Cisco IOS output written for this ticket, not a router capture
%OSPF-4-ERRRCV: Received invalid packet: mismatched area ID from 10.0.12.1, GigabitEthernet0/0
Show diagnosis

R1's Gi0/1 (10.0.12.1) is now in a different area from R2's Gi0/0 in area 0. Likely cause: R1 was given ip ospf 1 area 1 on Gi0/1, or a network statement with the wrong area. Interface configuration overrides network statements, so check both. Fix: put R1's Gi0/1 back in area 0 (ip ospf 1 area 0 on the interface, or correct the network statement).

The log identifies the sender 10.0.12.1 and R2's receiving interface Gi0/0. Trace that sender to R1 Gi0/1 in the baseline table. Compare show ip ospf interface brief and the interface configuration on both routers. The OSPF process number is local and does not need to match, but the area on this shared link does. Verify the area-0 neighbour returns and LAN 1 is learned again.

Ticket 8: an unknown neighbour

Some traffic from LAN 1 to LAN 3 is going missing. R2's neighbour table has an extra entry.

Illustrative Cisco IOS output written for this ticket, not a router capture
R2#show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
10.10.10.10       1   FULL/DR         00:00:35    192.168.2.50    GigabitEthernet0/2
3.3.3.3           0   FULL/  -        00:00:37    10.0.23.2       GigabitEthernet0/1
1.1.1.1           0   FULL/  -        00:00:33    10.0.12.1       GigabitEthernet0/0
Illustrative Cisco IOS output written for this ticket, not a router capture
R2#show ip route 192.168.3.10
Routing entry for 192.168.3.0/25
  Known via "ospf 1", distance 110, metric 20, type extern 2
  Last update from 192.168.2.50 on GigabitEthernet0/2
  Routing Descriptor Blocks:
  * 192.168.2.50, from 10.10.10.10, via GigabitEthernet0/2

The expected server route was the LAN 3 /24 through R3. What is different about the selected /25, and why does it win for this destination? Consider prefix length before comparing metrics.

Show diagnosis

A device on LAN 2 (192.168.2.50, router ID 10.10.10.10) has become an unexpected OSPF neighbour. The neighbour table alone does not prove it caused the packet loss. The second output adds that evidence: R2 is selecting an external /25 through that device for the server address. A /25 is more specific than the legitimate /24, so longest-prefix matching sends matching traffic to the unexpected neighbour regardless of the /24's metric. In this baseline Gi0/2 should have no OSPF neighbours; its Full neighbour proves Gi0/2 is no longer passive. Fix: passive-interface GigabitEthernet0/2 under router ospf 1, then find the device. Inspect and identify the device rather than assuming it is a particular VM or server. Supported OSPF authentication on authorised router links adds another control, but does not replace the passive LAN policy or prove that an authenticated router's advertisements are correct.

After the neighbour is removed, confirm the unexpected /25 disappears, the legitimate /24 via R3 is selected for 192.168.3.10 and the host test recovers. Record the advertising router ID and investigate why the configuration changed. Do not reproduce this ticket by attaching an unknown router to a live LAN.

Close the ticket with a repeatable check

For each repair, write what changed and rerun the exact command that exposed the fault. Then verify the affected destination and its return path. A Full neighbour, an installed route and a successful application are different milestones; record the one you actually tested.

show ip interface brief show ip ospf neighbor show ip ospf interface brief show ip route 192.168.3.10

Healthy-baseline review on the affected router. Read link state, expected neighbours, interface selection and the selected destination route in that order; each command answers a different question.

Technical references: OSPFv2, RFC 2328, Cisco EXSTART/EXCHANGE troubleshooting and Cisco OSPF route-database troubleshooting. These are authored lab tickets, not captures from a tested router image.