SLAAC (Stateless Address Autoconfiguration) is a method that allows devices on an IPv6 network to automatically assign themselves an IP address without needing a central server. Instead of relying on a DHCP server to hand out addresses, each device generates its own unique IPv6 address using information broadcast by the local router. It’s one of the core features that distinguishes IPv6 from IPv4 networking.
How SLAAC Works Step by Step
When a device connects to a network, the process unfolds in a specific sequence. First, the device creates a link-local address for itself, a temporary address that starts with the prefix fe80::/64 and only works on the immediate network segment. This address lets the device communicate with its neighbors and, critically, with the router.
Next, the device sends a Router Solicitation message out to the network, essentially asking, “Is there a router here, and what network prefix should I use?” The router replies with a Router Advertisement (RA), which contains the network prefix (the first 64 bits of the address) along with other configuration details like the default gateway.
The device then combines this prefix with a locally generated interface identifier (the last 64 bits) to form a full 128-bit IPv6 address. Before it starts using this address, though, it runs a check called Duplicate Address Detection. The device sends a Neighbor Solicitation message to the network asking if anyone else is already using that address. If no Neighbor Advertisement comes back, the address is confirmed as unique and the device begins using it.
How the Interface Identifier Is Generated
The original approach to generating the second half of the address was called EUI-64, which embedded the device’s hardware (MAC) address directly into the IPv6 address. This worked but created a serious privacy problem: because the MAC address is fixed, anyone monitoring network traffic could track a device across different networks just by looking at the last 64 bits of its address.
The current recommended standard, defined in RFC 8064, explicitly recommends against embedding the MAC address. Instead, modern devices use a method from RFC 7217 that generates a stable but opaque interface identifier. The result looks random to outside observers but remains consistent on a given network, so the device keeps the same address each time it reconnects without revealing its hardware identity. Most modern operating systems now use this approach by default, and many also rotate temporary addresses for outbound connections as an additional privacy layer.
The DNS Gap and How It’s Solved
One historical limitation of SLAAC is that it only handles address assignment. By itself, it doesn’t tell a device which DNS servers to use, what domain to search, or other configuration details that a full DHCP server would provide. For years, this meant networks running SLAAC alone couldn’t give devices the information needed to actually resolve domain names.
There are two solutions to this. The first is to run stateless DHCPv6 alongside SLAAC. In this setup, devices still generate their own addresses through SLAAC, but a lightweight DHCPv6 server provides supplementary details like DNS server addresses and domain names. The server doesn’t track or assign addresses, so it stays “stateless” from an addressing perspective while filling in the configuration gaps.
The second solution skips DHCPv6 entirely. RFC 6106 defines options that let routers include DNS recursive server addresses (RDNSS) and DNS search lists (DNSSL) directly inside the same Router Advertisement messages that SLAAC already uses. This means a device can get its address, default gateway, and DNS configuration all from a single RA message. Support for this varies by operating system, but it’s widely implemented on modern platforms.
SLAAC vs. DHCPv6
The key difference is where the intelligence lives. With SLAAC, each device generates its own address independently, and the router simply advertises the network prefix. There’s no server keeping a record of which addresses have been assigned. This reduces administrative overhead and eliminates a single point of failure, making it well suited for dynamic environments where devices come and go frequently.
DHCPv6, by contrast, operates more like the traditional DHCP model from IPv4. A central server assigns addresses and can track which device holds which address. This gives network administrators more control, including the ability to assign specific addresses to specific devices and to log address assignments for auditing.
- State tracking: SLAAC is stateless (no server tracks assignments). DHCPv6 can be stateful, maintaining a record of every lease.
- Server dependency: SLAAC only requires a router sending advertisements. DHCPv6 requires a dedicated server or service.
- Configuration scope: SLAAC handles addressing and gateway info. DHCPv6 can deliver DNS, NTP servers, domain names, and other parameters.
- Administrative control: DHCPv6 lets administrators reserve and audit addresses centrally. SLAAC offers no equivalent mechanism.
Many enterprise networks use both together: SLAAC for address generation and stateless DHCPv6 for delivering additional configuration parameters. This hybrid approach balances automation with centralized administrative control.
Where SLAAC Is Required
SLAAC isn’t just one option among equals. On some platforms, it’s the only option. Android has never supported DHCPv6, and Google has marked this as intended behavior rather than a missing feature. This means any network that needs to support Android devices on IPv6 must have SLAAC enabled, since those devices simply cannot obtain an IPv6 address through DHCPv6 alone.
This design choice reflects Android’s position that SLAAC, combined with RA-based DNS options, provides everything a device needs without the complexity of a stateful server. It also means network administrators can’t rely on DHCPv6 as their sole IPv6 address assignment method if they expect mobile devices on the network.
What the Router Advertisement Contains
The Router Advertisement is the central message that drives SLAAC. Beyond the network prefix, it carries several flags and options that shape how devices behave:
- Prefix information: The 64-bit network prefix and its valid lifetime, telling devices how long the address remains usable.
- Autonomous flag: When set, this tells devices they’re allowed to use SLAAC to generate an address from this prefix.
- Managed flag: Signals that devices should also contact a DHCPv6 server for address assignment.
- Other Configuration flag: Signals that devices should contact DHCPv6 for additional settings (like DNS) but not necessarily for an address.
- RDNSS/DNSSL options: DNS server addresses and search domains, when the network is configured to deliver DNS through the RA itself.
Routers send these advertisements periodically and also in direct response to Router Solicitation messages from newly connected devices. The combination of flags determines whether a network runs pure SLAAC, pure DHCPv6, or the common hybrid of both.

