SLAAC vs DHCPv6: choosing how hosts get an IPv6 address
IPv6 hosts need addresses. Unlike IPv4, where DHCP is the standard path, IPv6 offers two distinct mechanisms: SLAAC (Stateless Address Autoconfiguration) and DHCPv6 (stateful). Choosing between them shapes your address management strategy, operational overhead, and network visibility. This guide explains how each works, when to use each, and the tradeoffs that matter in production networks.
How SLAAC works
SLAAC requires no server. A router sends Router Advertisement (RA) messages via ICMPv6 to the link-local multicast address ff02::1. These RAs contain a prefix (usually /64) and flags that tell hosts: 'build your own address using this prefix and your MAC address (or random identifier).'
The host derives a 64-bit interface identifier (IID) from its MAC address using EUI-64 conversion, or generates a random one if privacy extensions are enabled (RFC 4941). It then combines the prefix with the IID to form a global unicast address. No DHCP server involved. The host is live within milliseconds.
Router sends RA every 200-600 seconds (or on-demand via RS): Prefix: 2001:db8:cafe::/64 Flags: M=0 (no DHCPv6 address), O=0 (no DHCPv6 other info) Host builds address: 2001:db8:cafe::1 (if using EUI-64 from MAC 00:11:22:33:44:55) or 2001:db8:cafe::a1b2:c3d4:e5f6 (if using privacy extension)
How DHCPv6 works
DHCPv6 mirrors IPv4 DHCP: a server pool assigns addresses with lease times, tracks bindings, and can provide additional options (DNS, NTP, domain search). Two modes exist: stateful (server assigns the full address) and stateless (server provides only options like DNS, while the host still uses SLAAC for addressing).
Stateful DHCPv6 (M=1 in RA): Host sends DHCPv6 SOLICIT Server replies with ADVERTISE Host sends REQUEST Server sends REPLY with address, prefix, lease time Stateless DHCPv6 (M=0, O=1 in RA): Host builds address via SLAAC Host sends DHCPv6 INFO-REQUEST Server replies with DNS, domain, other options only
SLAAC vs DHCPv6: key tradeoffs
- →Server dependency: SLAAC needs only a router; DHCPv6 needs a dedicated server (higher availability risk if misconfigured)
- →Address tracking: DHCPv6 maintains a binding database; SLAAC offers no central registry (harder to audit, easier for rogue addresses)
- →Configuration complexity: SLAAC is fire-and-forget; DHCPv6 requires pool management, lease renewal, and failover planning
- →Speed: SLAAC is faster (no round-trip to a server); DHCPv6 adds latency
- →Privacy: SLAAC with privacy extensions rotates addresses; DHCPv6 typically assigns stable addresses
- →Option delivery: DHCPv6 can push DNS, domain search, and other parameters; SLAAC + stateless DHCPv6 also works but adds complexity
When to use each
Use SLAAC for mobile devices, IoT endpoints, and lab environments where address stability is not critical and server overhead should be minimal. Use DHCPv6 (stateful) for servers, network devices, and any host that requires predictable, centrally managed addresses and audit trails. Use stateless DHCPv6 as a middle ground: hosts configure themselves via SLAAC but pull DNS and other options from a DHCPv6 server.
Enterprise networks often run both. Servers and infrastructure use DHCPv6 stateful; workstations and guests use SLAAC or stateless DHCPv6. Configure the M and O flags in your RA policy to steer each class of host toward the right mechanism.
Test your IPv6 addressing strategy in a lab before production rollout. Understand your prefix length, your privacy requirements, and your operational model for address lifecycle. Get the fundamentals right, and IPv6 addressing becomes straightforward.