When a device connects to an IPv6 network, it needs to obtain one or more IPv6 addresses to communicate. Unlike IPv4, where DHCP is the dominant method, IPv6 offers multiple address assignment mechanisms, each designed for different use cases and network requirements. Understanding these methods is essential for network administrators and anyone interested in how modern networks operate.
This article explores the three primary methods of IPv6 address assignment: SLAAC (Stateless Address Autoconfiguration), DHCPv6 (Dynamic Host Configuration Protocol for IPv6), and manual configuration.
SLAAC is IPv6's revolutionary approach to network configuration, allowing devices to automatically configure their own addresses without requiring a central server to track assignments. This "stateless" nature makes it particularly scalable and efficient.
The SLAAC process involves several distinct steps:
When an IPv6-enabled device first connects to a network, it generates a link-local address (fe80::/10 prefix). This address is used only for communication within the local network segment and serves as the foundation for the autoconfiguration process.
The device sends an ICMPv6 Router Solicitation (RS) message to the all-routers multicast address (FF02::2), essentially asking, "Are there any routers on this network?"
IPv6 routers respond with Router Advertisement (RA) messages, either in response to solicitations or periodically (typically every 200 seconds). These RA messages contain crucial information:
The device combines the advertised prefix with a locally-generated interface identifier to create a globally unique IPv6 address. The interface identifier can be derived from:
Before using the newly generated address, the device performs Duplicate Address Detection by sending a Neighbor Solicitation message to verify no other device is using the same address.
Once DAD confirms the address is unique, the device begins using it for communication and sets the router's link-local address as its default gateway.
Device Connects to Network
|
v
Generate Link-Local Address (fe80::/10)
|
v
Send Router Solicitation (RS) --> FF02::2
|
v
Receive Router Advertisement (RA)
|
v
Extract Network Prefix (e.g., 2001:db8::/64)
|
v
Generate Interface Identifier
|
v
Combine: Prefix + Interface ID = Global Address
|
v
Perform Duplicate Address Detection (DAD)
|
v
Address Ready for Use
RA messages include two critical flags that determine how additional configuration is obtained:
DHCPv6 extends the familiar DHCP protocol to IPv6, providing centralized address management and extensive configuration capabilities. Unlike DHCPv4, DHCPv6 comes in two flavors: stateful and stateless.
In stateful DHCPv6, a server assigns IPv6 addresses to clients and maintains a database of which addresses are assigned to which devices—similar to DHCPv4.
Process:
Key features:
Stateless DHCPv6 does NOT assign addresses—devices use SLAAC for addresses—but provides additional configuration parameters that SLAAC cannot deliver.
What it provides:
This hybrid approach combines SLAAC's simplicity for address assignment with DHCPv6's ability to deliver comprehensive configuration data.
Administrators can manually configure IPv6 addresses on devices, just as with IPv4. This method is typically used for:
Manual configuration bypasses both SLAAC and DHCPv6, giving complete control but requiring hands-on configuration for each device.
One concern with SLAAC is that interface identifiers derived from MAC addresses remain constant across networks, potentially enabling device tracking. RFC 8981 (formerly RFC 4941) addresses this with temporary addresses.
Instead of using a predictable interface identifier, devices generate random identifiers that change periodically (typically daily). A device might have multiple addresses simultaneously:
Most modern operating systems enable privacy extensions by default for client devices.
| Feature | SLAAC | Stateful DHCPv6 | Stateless DHCPv6 | Manual |
|---|---|---|---|---|
| Address Assignment | Yes (automatic) | Yes (server-assigned) | No (uses SLAAC) | Yes (manual) |
| State Tracking | No | Yes | No | N/A |
| DNS Configuration | Limited (RFC 8106) | Yes | Yes | Yes |
| Server Required | No (router only) | Yes | Yes | No |
| Scalability | Excellent | Good | Excellent | Poor |
| Management Control | Low | High | Medium | High |
| Android Support | Yes | No | Yes | Yes |
| Best For | Simple networks, end-users | Enterprise, managed networks | Hybrid environments | Infrastructure devices |
The choice of address assignment method depends on your network requirements:
Many modern networks use hybrid configurations, combining SLAAC for address assignment with stateless DHCPv6 for additional parameters. This approach offers broad compatibility while providing necessary configuration options.
Understanding how addresses are assigned is crucial, but verifying your actual connectivity is equally important. Tools like test-ipv6.run can help you verify:
These tests run entirely in your browser and can reveal configuration issues or connectivity problems that might not be immediately apparent.
IPv6 address assignment offers unprecedented flexibility through SLAAC, DHCPv6, and manual configuration. SLAAC's stateless autoconfiguration simplifies network deployment, while DHCPv6 provides the control and management features required by enterprise networks. Privacy extensions ensure that automatic configuration doesn't compromise user privacy.
As IPv6 adoption continues to grow, understanding these assignment methods becomes increasingly important for network administrators, developers, and IT professionals. The key is choosing the right method—or combination of methods—for your specific network requirements, balancing simplicity, control, and compatibility.
Whether you're setting up a home network, managing enterprise infrastructure, or simply curious about how your devices get their IPv6 addresses, these mechanisms work quietly in the background to make modern networking possible.
Last updated: October 2025