How to configure IPv6 OSPFv3 on Cisco IOS Router

Also, please show how to assign a unique local address?


You can configure it like this:

interface fa0/0
ipv6 address FE80::1 link-local

Just make sure it starts with FE80 and don’t forget “link-local” at the end.

Hi AD,

Link-local addresses are only used on the local link. These addresses are not routable and used only for things like neighbor discovery or to establish OSPF / EIGRP neighbor adjacencies and such.

The idea behind IPv6 is that every device connected to the Internet should have a global unicast address. NAT/PAT for IPv4 were only “tricks” to get around the lack of available IPv4 addresses.

On your own networks, you could use the unique local addresses in the fc00::/7 range. These are equal to IPv4 private range addresses.


1 Like

can you make a topic on how to read the opsv3 database? for example, in the following output:
Net Link States (Area 0)

ADV Router Age      Seq#                  Link ID    Rtr count             305      0x80000002   8                 2

what is link id 8 referring to? is there a mapping to the link ip address?

Hi Mario,

I will cover this in another lesson, OSPFv3 has some differences compared to OSPFv2.

One of them is that each router will assign each interface a unique interface ID. This interface ID can be found in some packets like the hello packet, link-local SA and router LSA.

This interface ID is also used as the link ID which you can see in the OSPF database.


So we use an IPV4 Address for the Router-ID for IPV6 OSPF and EIGRP?
Can you not use an IPV6 address for this?

You are correct. OSPF and EIGRP will only accept 32-bit numbers in an ipv4 address form as router-ids. Furthermore, they will only accept decimal numbers–trying to use A-F as Hex characters will be rejected. Below is the output will you see for the IOS accepted format for both OSPF and EIGRP router-ids for IPv6:


R1(config-rtr)#router-id ?
  A.B.C.D  OSPF router-id in IP address format


R1(config-rtr)#eigrp router-id ?
  A.B.C.D  EIGRP Router-ID in IP address format


How to config with many area .could you pls exam. thanks a lots

Hi Ho H,

It’s the exact same thing, just use different area numbers and that’s it.


I am getting this error at both router.

Process OSPFv3-1-IPv6 could not pick a router-id, please configure manually

Kindly suggest.

Hello Sanjiv.

In order to clarify why you’re getting the error, first let’s look back on how a router chooses its router ID. A router ID is always in the format of an IPv4 address. The router ID is chosen in the following order:

  1. If a router ID is configured in the ospf configuration, this is used as the router ID.
  2. If no router ID is configured, then it uses the highest IP address of a loopback interface
  3. If no loopback interface exists, it will use the highest IP address of any physical interface in the “up” state.

Now if you’re using IPv4, then one of the above will be configured so you will NEVER get the above error message. If you’re using ONLY IPV6, you may have NONE of the above configured. So if that is the case, you get the error message that you observed in your configuration.

To solve the problem, define a router ID using one of the above three entities. It is always best practice however, whether you use IPv4 or IPv6, to define a router ID in the ospf configuration. This will allow you to more easily identify routers in neighbor tables when troubleshooting and when changing configurations.

I hope this has been helpful!


Can I ask what is the difference between the following 2 commands?

“ospfv3 1 ipv6 area 0”
“ipv6 ospf 1 area 0”

I just tried this and it shows up differently under the running config:

interface Ethernet0/0
no ip address
ipv6 enable
ospfv3 1 ipv6 area 0
interface Ethernet0/1
no ip address
ipv6 enable
ipv6 ospf 1 area 0

Hello Chris,

Good question, this can be confusing. Originally, OSPFv3 was created only for IPv6:

Later, OSPFv3 was updated to support address-families:

This means you can run it for IPv6 and IPv4 (and some other address families like multicast).

The “ipv6 ospf” commands are the “old” commands and the “ospfv3” commands are the newer commands.

If you use “ipv6 ospf” on an interface and later use “ospfv3” then you’ll see that the “ipv6 ospf” command will disappear.

“ipv6 router ospf” is the old way to start an IPv6 OSPF process. “router ospfv3” is the new way to start OSPFv3 with address family support.

Hope this helps!


1 Like

Thanks for that, very helpful!

something which is mentioned in other lessons but is still kind of cool to see is how OSPF uses the Link Local for all the management type data its sending…

Since I am studying for the Tshoot I am trying to lab up the majority of the topics that is covered for the exam. So I am building a ton of GNS3 labs.

I would say that really be familiar in how IPV6 OSPF is setup for example being able to identify if something was missing from the show running configuration could be paramount to passing.


My topology just mirrors this lesson in this case its simply but effective! Great lesson easy to ingest and understand


wire shark was cool understood all of it but the ca: reply form loop not sure exactly what that is but know it has to do with loop back speaking. (Edited that was the MAC address)

1 Like

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