IPv6 SLAAC – Stateless Address Autoconfiguration

There are three options on how to configure IPv6 addresses on our networks. The first one is to statically assign a unicast IPv6 address to an interface of the device. Another option is Stateless Address Autoconfiguration (SLAAC), which uses link-local addresses and the interface’s MAC address. Lastly, stateful autoconfiguration which uses Dynamic Host Configuration Protocol version 6 (DHCPv6).

 

Stateless Autoconfiguration (SLAAC) Process

IPv6 Stateless Address Autoconfiguration or SLAAC allows devices on a network to automatically configure IPv6 addresses on its interface without managing a DHCP server.

Here is the command to configure Stateless Autoconfiguration to the device’s interface:

Corp Router(config)#interface fastEthernet 0/0
Corp Router(config-if)#ipv6 address autoconfig default

 

Link-Local Address

The first thing that happens is that the device gives itself its own link-local address. The IPv6 link-local address configuration for its own interface is done automatically. The link-local address can be acquired by combining the link-local prefix FE80::/64 and the EUI-64 interface identifiers generated from the interface’s MAC address that is padded in the middle with FFFE – 16 bits.

For example, I have a MAC address of AA40:1134:5531. To create a link-local address, we will insert 0xFFFE in the middle of it:
AA40:11FF:FE34:5531

Then flip the 7TH bit of the MAC address, which results to:
A840:11FF:FE34:5531

10101010 represents the first 8 bits of the MAC address (AA), which, when inverting the 7th bit becomes 10101000 (A8). Therefore, the resulting IPv6 EUI-64 link-local address is this:
FE80::A840:11FF:FE34:5531.

 

NOTE

Most modern operating systems randomize the host portion of the address rather than using the standard EUI-64 for security and privacy reasons.

 

Duplicate Address Detection (DAD)

When the client device has obtained the IPv6 link-local address on its interface, the second step will be to send Duplicate Address Detection (DAD) ICMPv6 message to its link. This checks if the target address matches existing addresses, ensuring it is a unique link-local address and not duplicated in the local segment.

 

NOTE

When the device autoconfigures or receives an IPv6 address, they send three DADs out via Network Discovery Protocol – Network Solicitation (NDP NS), asking if anyone has this same address.

 

Router Solicitation and Router Advertisement

After the device confirms that its IPv6 address is unique and there’s no duplicate link-local address as its interface becomes enabled, the next step of the SLAAC process is to send a Router Solicitation message (RS) that requests that routers generate Router Advertisements (RA). This message aims to query all IPv6-speaking routers attached to this segment about the global unicast prefix used.

SLAAC

 

Global Unicast Address

Since our client device has only a link-local unicast address configured on its interface, which is not meant to be routed, it needs to configure a global unicast address.

When our client device received the router advertisement sent by the router, it combines the global unicast prefix address (2001:1385:A:B:: /64) with its EUI-64 interface identifier (A840:11FF:FE34:5531), resulting in the global unicast address 2001:1385:A:B:A840:11FF:FE34:5531/64 that can be routed on the Internet. The default gateway of our client device will be the router that sends Router Advertisements (RA) to it.

 

NOTE

Stateless autoconfiguration (SLAAC) assigns IP addresses automatically without the need for a DHCP server to keep track of the IP address of a host. However, SLAAC does not provide DNS information, and without DNS, many services, such as surfing the Internet, are not possible.

 

DHCPv6 – Dynamic Host Configuration Protocol v6

Another way to assign IPv6 addresses to hosts is via DHCPv6. DHCPv6 is an update to DHCPv4, with its main difference being that it supports IPv6’s new addressing scheme. Unlike SLAAC, DHCPv6 is called stateful configuration because it keeps track of which hosts have which IP address and stores information about them.

 

DHCPv6 Process

The first step is the DHCPv6 client must find addresses of other devices on the link via Neighbor Discovery Process (NDP). If a DHCP client detects a router, it will check the Router Advertisement (RA) sent by a router to see if a DHCPv6 has been set up, or if no router advertisement messages are seen, the client will send DHCP solicit messages, which is a multicast message addressed with a destination of ff02::1:2 that calls out, “All DHCP agents, both servers and relays.” The DHCPv6 client will use the link-local scope to send the DHCP solicit message to ensure that the message isn’t forwarded, by default, beyond the local link.

 

NOTE

In practice, a DHCP server is still required to give out information such as DNS information to be able to surf the internet, unlike SLAAC, which only configures IPv6 addresses.


Download our Free CCNA Study Guide PDF for complete notes on all the CCNA 200-301 exam topics in one book.

We recommend the Cisco CCNA Gold Bootcamp as your main CCNA training course. It’s the highest rated Cisco course online with an average rating of 4.8 from over 30,000 public reviews and is the gold standard in CCNA training: