Stateless autoconfiguration for IPv6

Ok - that makes sense - thanks Laz.

So if you enabled SLAAC this process would automatically configure the /64 network bits of all the Global Unicast addresses on your subnet?

Does this mean you would still end up with EUI-64 addresses as the second 64 host bits of the Global Unicast address?

Would this make the admin a little bit more complicated as the host bits wouldn’t follow a set pattern as an ipv4 administered network where you could allocate sequentially numbered hosts?

Hello Gareth

Yes. The network portion of the address is determined by the SLAAC-enabled router on the subnet. In the lesson you can see that R2 sent information to R1 that told it to use the same prefix as its own:

R2# 
ICMPv6-ND: Sending RA to FF02::1 on FastEthernet0/0
ICMPv6-ND:     MTU = 1500
ICMPv6-ND:     prefix = 2001:1234::/64 onlink autoconfig

The method by which the host bits are determined depends once again on the vendor. Typically, this is determined using the EUI-64 method (so you will see that the host bits are the same as those on the link local address on a Cisco device), but some hosts use other methods such as Microsoft, for these bits. More information on the specific method for determining these bits used by Microsoft and others can be found at RFC4941.

As an administrator, how IPv6 allocates the network bits of the hosts in a subnet wouldn’t bother me very much. Because this whole process of SLAAC automates much of the administration process, I would be less concerned about how the allocation is achieved. The benefits here are: configure the local router, configure hosts to use SLAAC and that’s it. No DHCP parameters, scopes, options or anything else.

I hope this has been helpful!

Laz

Thanks Laz - your comprehensive answer is much appreciated! :):smile:

1 Like

I noticed that in this series of commands (see below), Rene does not issue the command enable ipv6 on the interface. Is this because when you assign an IPv6 address to an interface, it is automatically ipv6-enabled?

And when / why would you enable an interface for IPv6 addresses while not enabling the router for IPv6 routing? (which he did in the topic ’ IPv6 Solicited Node Multicast Address’ I think, see below below). Or was this just for teaching purposes?

Hello Marit

The ipv6 unicast-routing command enables the router to route IPv6 packets. This essentially allows a router to create an IPv6 routing table, and to be able to respond to Route Solicitation messages with Router Advertisement messages. This command does not affect the ability of specific interfaces to function as IPv6-addressed hosts. You can have IPv6 enabled interfaces without enabling IPv6 routing. These interfaces would simply function as IPv6 hosts that can send and receive IPv6 packets, but the router will not be able to forward any such packets out of another interface.

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.

If you haven’t explicitly configured in IPv6 address, then you can enable an interface to actively become an IPv6 host. This means that it will obtain a link local address, and will be able to exchange Neighbor Discovery Protocol (NDP) messages including neighbor solicitations (NS) and duplicated address detection (DAD) messages, without having obtained a global unicast IPv6 address.

I hope this has been helpful!

Laz

2 Likes

As usual a crystal clear answer, thanks Laz!

1 Like

Dear Rene,

Hope you are doing well . Need to confirm the below …

  1. FF02::1 (All nodes address)
  2. FF02::2 (All Routers Address)

Whats the difference/meaning between All node and All Routers.Thx

BR//ZAMAN

Hello Zaman

Imagine you have a network like the following, where all devices have been configured to function in IPv6:


Assume that the switch is a Layer 2 switch. All of these devices will have obtained a link local address on the same subnet, regardless of whether they have global unicast addresses assigned, and what prefixes they have been given. Using their link local addresses, they can all communicate with each other.

If HOST A sends a packet to the All Nodes address, it will reach all devices on the local link. If HOST A sends a packet to the All Routers address, only the routers will have received it.

Remember that both of these addresses are multicast addresses, and all IPv6 enabled devices (including routers) become members of the all nodes multicast address, and all routers become members of the all routers multicast address.

I hope this has been helpful!

Laz

1 Like

Hi Rene,

What is the role of RS in SLAAC ?You didn’t mention it here .

BR//ZAMAN

Hello Mohammad

IPv6 routers will send out a router advertisement (RA) every 30 seconds by default. Like most parameters, this can be adjusted. This means that any IPv6 device on a network segment will receive an RA at most every 30 seconds. When the RA is received by a host, it is used, as stated in the lesson, for IPv6 autoconfiguration.

In the lesson, the example shows that an RA was indeed sent from R2 to R1, and from this, R1 was able to get its configuration.

