A router must be enabled as an IPv6 router before it can send RA messages. To enable IPv6 routing, a router is configured with the following command:

Router(config)# ipv6 unicast-routing

1. In the example topology shown in Figure 1, PC1 is configured to obtain IPv6 addressing automatically. Since booting, PC1 has not received an RA message, so it sends an RS message to the all-routers multicast address to inform the local IPv6 router that it needs an RA.

2. As shown in Figure 2, R1 receives the RS message and responds with an RA message. Included in the RA message are the prefix and prefix length of the network. The RA message is sent to the IPv6 all-nodes multicast address FF02::1, with the link-local address of the router as the IPv6 source address.

3. PC1 receives the RA message containing the prefix and prefix length for the local network. PC1 will use this information to create its own IPv6 global unicast address. PC1 now has a 64-bit network prefix, but needs a 64-bit Interface ID (IID) to create a global unicast address.

There are two ways PC1 can create its own unique IID:

As shown in Figure 3, PC1 can create a 128-bit IPv6 global unicast address by combining the 64-bit prefix with the 64-bit IID. PC1 will use the link-local address of the router as its IPv6 default gateway address.

4. Because SLAAC is a stateless process, before PC1 can use this newly created IPv6 address it must verify that it is unique. As shown in Figure 4, PC1 sends an ICMPv6 Neighbor Solicitation message with its own address as the target IPv6 address. If no other devices respond with a Neighbor Advertisement message, then the address is unique and can be used by PC1. If a Neighbor Advertisement is received by PC1 then the address is not unique and the operating system has to determine a new Interface ID to use.

This process is part of ICMPv6 Neighbor Discovery and is known as Duplicate Address Detection (DAD).