Troubleshooting IPv6 OSPFv3 Neighbor Adjacencies

This topic is to discuss the following lesson:

I found something really cool. I dont see it mentioned here so I will bring it up as it may help others especially if they are testing.

when you use the “Show ipv6 ospf” command it gives some important information.

  1. if your expecting an Area to be shown such as Area 0, Area 1, ect… it will show all the areas that the router sees. This is important as you can check your areas, and if one is missing BAM! Your well on your way to finding your issue and to eliminating other non issues. Obviously this is important tool in the use of this command.

  2. The one I figured out on my own lol… When you use the command “Show Ipv6 ospf” command it will also tell you the number of interfaces in the areas… We could also use the trouble shooting technique of scanning the configuration and that is a really helpful tool but if you can narrow it down for an area your looking at such as OSPF or EIGRP well that is going to save a lot of time especially if the router config is a monster. I found out by playing with the commands and then drilling into each one and analyzing them that loop back addresses are counted as interfaces!

For example, say you have three interfaces on a router in Area 1. you could go through the running config and get mentally dulled trying to check the entire config. Or you could run that command and check and see if you have three interfaces in that area.

If they do then you know you configured OSPF on them and its one less thing you have to worry about and you can find out fast.

You could then pair that with the “show ipv6 ospf interface” command which you can cross reference to your topology to double check if you need.

My main technique for prepping for the Tshoot test is ping. I read the question then apply two techniques in unison.

  1. Top Down approach until I cannot go any further.
  2. Bottom up approach until I cannot go any further.
  3. I write down the device that I cannot reach for example if working IPV6 I would work from DWS1 towards R1 and from R1 I would work towards DWS1. Doing this I can get the issue narrowed down to two devices. (remember Cisco gives us the typologies for the test so we can study them)
  4. I was previously checking configs then with a few commands and using the technique of “spotting the difference”. This works and you will find the issue if you understand all the routing and switching protocols from CCNP. (check out this web page if your not familiar with the techniques: https://networklessons.com/cisco/ccnp-tshoot/troubleshoot-networks/ )

This was slow though and as I am reviewing and getting better and better with the protocols I started combing with more understanding and less “spotting the difference” using it more of a reminder when stuck than anything.

  1. Now I have started to transition past this as I was not happy with it and now I am starting to break every down and starting to use more and more of the different show commands making sure to try and memorize the commands as well in case the question mark does not work on the test. I am noticing its more exciting using these commands and as I get familiar its also faster. I can knock my time down to a quarter or eighth of the time that it takes using the spot the difference and search show run.

Anyway I have a lot more to learn and go but I got really excited about seeing a couple things in regards to OSPFv3 so figured I would share in case it helps others!

I have found alot more information in regards to just OSPFv3 but I think I have to leave something to the imagination as a big part of learning is also exploring and that helps to cement things into your memory. I have about six commands specific to OSPv6 that I wrote down and started using. A few of the commands show similar things.

Also I use simulators, Tons of GNS3 Labs that I build off the typologies and lesson from this website. They say lab…lab… lab… well with the Tshoot I think that is where its really going to pay off tons of live actual experience trouble shooting and building and tearing down labs.

Hey Brian

Thanks so much for sharing these experiences with us! They can be very helpful, especially for those that are preparing for the same exam as you are!

Keep at it!

Laz

Hello team,

There’s a tiny typo at the beginning of the lesson. In the sentense below “OSPFv3 for IPv4” means OSPFv2:

Thanks

Thank you Boris, just fixed this.

Rene

Hello Rene,
I have made up a simple ipv6 lab. I have two routers with link-local addresses and they are up/up. Surprisingly, I can not ping the link-local of the other router, it says the output interface required. Is there a way i should specify this ?

R1#ping ipv6  FE80::A8BB:CCFF:FE00:2800
Output Interface:
% Interface required

Hello Eugene

This is one of the interesting things about IPv6 that we haven’t encountered using IPv4. Remember that a link-local address is unique per network segment. This means that on a router, you can have the same link-local address on all of your interfaces! This also means that the destination IPv6 link-local address you are trying to ping may be on any of the network segments the router is connected to. Link-local addresses of other network devices don’t appear in the routing table and are never learned, so a router will not know to which interface such a ping should be sent. For this reason, if you ping an IPv6 link-local address, you must tell the device out of which interface the ping should be sent.

If you ping any link-local address, it will prompt you for the interface, as you showed in your post. I logged in and tried it myself and it shows the following:

R2#ping ipv6 FE80::1 
Output Interface: ? 
% Invalid interface. Use full interface name without spaces (e.g. Serial0/1)
Output Interface: 

My output is a little different than yours due to a different IOS. Mine indicates the required syntax as well, and it prompts me again for the interface. Here are the results when I add the interface:

Output Interface: GigabitEthernet0/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::1, timeout is 2 seconds:
Packet sent with a source address of FE80::5054:FF:FE05:409%GigabitEthernet0/0
.....
Success rate is 0 percent (0/5)
R2#

Of course, I don’t have another IPv6 host connected here so I have no response, but you can see that it accepts the input of the interface and sends the ping.

I hope this has been helpful!

Laz

If you manually add a global unique address to an interface, why do you need a link local? What does a link local do?

Hello Jimmy

A link-local address is always assigned to an IPv6 interface by the very design of IPv6. The purpose of the link-local address is so that an IPv6 host (PC, router interface, IP camera, TV, mobile phone, etc) can obtain network connectivity without any configuration needed. Processes such as Network Discovery Protocol (NDP) which enable such connectivity rely on the link-local address for this purpose.

For routers, the link-local address is the only IPv6 address that is necessary on an interface. The next-hop IP address provided in the IPv6 routing table is almost always the link-local address (along with the exit interface), even though the unique global address can also be used for this purpose. IPv6 Routing protocols such as OSPFv3 and EIGRP and others, use the link-local addresses to exchange information and create neighbor adjacencies.

You can find out more about the link-local address as well as the processes that require it to function at the following lessons:



I hope this has been helpful!

Laz

First part makes sense; it comes up automatically so we can get a bona-fide IPv6 (data carrying) IP address. Second part is odd; why have the next hop always be link-local, since it can’t carry traffic and can’t extend that path beyond the neighbor? Shouldn’t the IP routing table show you what to use to route mission data? Thanks.

Hello Jimmy

For IPv6, by default, Cisco routers will use a combination of the link-local address and the exit interface to indicate the next hop for a particular route. Take a look at this IPv6 routing table which shows the next hop and exit interface learned via OSPF for the 2001::1/128 address:

R2#show ipv6 route ospf 
IPv6 Routing Table - 3 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route, M - MIPv6
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       D - EIGRP, EX - EIGRP external
O   2001::1/128 [110/10]
     via FE80::C00E:1AFF:FEA7:0, FastEthernet0/0

Because the next hop IP is something that is only locally significant, it doesn’t have to be a global unicast address. It’s just an indication of which router should be the next one to take this packet and get it to its destination. Once the packet reaches that next router, its routing table will be used to determine the next hop, and so on… Only the destination IPv6 address and the prefixes found within the routing table must be globally unique, and should thus use global unicast addresses.

In fact, you can have a whole network of IPv6 routers running a routing protocol like OSPFv3 without configuring a single interface with a global unicast address, and they would still be able to successfully route traffic!

Take a look at the following lessons to familiarize yourself with IPv6 routing.


I hope this has been helpful!

Laz