The Key Difference
| Method | Who Chooses the Address? | What It Is Good For |
|---|---|---|
| SLAAC | The host builds its own address from an advertised prefix | Simple networks, broad device compatibility, privacy addresses |
| DHCPv6 stateful | A DHCPv6 server assigns a full address and tracks the lease | Centralized control, managed environments, address logging |
| DHCPv6 stateless | Host uses SLAAC for its address; DHCPv6 supplies options only | Common mixed model for delivering DNS servers alongside SLAAC |
Router Advertisements and RA Flags
IPv6 routers send Router Advertisements (RAs) periodically and in response to Router Solicitations from new devices. An RA carries the network prefix, the default router address, prefix lifetime, and two important flags that control address configuration behaviour:
- M bit (Managed Address Configuration): When set, the host should use DHCPv6 to obtain its IPv6 address. The host ignores the prefix for SLAAC purposes and requests an address from a DHCPv6 server instead.
- O bit (Other Configuration): When set without M, the host should use SLAAC for its address but contact a DHCPv6 server for other options such as DNS server addresses and domain search lists. This is the stateless DHCPv6 model.
When both M and O are zero, the host uses pure SLAAC and learns DNS from the RA itself via the RDNSS option (RFC 8106). This is the most common configuration on home networks.
SLAAC Mechanics in Detail
- The router sends an RA advertising a /64 prefix, for example
2001:db8:1:2::/64. - The host generates a 64-bit interface identifier. The original method (EUI-64) derives this from the device MAC address by inserting
ff:fein the middle and flipping the universal/local bit. A host with MAC00:1a:2b:3c:4d:5ewould produce interface ID021a:2bff:fe3c:4d5e. - The host combines the /64 prefix with the interface identifier to form a full 128-bit address:
2001:db8:1:2:021a:2bff:fe3c:4d5e. - Before using the address, the host performs Duplicate Address Detection (DAD) by sending a Neighbor Solicitation. If no response arrives, the address is unique and can be used.
- The host uses the router from the RA as its default gateway for off-link traffic.
Privacy Extensions and Why They Were Added
EUI-64 addresses embed the device's MAC address in the lower 64 bits. Because MAC addresses are globally unique and tied to hardware, every website and network a device connects to can see the same persistent identifier in the source IPv6 address. This enables cross-network tracking of devices and individuals.
RFC 4941 introduced Privacy Extensions for SLAAC. Instead of EUI-64, the host generates a random 64-bit interface identifier and replaces it periodically. The temporary address is used for outbound connections while a stable address (still SLAAC-based) may be retained for inbound use. All modern operating systems — Windows, macOS, Linux, iOS, and Android — enable privacy extensions by default, so the EUI-64 address is rarely the one actually used for internet traffic.
DHCPv6 Stateful vs Stateless
DHCPv6 stateful works similarly to IPv4 DHCP: a server maintains a pool of addresses and a lease database. When a client requests an address, the server assigns one, records the assignment, and manages renewals and expiry. This gives network administrators visibility into which device holds which address, which matters for logging, compliance, and troubleshooting.
DHCPv6 stateless does not assign addresses. The RA handles addressing via SLAAC, and the DHCPv6 server only responds to requests for configuration options — primarily DNS servers and domain search lists. This is common in environments where SLAAC is preferred but the RA's built-in RDNSS option is not reliably processed by all clients.
A key distinction from IPv4: even in full DHCPv6 stateful mode, the default gateway is still delivered by the RA, not by DHCPv6. There is no IPv6 equivalent of DHCP option 3 (default router). A DHCPv6-configured host that cannot receive RAs will not have a default route.
DHCPv6 Prefix Delegation
Prefix delegation (DHCPv6-PD, RFC 3633) is used between ISPs and customer routers. The ISP's DHCPv6 server delegates a prefix block — typically a /48 or /56 — to the home router's WAN interface. The router then subdivides this prefix into /64 subnets and advertises them on its LAN interfaces using RAs. This is how a home router gets a routable IPv6 prefix to share with connected devices rather than just a single IPv6 address.
A /56 delegation gives the home router 256 possible /64 subnets. A /48 gives 65,536. Most ISPs delegate /56 to residential customers and /48 to business customers, though practice varies. Some ISPs still only delegate a single /64, which prevents the router from subdividing the prefix for multiple internal segments.
Which ISPs Use Which Method
Deployment varies significantly by provider and region. Most large consumer ISPs in North America, Europe, and Australia use SLAAC with DHCPv6-PD for prefix delegation to the router, then SLAAC or stateless DHCPv6 for devices on the LAN. Enterprise and campus networks more often use stateful DHCPv6 for address tracking. Mobile networks typically use SLAAC or assign a single /128 per device. Android historically did not implement DHCPv6, making SLAAC the only reliable method on networks where Android devices are common.
Frequently Asked Questions
What does SLAAC stand for?
SLAAC stands for Stateless Address Autoconfiguration. It lets IPv6 hosts build their own addresses from router-advertised prefixes without a central server tracking assignments.
Is DHCPv6 the same as IPv4 DHCP?
No. DHCPv6 can assign addresses and options, but IPv6 still relies on Router Advertisements for the default gateway. DHCPv6 alone is not sufficient to configure a host for internet access.
Can SLAAC and DHCPv6 be used together?
Yes. A network can use SLAAC for addressing and stateless DHCPv6 for DNS options, or use stateful DHCPv6 for full address assignment. The RA flags (M and O bits) tell hosts which method to use.