How to configure IPv6 OSPFv3 on Cisco IOS Router

I am a little confused with the set up of this lab, specially coming from ipv4 ospf. the loopbacks have the same mask?? I know ospf considers loopbacks as hosts, but i am confused by not having to set up a global ip on interface fa0/0, on both routers. Can someone please clarify?

Hello Martha

When transitioning from IPv4 to IPv6 it’s necessary to reevaluate certain issues. It’s all part of the process! Remember that routing protocols in IPv6 use the link-local addresses to exchange information. The link-local address is automatically assigned to each IPv6 enabled interface and communication between connected IPv6 devices is automatically established using these addresses. For more info on the link-local address, take a look at this lesson:

So since connectivity is established, OSPFv6 messages can be exchanged between the routers. You’ll notice that after IPv6 is enabled on the Ethernet interfaces, in the output of the show ipv6 interface brief command on each router, you see that these routers have an IP address starting with FE80 assigned to them, even though no config was applied.

As for the subnet mask or the prefix of the loopback addresses, the prefix used here is analogous to using the /32 prefix in IPv4. So you can have one loopback be assigned and the loopback on the other router be assigned The /128 mask simply states that the IP address belongs to a range that contains only one address: itself.

I hope this has been helpful!


1 Like

I’ve found a question about OSPFv3 - “What statement about configuring OSPFv3 is true?”
There answers are:

  1. the OSPFv3 routing process must be explicitly configured and enabled;
  2. OSPFv3 interfaces must be explicitly configured and enabled.
    As for me the best answer is 2, but some men suppose the right answer is 1. Can someone please clarify?

Hello Boris

The correct answer is indeed number 2. This is because in OSPFv3, a routing process does not need to be explicitly created. By enabling OSPFv3 on an interface, you will cause a routing process and its associated configuration to be created automatically. The key word in the question is “explicitly”.

An OSPFv3 routing process MUST be enabled in order for it to function, but it doesn’t EXPLICITLY have to be configured, since this is automatically done if you simply enable it on an interface.

This is verified at the following Cisco documentation:

I hope this has been helpful!


1 Like

Hello Laz.
Thanks a lot

1 Like

Hi team,

If multiple ospfv3 areas are configured, I would imagine that you can use the link local addresses for the neighbour discovery and for passing route information within the specific area.

However, when multiple areas are used including transit areas (for areas not directly connected to area 0) the use of Global Unicast addresses would be needed?

I created a topology with a virtual link going through a transit area and my remote area (not connected to backbone) received the prefix from area 0 via OSPFv3, however, it couldn’t not ping the prefix and I was only using link local addresses at the time. Once I created IPV6 addresses between the routers, the ping then worked.

If you could assist with this that would be great! :slight_smile:



Hello Andrew

This is a very interesting issue that you have found, as far as the differences in how OSPFv2 and OSPFv3 behave. If you have an OSPF topology with multiple areas, where all non-backbone areas are directly connected to area 0, you can use only link local addresses between the OSPF routers themselves. However, according to the OSPF for IPv6 RFC 5340:

The IPv6 interface address of a virtual link MUST be an IPv6
address having global scope, instead of the link-local addresses
used by other interface types. This address is used as the IPv6
source for OSPF protocol packets sent over the virtual link.

So the IPv6 address used to create the virtual link must “have a global scope” or in other words, must be global unicast addresses. Specifically, the two routers between which the virtual link is created, whose interfaces are in the same transit area, must have global unicast addresses configured on those interfaces in order for the virtual link to operate.

You can see an example of a virtual link being created using OSPFv3 at the following Cisco documentation:

I hope this has been helpful!


1 Like

Hi Laz,

Thank you for your reply – This is much appreciated!

This is clear to me now.

Kindest Regards,


1 Like

Hi Rene/Laz

  • Am I right in thinking the purpose of the ipv6 enable command is purely to activate the link local address on an interface?
  • I notice we don’t apply this command to the loopback interfaces in this lesson yet they still acquire a link local address. Is the LL address automatically active on a loopback interface?


Hello Philip

Yes you are correct. If you only enable IPv6 on an interface, it will be able to send and receive IPv6 packets, and it will automatically obtain a link local address on the interface.

The reason we don’t use this command in that particular case is because we’ve configured an IPv6 global unicast address on the loopback. When an interface is explicitly configured with an IPv6 address, it automatically becomes IPv6 enabled, and there is no need to issue the ipv6 enable command. Interestingly, if you issue the no ipv6 enable command on an interface with a configured IPv6 address, the command would be ignored. Notice that the interface also obtains a link local address as well. This behaviour is the same regardless of whether the interface is a looback or a physical interface.

I hope this has been helpful!


1 Like

Hey guys, great article :slight_smile:

I setup 3x fresh routers using the instructions in the article and everything works great.

However I ran into a weird issue when setting up OSPFv3 (still following these instructions) on a network of routers already configured with IPv4 and OSPFv2. The OSPFv3 neighbours are established ok, but when I go to ping the Global Unicast address on the Loopback interface from another router, I get this error:

% Unrecognized host or address or protocol not running.

I’ve checked over the router configs and compared them to the working set of routers, and can’t see anything I’ve missed on the IPv6 side of things. I assume the issue must be to do with the fact that IPv4 is setup on the network and/or it’s already running OSPFv2? (As the working set of routers is IPv6 only). In that case would there be some more configuration required to get everything working in “dual stack” or something?

Thanks for your help!

Hello Louis

This error message usually occurs when you haven’t enabled routing. If you’re pinging an IPv6 address, you have to ensure that you’ve enabled IPv6 unicast routing using the command:

R2(config)#ipv6 unicast-routing

Because IPv4 routing is enabled by default on Cisco routers, this is a step that we often forget for IPv6. Take a look and see if that is your issue. If not, let us know more about your problem so we can try to help further.

I hope this has been helpful!