OSPFv3 is defined in RFC 2740 and is the counterpart of OSPFv2, but is designed explicitly for the IPv6 routed protocol. The similarities shared by OSPFv2 and OSPFv3 are as follows:
- OSPFv3 continues to use the same packets that are also used by OSPFv2
- Neighbor discovery and the adjacency formation process are the same
- OSPFv3 still maintains RFC-compliant on different technologies
- Both OSPFv2 and OSPFv3 use the same LSA flooding and aging mechanisms
- Like OSPFv2, the OSPFv3 router ID still requires the use of a 32-bit IPv4 address
- The OSPFv3 Link ID is still based on a 32-bit IPv4 address like OSPFv2
While there are similarities between OSPFv2 and OSPFv3, it is important to understand that there are also some significant differences that you must be familiar with. These include:
- OSPFv3 uses the IPv6 link local not Global addresses to identify the OSPFv3 adjacencies
- OSPFv3 introduces two new OSPF LSA types which are Type 8 and Type 9 LSAs
- OSPFv3 messages are sent over (encapsulated in) IPv6 not IPv4 packets
- OSPFv3 uses standard IPv6 Multicast addresses FF02::5 and FF02::6
- OSPFv3 leverages the inbuilt capabilities of IPSec for security and authentication
The Options field in Hello and DBD packets include the R-bit and the V6-bit
The OSPFv3 Hello contains no address information, but includes an Interface ID
NOTE: Additional detailed information on these differences and similarities can be found in the current ROUTE guide which is available online.
For all intents and purposes, and barring configuration differences, the same methods used to troubleshoot OSPFv2 are applicable when troubleshooting OSPFv3 because the protocols operate in the same manner. When troubleshooting OSPFv2, Cisco IOS software OSPF commands begin with show ip ospf. In a similar manner, the OSPFv3 show commands begin with show ipv6 ospf. This command supports the following keywords:
| R1#show ipv6 ospf ? <1-65535> Process ID number border-routers Border and Boundary Router Information database Database summary flood-list Link state flood list interface Interface information neighbor Neighbor list request-list Link state request list retransmission-list Link state retransmission list summary-prefix Summary-prefix redistribution Information traffic OSPF traffic information virtual-links Virtual link information | Output modifiers <cr> |
NOTE: The majority of the supported keywords are described in greater detail in the ROUTE exam guide which is available online. Please refer to that guide for additional information on the keywords that are not described in this section. It should also be noted that keywords that are beyond the scope of ROUTE and TSHOOT are not discussed in either study guide.
A commonly used troubleshooting command is the show ipv6 ospf <process> command. This command can be used to verify router configuration, e.g. ABR and ASBR configuration, verify the areas configured as well as the types, e.g. Stub, NSSA. Additionally, you can use this command to determine the number of times the SPF algorithm has been run in certain areas, which is useful for troubleshooting issues such as link route flapping, for example. The output that follows shows the information that is provided by this command:
| R1#show ipv6 ospf Routing Process “ospfv3 1” with ID 1.1.1.1 It is an area border and autonomous system boundary router Redistributing External Routes from, rip rip SPF schedule delay 5 secs, Hold time between two SPFs 10 secs Minimum LSA interval 5 secs. Minimum LSA arrival 1 secs LSA group pacing timer 240 secs Interface flood pacing timer 33 msecs Retransmission pacing timer 66 msecs Number of external LSA 8. Checksum Sum 0x03D2E5 Number of areas in this router is 2. 2 normal 0 stub 0 nssa Reference bandwidth unit is 100 mbps Area BACKBONE(0) Number of interfaces in this area is 1 SPF algorithm executed 4 times Number of LSA 5. Checksum Sum 0x0309A8 Number of DCbitless LSA 0 Number of indication LSA 0 Number of DoNotAge LSA 0 Flood list length 0 Area 1 Number of interfaces in this area is 1 SPF algorithm executed 3 times Number of LSA 2. Checksum Sum 0x01412A Number of DCbitless LSA 0 Number of indication LSA 0 Number of DoNotAge LSA 0 Flood list length 0 |
From the output printed above, we can determine the RID of the local router as well as the local OSPF process. Additionally, we can also determine that the router is an ABR and ASBR, which is redistributing two different RIPng instances. By default, Cisco IOS will list the protocol name one for each instance that is redistributed into OSPF. For example, if the local router was redistributing three different RIPng instances, the word ‘rip’ listed under the redistribution column would be printed three times. Additionally, we can also determine the number of external LSAs as well as the default reference bandwidth. And finally, the different areas, the number of interfaces in those areas, and the number of times the SPF algorithm has been executed for each individual area is also included in the output that is printed by this command.
The border-routers keyword allows you to display internal OSPF routing table entries to an ABR and ASBR. As is the case with OSPFv2, this command is useful when troubleshooting connectivity issues to other areas in multi-area OSPF implementations because it can be used to confirm that the local router has a path to the ABR and ASBR (if applicable) as shown below:
| R1#show ipv6 ospf border-routersOSPFv3 Process 1 internal Routing TableCodes: i – Intra-area route, I – Inter-area routei 2.2.2.2 [1] via FE80::2222, FastEthernet0/0.22, ABR, Area 0, SPF 7 i 3.3.3.3 [1] via FE80::3333, FastEthernet0/0.33, ABR/ASBR, Area 0, SPF 8 |
In addition to verifying routes to ABR and ASBRs, the show ipv6 ospf border-routerscommand can also be used to determine if the SPF calculation is functional because it also includes the internal number of the SPF calculation that installed the route.
As is the case with OSPFv3, you can append the database keyword to view the contents of the LSDB. When viewing the OSPFv3 LSDB, keep in mind that this updated version of the OSPF routing protocol includes two new LSAs, which are Type 8 (Link LSA) and Type 9 (Intra-Area Prefix LSA). The Link-LSA provides the router’s Link-Local address and provides all the IPv6 prefixes attached to the link. There is one Link-LSA per link. There can be multiple Intra-Area-Prefix LSAs with different Link-State IDs. The Area flooding scope can therefore be an associated prefix with the transit network referencing a Network LSA or it an associated prefix with a router or stub referencing a Router LSA. Following is a sample of the OSPFv3 LSBD:
| R1#show ipv6 ospf databaseOSPFv3 Router with ID (1.1.1.1) (Process ID 1)Router Link States (Area 0)ADV Router Age Seq# Fragment ID Link count Bits 1.1.1.1 972 0x8000000D 0 1 EB 2.2.2.2 1940 0x8000000B 0 1 BNet Link States (Area 0) ADV Router Age Seq# Link ID Rtr count Inter Area Prefix Link States (Area 0) ADV Router Age Seq# Prefix Link (Type-8) Link States (Area 0) ADV Router Age Seq# Link ID Interface Router Link States (Area 1) ADV Router Age Seq# Fragment ID Link count Bits Inter Area Prefix Link States (Area 1) ADV Router Age Seq# Prefix Link (Type-8) Link States (Area 1) ADV Router Age Seq# Link ID Interface Type-5 AS External Link States ADV Router Age Seq# Prefix |
And finally, the show ipv6 ospf neighbor [detail] command is still a useful command when troubleshooting and verifying neighbor adjacencies. When using this command keep in mind that even though it is applicable to OSPFv3, the command output will include IPv4 router IDs, since these are also used by OSPFv3. Following is a sample output of the information that is printed by this command:
| R2#show ipv6 ospf neighbor detail Neighbor 1.1.1.1 In the area 0 via interface FastEthernet0/0 Neighbor: interface-id 9, link-local address FE80::20C:CEFF:FEA7:F3A0 Neighbor priority is 1, State is FULL, 6 state changes DR is 2.2.2.2 BDR is 1.1.1.1 Options is 0x000013 in Hello (V6-Bit E-Bit R-bit ) Options is 0x000013 in DBD (V6-Bit E-Bit R-bit ) Dead timer due in 00:00:34 Neighbor is up for 00:01:30 Index 1/1/1, retransmission queue length 0, number of retransmission 0 First 0x0(0)/0x0(0)/0x0(0) Next 0x0(0)/0x0(0)/0x0(0) Last retransmission scan length is 0, maximum is 0 Last retransmission scan time is 0 msec, maximum is 0 msec |
In addition to show commands, you can also the clear ipv6 ospf suite of commands to troubleshoot OSPFv3. The options that are available with this command are listed below:
| R1#clear ipv6 ospf ? <1-65535> Process ID number counters OSPF counters force-spf Run SPF for OSPF process process Reset OSPF process redistribution Clear OSPF route redistribution |
When using the clear ipv6 ospf suite of commands, you can specify the process number you want the relevant keyword applied to. This is useful when you are performing OSPFv3 troubleshooting on a router running multiple processes and do not want to impact any of the other processes running on the router.
The counters keyword clears state change counters for the OSPFv3 neighbor(s) on a specified interface, if one is specified in conjunction with this command, for the specified OSPFv3 neighbor, if the neighbor ID is included, or for all of the OSPFv3 neighbors. The example that follows illustrates how to first verify, clear or reset, and then verify again the state change counters for neighbors off a specified interface:
| R1#show ipv6 ospf neighbor fastethernet 0/0.22 detail Neighbor 2.2.2.2 In the area 0 via interface FastEthernet0/0.22 Neighbor: interface-id 4, link-local address FE80::2222 Neighbor priority is 1, State is FULL, 6 state changes DR is 2.2.2.2 BDR is 1.1.1.1 Options is 0x000013 in Hello (V6-Bit E-Bit R-bit ) Options is 0x000013 in DBD (V6-Bit E-Bit R-bit ) Dead timer due in 00:00:31 Neighbor is up for 00:01:38 Index 1/1/1, retransmission queue length 0, number of retransmission 3 First 0x0(0)/0x0(0)/0x0(0) Next 0x0(0)/0x0(0)/0x0(0) Last retransmission scan length is 5, maximum is 5 Last retransmission scan time is 0 msec, maximum is 0 msec R1# R1#clear ipv6 ospf counters neighbor fastethernet 0/0.22 R1# R1# show ipv6 ospf neighbor fastethernet 0/0.22 detail Neighbor 2.2.2.2 In the area 0 via interface FastEthernet0/0.22 Neighbor: interface-id 4, link-local address FE80::2222 Neighbor priority is 1, State is FULL, 0 state changes DR is 2.2.2.2 BDR is 1.1.1.1 Options is 0x000013 in Hello (V6-Bit E-Bit R-bit ) Options is 0x000013 in DBD (V6-Bit E-Bit R-bit ) Dead timer due in 00:00:38 Neighbor is up for 00:02:12 Index 1/1/1, retransmission queue length 0, number of retransmission 3 First 0x0(0)/0x0(0)/0x0(0) Next 0x0(0)/0x0(0)/0x0(0) Last retransmission scan length is 5, maximum is 5 Last retransmission scan time is 0 msec, maximum is 0 msec |
Clearing counters is useful when troubleshooting adjacency flaps as it provides some indication as to how frequently they are occurring. You can then correlate this information with other events, such as Syslog messages or periods of high CPU utilization for example, when you are troubleshooting OSPFv3 problems.
The force-spf keyword simply runs the SPF algorithm again. The main difference between theclear ipv6 ospf force-spf command and the clear ipv6 ospf process command is that theclear ipv6 ospf process command will restart the OSPF process, clear the OSPFv3 database, repopulate the database, and then run the SPF algorithm. This difference in operation can be validated by enabling OSPFv3 debugging and comparing the difference in output when either command is issued. The following output shows the events that occur when the clear ipv6 ospf force-spf command is issued on the router:
| R1#debug ipv6 ospf events OSPFv3 events debugging is on R1#debug ipv6 ospf spf OSPFv3 spf intra events debugging is on OSPFv3 spf inter events debugging is on OSPFv3 spf external events debugging is on R1#clear ipv6 ospf force-spf R1# *Oct 20 17:44:30.671: OSPFv3: running SPF for area 1, cause R N SN SA L *Oct 20 17:44:30.671: OSPFv3: Intra-Area SPF (Full), Area 1 *Oct 20 17:44:30.671: Router LSA 1.1.1.1/0, 0 links *Oct 20 17:44:30.671: OSPFv3: Process Prefix LSAs *Oct 20 17:44:30.671: OSPFv3: Check VLs *Oct 20 17:44:30.671: OSPFv3: running SPF for area 0, cause R N SN SA L *Oct 20 17:44:30.675: OSPFv3: Intra-Area SPF (Full), Area 0 *Oct 20 17:44:30.675: Router LSA 1.1.1.1/0, 1 links *Oct 20 17:44:30.675: Link 0, int 9, nbr 2.2.2.2, nbr int 4, type 2, cost 1 *Oct 20 17:44:30.675: Add better path, link 9/4, dist 1 *Oct 20 17:44:30.675: OSPFv3: putting LSA on the clist LSID 0.0.0.4, Type 0x2002, Adv Rtr. 2.2.2.2 *Oct 20 17:44:30.675: Add path FastEthernet0/0.22/::, distance 1[Truncated Output]*Oct 20 17:44:30.679: OSPFv3: Inter-Area SPF, Area 0 *Oct 20 17:44:30.683: IAP LSA 2.2.2.2/0, age 330, seq 0x80000005 (Area 0) *Oct 20 17:44:30.683: prefix FC00::10/128 *Oct 20 17:44:30.683: adding path FastEthernet0/0.22/FE80::2222 *Oct 20 17:44:30.683: IAP LSA 2.2.2.2/1, age 330, seq 0x80000005 (Area 0) *Oct 20 17:44:30.683: prefix FC00::20/128 *Oct 20 17:44:30.683: adding path FastEthernet0/0.22/FE80::2222 *Oct 20 17:44:30.683: IAP LSA 2.2.2.2/2, age 330, seq 0x80000005 (Area 0) *Oct 20 17:44:30.683: prefix FC00::30/128 *Oct 20 17:44:30.683: adding path FastEthernet0/0.22/FE80::2222 *Oct 20 17:44:30.683: Adding deferred prefixes, area 0 *Oct 20 17:44:30.683: prefix FC00::30/128 *Oct 20 17:44:30.687: send IAP FC00::30/128, metric 1 to area 1 *Oct 20 17:44:30.687: prefix FC00::20/128 *Oct 20 17:44:30.687: send IAP FC00::20/128, metric 1 to area 1 *Oct 20 17:44:30.687: prefix FC00::10/128 *Oct 20 17:44:30.687: send IAP FC00::10/128, metric 1 to area 1 *Oct 20 17:44:30.687: OSPFv3: External SPF Type 4005 *Oct 20 17:44:30.687: ASE LSA 2.2.2.2/0, age 330, seq 0x80000003, metric 20, type 2 *Oct 20 17:44:30.687: adding path FastEthernet0/0.22/FE80::2222 *Oct 20 17:44:30.687: ASE LSA 2.2.2.2/1, age 330, seq 0x80000003, metric 20, type 2 *Oct 20 17:44:30.687: adding path FastEthernet0/0.22/FE80::2222 *Oct 20 17:44:30.687: ASE LSA 2.2.2.2/2, age 330, seq 0x80000003, metric 20, type 2[Truncated Output] |
Using the same debugging commands, the following shows the impact of issuing the clear ipv6 ospf process command on the same router:
| R1#debug ipv6 ospf events OSPFv3 events debugging is on R1#debug ipv6 ospf spf OSPFv3 spf intra events debugging is on OSPFv3 spf inter events debugging is on OSPFv3 spf external events debugging is on R1#clear ipv6 ospf process Reset ALL OSPF processes? [no]: yes R1# *Oct 20 17:51:00.711: OSPFv3: Flushing External Links *Oct 20 17:51:00.711: Insert LSA 3 adv_rtr 1.1.1.1, type 0x4005 in maxage *Oct 20 17:51:00.711: Insert LSA 4 adv_rtr 1.1.1.1, type 0x4005 in maxage *Oct 20 17:51:00.715: Insert LSA 5 adv_rtr 1.1.1.1, type 0x4005 in maxage *Oct 20 17:51:00.715: Insert LSA 6 adv_rtr 1.1.1.1, type 0x4005 in maxage *Oct 20 17:51:00.715: Insert LSA 7 adv_rtr 1.1.1.1, type 0x4005 in maxage *Oct 20 17:51:00.787: OSPFv3: Flushing Link states in area 0 *Oct 20 17:51:00.787: Insert LSA 0 adv_rtr 1.1.1.1, type 0x2001 in maxage *Oct 20 17:51:00.787: Insert LSA 9 adv_rtr 1.1.1.1, type 0x8 in maxage[Truncated Output]*Oct 20 11:51:00.859 CST: %OSPFv3-5-ADJCHG: Process 1, Nbr 2.2.2.2 on FastEthernet0/0.22 from FULL to DOWN, Neighbor Down: Interface down or detached[Truncated Output]*Oct 20 17:51:00.951: OSPFv3: DR/BDR election on FastEthernet0/0.22 *Oct 20 17:51:00.951: OSPFv3: Elect BDR 1.1.1.1 *Oct 20 17:51:00.951: OSPFv3: Elect DR 2.2.2.2 [Truncated Output] *Oct 20 17:51:00.955: OSPFv3: running SPF for area 1, cause R N SN SA L *Oct 20 17:51:00.979: OSPFv3: Schedule partial SPF – 2.2.2.2/0 type 2003 |
In essence, the clear ipv6 ospf force-spf command has less impact on OSPFv3 than the clear ipv6 ospf process command because it starts the SPF algorithm without clearing the OSPF database. Clearing the database on a core router in the network can have a drastic impact on the network. For this reason, the clear ipv6 ospf process command should be used with caution. The same is also applicable to the clear ip ospf process command. Therefore, consider using the clear ip ospf force-spf command instead.
And finally, the redistribution keyword clears OSPFv3 redistribution. This is used when you are troubleshooting route redistribution into OSPF from other routing protocols. This command flushes and reinstalls all external LSAs; however, the when this command is issued, the SPF algorithm is not run again.
In conclusion, akin to using the debug ip ospf command to view real-time OSPFv2 events, you can use the debug ipv6 ospf command to view real-time OSPFv3 events. This command supports the same options as debug ip ospf the command. While additional OSPFv3-specific keywords, such as ipsec (for IPsec event debugging) are included, most of these options are similar to those used with OSPFv2 and perform the same function. The following shows the available options that can be included when you are debugging OSPFv3:
| R1#debug ipv6 ospf ? adj OSPF adjacency events database-timer OSPF database timer events OSPF events flood OSPF flooding hello OSPF hello events ipsec OSPF ipsec events lsa-generation OSPF lsa generation lsdb OSPF database modifications packet OSPF packets retransmission OSPF retransmission events spf OSPF spf |