A structured lesson workspace with readable content, hands-on examples, and a clean path to completion.
IPv6 can assign addresses without a DHCP server. A host boots, sends a Router Solicitation, gets a Router Advertisement with a prefix, and generates its own interface ID. No server, no lease, no `ipconfig /release`. That's SLAAC, and it's why IPv6 works out of the box on most consumer networks.
EUI-64 takes the host's MAC address (48 bits), inserts `ff:fe` in the middle, and flips the 7th bit (Universal/Local) to get a 64-bit interface ID. It's deterministic — the same MAC always produces the same interface ID, which means hosts are trackable across networks.
Privacy Extensions (RFC 4941) fix that. Instead of EUI-64, the host generates a random interface ID that rotates periodically. The temporary addresses are what's used for outbound connections; the EUI-64 derived address (if present) is used for inbound reachability. Most modern OSes enable privacy extensions by default.
| Mode | RA flags | Address source | DNS source | Use case |
|---|---|---|---|---|
| SLAAC only | A=1, M=0, O=0 | Host-generated | None (or static) | Home networks, basic IPv6 |
| SLAAC + stateless DHCPv6 | A=1, M=0, O=1 | Host-generated | DHCPv6 | Enterprise with DNS via DHCPv6 |
| DHCPv6 stateful | A=0, M=1 | DHCPv6 server | DHCPv6 | Managed environments, auditing |
DHCPv6 is genuinely different from DHCPv4. It uses UDP 546 (client) and 547 (server), and clients multicast to ff02::1:2 to find servers instead of broadcasting. There's no broadcast in IPv6 — that's why DHCPv6 needs multicast.
! SLAAC only (default — routers advertise with A=1 M=0 O=0)Router1(config-if)# ipv6 nd ra-interval 30Router1(config-if)# ipv6 nd prefix 2001:db8:acad:1::/64! SLAAC + stateless DHCPv6 for DNS infoRouter1(config-if)# ipv6 nd other-config-flag! DHCPv6 stateful — hosts ask server for addressRouter1(config-if)# ipv6 nd managed-config-flagRouter1(config-if)# ipv6 nd prefix 2001:db8:acad:1::/64 no-autoconfig! DHCPv6 server poolRouter1(config)# ipv6 dhcp pool LAN1Router1(config-dhcpv6)# address prefix 2001:db8:acad:1::/64Router1(config-dhcpv6)# dns-server 2001:4860:4860::8888Router1(config-dhcpv6)# exitRouter1(config-if)# ipv6 dhcp server LAN1
The `no-autoconfig` on the prefix in stateful mode tells hosts not to SLAAC-generate from that prefix. They must ask DHCPv6 instead. That's how you get stateful behavior — the managed-config-flag signals it, and no-autoconfig enforces it.
Each client gets a DUID (DHCP Unique Identifier) — like a MAC but cryptographically constructed and stable across reboots. The binding shows the assigned address and lifetime information. Compare against `show ipv6 dhcp pool` for pool status.
A financial services company is rolling out IPv6 across 5,000 workstations. Compliance requires audit trails showing who was on which IP at what time. Which mode should they deploy?
Select the safest next action.
SLAAC, DHCPv6, and how they fit together. Next lesson: IPv6 routing and default gateways.
Finish the lesson once you have worked through the material. This awards ★ 35 XP.