The Router Solicitation (RS) is a message sent out by IPv6 hosts to locate routers on the network segment. When a router receives an RS, it responds immediately by generating an RA rather than waiting for the next scheduled time.

Typically, when an IPv6 host is just activated, it will send out an RS immediately to find its local gateway rather than waiting for the scheduled RA. This is likely what has happened in the lesson to trigger the routers RA, but it is not shown.

I hope this has been helpful! Stay healthy and safe!

Laz

1 Like

Hi Laz,

I had this question in the test exam:

The correct answer is that for the host IPv6 unicast routing needs to be enabled on the router globally as well is enabling IPv6 autoconfig on the interface.

However in this article it only specifies that IPv6 autoconfig needs to be enabled on the host, not IPv6 unicast routing.

I labbed this myself in packet tracer, and confirmed I could obtain an IPv6 address via autoconfig using only the IPv6 autoconfig command on the interface, no need for the global IPv6 unicast routing command.

Does the test exam specify that the IPv6 unicast routing is needed because it is assumed R1 will not be acting as a host but routing traffic from other devices? Or is there another factor at play here?

Thanks!

Hello Louis

You are absolutely correct, you do not need to enable IPv6 routing on the router. Indeed, I have a post that describes this fact in detail:

I have since corrected the question in the practice exam. Thanks for pointing this out!!

I hope this has been helpful!

Laz

Hi,

I was just reading up on IPV6 stateless autoconfig and was wondering what would happen if you had multiple IPV6 addresses configured on a router interface. Which would be used?

Thanks,

Sam

Hello Samir

Unlike IPv4, IPv6 allows you to assign multiple IP addresses on an interface, either within the same subnet or in a different subnet. This means that a router interface can have two different IP addresses on two different subnets. So the question that you so rightly stated is, which prefix would be used in autoconfiguration for any host connected to the same network segment? The answer is all of them.

Indeed, if you have two or more addresses on the same router interface, or even multiple IPv6 routers on the same network segment, then a host configured with IPv6 autoconfiguration on that same network segment will adopt the IPv6 addresses of all of the router advertisements.

I labbed this up with a Cisco router acting as an IPv6 host and it received multiple IPv6 addresses, two from a single router configured with multiple addresses on its interface, and one from a second router on the subnet. This is my output:

Host(config-if)#do show ipv6 inter brief
GigabitEthernet0/1     [up/up]
    FE80::F816:3EFF:FEDA:14E3
    2001:DB8:123:123:F816:3EFF:FEDA:14E3
    2002:DB8:123:123:F816:3EFF:FEDA:14E3
    2003:DB8:123:123:F816:3EFF:FEDA:14E3

The first two addresses were received from the same router while the third was received from a second router on the segment.

This at least is the way that a Cisco router interface configured for autoconfiguration will function. Some operating systems of other networking devices or PCs and servers, such as WIndows, may function differently, choosing only a single address, but you’ll have to experiment with those to find out.

I hope this has been helpful!

Laz

Hi,

Thanks for the clarification. It did occur to me it might use all of them because IPv6 isn’t like IPv4 in the way that additional addresses are secondary.

Thanks again.

Sam

1 Like

Hi Sir.

I’m trying to understand what you wrote, besides what it was in the “IPv6 EUI-64 explained” lesson.

You wrote the following

SLAAC is used only for global unicast addresses. Link local addresses are generated either using the EUI-64 method, or randomly.

If the EUI-64 is used to create Link-Local address only, then why in the lesson of “IPv6 EUI-64 explained” was the following command using Global Address, as it started with “200x” address?

Router(config-if)#ipv6 address 2001:1234:5678:abcd::/64 eui-64

I appreciate your response.

Hello Ameen

Link-local addresses can be generated using the EUI-64 method or can be created randomly. That does not mean that the EUI-64 method is used exclusively for link-local addresses.

EUI-64 is a method of creating a unique host portion of the IPv6 address. This can be used for both link-local as well as global unicast addresses.

I hope this has been helpful!

Laz

1 Like

Thanks a lot for the clarification.

1 Like

What’s the difference between ipv6 enable and ipv6 unicast-routing? Can you use either 1, not both to enable ipv6 funtionality?

Hello Itai

Take a look at this NetworkLessons note concerning how IPv6 routing and functionality is enabled on a Cisco IOS device.

I hope this has been helpful!

Laz