OSPFv3 for IPv6
Build an IPv6 adjacency with link-local addresses, advertise global IPv6 prefixes, and prove each result with the neighbor table, LSDB, and routing table.
OSPFv3 at a Glance
OSPFv3 keeps the link-state ideas you know from OSPFv2: areas, neighbors, DR/BDR elections, cost, SPF, and an LSDB. The main change is how the protocol works with IPv6 links and prefixes.
In This Lesson
- Read the IPv6 Lab Topology
- Compare OSPFv2 and OSPFv3
- Understand Link-Local Addresses and Router IDs
- Configure the Baseline Adjacency
- Follow Neighbor and Packet Behavior
- Understand OSPFv3 LSAs and Prefixes
- Verify the Complete Routing Path
- Troubleshoot Common Failures
- Complete the Guided Practice Lab
- Review Frequently Asked Questions
1. Read the IPv6 Lab Topology
R1 and R2 share one Ethernet link in Area 0. Each router also has a loopback prefix. The shared link forms the adjacency; the loopbacks prove that IPv6 routes are exchanged.
Lo0 · 2001:db8:1::1/128G0/0 · FE80::1Lo0 · 2001:db8:2::2/128G0/0 · FE80::22001:db8::/32, which is reserved for examples. Replace it with your assigned IPv6 space in a real network.2. Compare OSPFv2 and OSPFv3
| Topic | OSPFv2 | OSPFv3 for IPv6 |
|---|---|---|
| Primary use in this lesson | IPv4 routing | IPv6 routing |
| Neighbor addressing | IPv4 interface addresses | IPv6 link-local addresses |
| Activation | Often uses network statements | Classic IOS commonly enables it on each interface |
| Router ID | 32-bit dotted decimal | Still 32-bit dotted decimal |
| All-router multicast | 224.0.0.5 | FF02::5 |
| DR/BDR multicast | 224.0.0.6 | FF02::6 |
| Protocol number | 89 | 89 |
OSPFv3 runs per link rather than being tied to an IPv6 subnet. This lets neighbors form with link-local addresses even before a global unicast prefix is configured on that link.
3. Understand Link-Local Addresses and Router IDs
Link-local address
Starts with FE80::/10, stays on one link, and is used as the OSPFv3 neighbor source and route next hop.
OSPF router ID
A unique 32-bit value such as 1.1.1.1. It is not an IPv6 address and does not need to be reachable.
Global IPv6 prefix
A routable prefix such as 2001:db8:1::1/128. OSPFv3 advertises it so remote routers can reach it.
- Make every router ID unique. A duplicate can break adjacency or cause unstable LSDB behavior.
- Link-local scope matters. The same link-local value may appear on different links, so commands also show the outgoing interface.
- Global addressing is separate. Neighbors may reach Full while a missing or incorrect global prefix still prevents end-to-end traffic.
4. Configure the Baseline Adjacency
Enable IPv6 forwarding, create a unique OSPFv3 process identity, and activate the process on the correct interfaces.
R1 configuration
ipv6 unicast-routing
!
ipv6 router ospf 1
router-id 1.1.1.1
!
interface GigabitEthernet0/0
ipv6 address FE80::1 link-local
ipv6 address 2001:db8:12::1/64
ipv6 ospf 1 area 0
no shutdown
!
interface Loopback0
ipv6 address 2001:db8:1::1/128
ipv6 ospf 1 area 0R2 configuration
ipv6 unicast-routing
!
ipv6 router ospf 1
router-id 2.2.2.2
!
interface GigabitEthernet0/0
ipv6 address FE80::2 link-local
ipv6 address 2001:db8:12::2/64
ipv6 ospf 1 area 0
no shutdown
!
interface Loopback0
ipv6 address 2001:db8:2::2/128
ipv6 ospf 1 area 05. Follow Neighbor and Packet Behavior
OSPFv3 uses the same five packet roles and familiar neighbor states as OSPFv2. The packets travel over IPv6 and use link-local scope on the local link.
Hello
Routers discover each other on FF02::5 and check area, timers, options, and network behavior.
DBD
Neighbors summarize the LSAs they already hold during ExStart and Exchange.
LSR
Each router requests a complete copy of a missing or newer LSA.
LSU
The requested LSAs arrive in Link-State Update packets.
LSAck
Acknowledgments make flooding reliable and help the neighbors stay synchronized.
The normal journey is Down → Init → 2-Way → ExStart → Exchange → Loading → Full. Broadcast networks still use DR and BDR roles; point-to-point links do not.
6. Understand OSPFv3 LSAs and Prefixes
OSPFv3 separates topology information from much of the IPv6 prefix information. This is different from OSPFv2, where key IPv4 addressing details are carried directly in Router and Network LSAs.
| OSPFv3 LSA | Simple purpose | Scope |
|---|---|---|
| Router LSA | Describes router links and topology | Area |
| Network LSA | Describes routers attached to a transit network | Area |
| Inter-Area Prefix LSA | Advertises IPv6 prefixes between areas | Area |
| AS-External LSA | Advertises redistributed IPv6 routes | OSPF domain |
| Link LSA | Shares link-local address and prefixes on one link | Link |
| Intra-Area Prefix LSA | Associates IPv6 prefixes with local topology | Area |
7. Verify the Complete Routing Path
Verify in layers: IPv6 interface, link-local reachability, OSPFv3 neighbor, LSDB, route table, and final ping.
Check IPv6 interfaces
R1# show ipv6 interface brief
GigabitEthernet0/0 [up/up]
FE80::1
2001:DB8:12::1
Loopback0 [up/up]
2001:DB8:1::1Check the neighbor
R1# show ipv6 ospf neighbor
Neighbor ID Pri State Dead Time Interface ID Interface
2.2.2.2 1 FULL/DR 00:00:36 3 Gi0/0Check the learned route
R1# show ipv6 route ospf
O 2001:DB8:2::2/128 [110/1]
via FE80::2, GigabitEthernet0/0Test the destination
R1# ping ipv6 2001:db8:2::2 source loopback0
Type escape sequence to abort.
Success rate is 100 percent (5/5)ping ipv6 FE80::2 source GigabitEthernet0/0proves link-local reachability.show ipv6 ospf interfaceproves area, timers, cost, network type, and process activation.show ipv6 ospf databaseproves the prefix reached the LSDB.show ipv6 route ospfproves the best OSPFv3 route reached the routing table.
8. Troubleshoot Common Failures
Separate neighbor problems from prefix and forwarding problems. A Full neighbor proves database synchronization; it does not prove every IPv6 address or route is correct.
| Symptom | Likely cause | Check first |
|---|---|---|
| No OSPFv3 process or routes | IPv6 forwarding or process activation missing | show running-config | section ipv6 |
| No neighbor entry | Wrong interface/area, passive interface, link failure, or blocked FF02::5/protocol 89 | Interface status and show ipv6 ospf interface |
| Neighbor stuck in Init | One-way Hello communication | ACLs, multicast, and return direction |
| Neighbor stuck in ExStart/Exchange | MTU mismatch, duplicate router ID, or packet loss | MTU and router ID on both routers |
| Neighbor Full, prefix missing from LSDB | OSPFv3 not enabled on source interface or interface is passive as designed | Source-interface OSPFv3 configuration |
| Route uses FE80:: next hop | Normal OSPFv3 behavior | Confirm the displayed outgoing interface |
| Route exists but ping fails | Return route, ACL, source address, or host policy | Forward and return IPv6 paths |
9. Guided Practice Lab
Save a healthy baseline before each change. Introduce one fault, use evidence to find it, and restore the baseline.
Task 1: Build and Prove OSPFv3
- Configure the topology exactly as shown.
- Verify both link-local addresses.
- Confirm the neighbor reaches Full.
- Find the remote loopback in the LSDB and route table.
- Ping the remote loopback from the local loopback.
Expected result: You can trace one IPv6 prefix from interface configuration to successful forwarding.
Task 2: Prove Link-Local Behavior
- Record the neighbor's router ID and next-hop address.
- Remove the global /64 from the shared link only.
- Keep link-local addresses and OSPFv3 enabled.
- Check whether the adjacency remains Full.
- Restore the global /64 and test traffic again.
Expected result: You explain why adjacency can survive without a global address on the transit link.
Task 3: Diagnose Two Safe Faults
- Move R2's G0/0 into Area 1 and capture the result.
- Restore Area 0 and prove recovery.
- Create a duplicate router ID in an isolated lab.
- Capture logs and neighbor behavior.
- Restore a unique ID and verify route stability.
Expected result: You diagnose area and identity problems without random configuration changes.
10. Frequently Asked Questions
Does OSPFv3 still need a router ID?
Yes. It uses a unique 32-bit value written in dotted-decimal format. Configure it manually even when the router has no IPv4 addresses.
Can OSPFv3 neighbors form without global IPv6 addresses?
Yes. OSPFv3 normally forms the relationship with link-local addresses. You still need appropriate global prefixes for global IPv6 forwarding.
Where is OSPFv3 enabled on Cisco IOS?
With classic IOS syntax, create the global process and use ipv6 ospf 1 area 0 on each participating interface. Some newer platforms also offer an address-family model.
Why does an OSPFv3 route show a link-local next hop?
This is normal. OSPFv3 communicates with its neighbor through the link-local address, and the route also identifies the outgoing interface for that link.
Which multicast addresses does OSPFv3 use?
It uses FF02::5 for all OSPF routers and FF02::6 for DR/BDR communication. Both have link-local scope.