SLAAC – Stateless Address Autoconfiguration

1. What Is SLAAC and Why Does It Exist?

Stateless Address Autoconfiguration (SLAAC) is an IPv6 mechanism defined in RFC 4862 that allows a host to automatically configure a globally routable IPv6 address for itself — without a DHCP server, without manual configuration, and without any centralised state being maintained about the address assignment. The host derives its own address by combining a network prefix advertised by a local router with an interface identifier generated from its MAC address (or a random value).

SLAAC is one of the defining features that distinguishes IPv6 address management from IPv4. In IPv4, automatic address assignment requires either DHCP or APIPA (link-local only). In IPv6, SLAAC enables true plug-and-play global addressing — a device can join a network and configure a routable address within seconds, with no server infrastructure required.

Characteristic SLAAC IPv4 DHCP
Server required? No — host self-configures from Router Advertisement Yes — DHCP server must be present and reachable
State maintained? No — "stateless"; router does not track which host has which address Yes — DHCP server maintains a lease database per client
Address uniqueness check Host performs Duplicate Address Detection (DAD) via NDP DHCP server manages the pool to prevent conflicts
Gateway provided? Yes — Router Advertisement includes the default gateway (router's link-local address) Yes — DHCP Option 3
DNS server provided? Via RDNSS option in RA (RFC 8106) or stateless DHCPv6 Yes — DHCP Option 6
Address predictability Partially predictable (EUI-64 uses MAC) or random (RFC 8981 privacy extensions) Controlled by DHCP server — can be static or dynamic

Related pages: IPv6 Overview | IPv6 Addressing | Link-Local vs Global Unicast | IPv6 Neighbour Discovery (NDP) | DHCP Overview | DHCP How It Works | DHCP Configuration | DHCP Relay | DHCPv6 & SLAAC Lab | IPv6 Basic Configuration Lab

2. IPv6 Address Types Involved in SLAAC

Before tracing through the SLAAC process, you need to understand the two address types that every IPv6 interface automatically acquires and how they relate to SLAAC.

Address Type Prefix Scope How Acquired Role in SLAAC
Link-Local Address FE80::/10 Link-local only — never routed beyond the local segment Auto-generated from EUI-64 or random IID as soon as IPv6 is enabled on an interface — no router needed Used as the source address for RS (Router Solicitation) messages and as the default gateway address in Router Advertisements
Global Unicast Address (GUA) 2000::/3 (typically 2001::/16 or 2400::/12) Globally routable — equivalent to a public IPv4 address Configured via SLAAC (prefix from RA + self-generated IID) or DHCPv6 The primary address SLAAC assigns — allows the host to communicate beyond the local link

A host's link-local address is available immediately when IPv6 is enabled. The global unicast address via SLAAC is configured only after a Router Advertisement is received containing a prefix with the A flag (Autonomous Address Configuration flag) set.

3. Neighbour Discovery Protocol (NDP) — The Foundation of SLAAC

SLAAC is built on top of the Neighbour Discovery Protocol (NDP), defined in RFC 4861. NDP is to IPv6 what ARP is to IPv4 — but significantly more capable. NDP uses ICMPv6 messages and operates on the local link using multicast. The five NDP message types relevant to SLAAC are:

NDP Message ICMPv6 Type Direction Purpose
Router Solicitation (RS) Type 133 Host → All Routers multicast (FF02::2) Host requests an immediate Router Advertisement rather than waiting for the periodic RA interval
Router Advertisement (RA) Type 134 Router → All Nodes multicast (FF02::1) Router periodically (or in response to RS) advertises the network prefix, flags, MTU, hop limit, and default gateway information
Neighbour Solicitation (NS) Type 135 Host → Solicited-node multicast Used for address resolution (like ARP Request) and Duplicate Address Detection (DAD)
Neighbour Advertisement (NA) Type 136 Host → Unicast or All Nodes multicast Response to NS — provides MAC address (like ARP Reply); also sent unsolicited when a host changes its link-layer address
Redirect Type 137 Router → Host Informs a host of a better first-hop router for a specific destination (equivalent to ICMP Redirect in IPv4)

See IPv6 Neighbour Discovery (NDP) for full detail on all NDP message types and multicast group addressing.

4. The SLAAC Process – Step by Step

When an IPv6-enabled host connects to a network, it follows this sequence to configure a global unicast address using SLAAC:

Step Action NDP Message Used
1 Generate a link-local address. The host creates a link-local address using the FE80::/10 prefix combined with an Interface Identifier (IID) derived from its MAC address (EUI-64) or a random value.
2 Perform Duplicate Address Detection (DAD). Before using the link-local address, the host sends a Neighbour Solicitation to the solicited-node multicast address for its tentative address. If no Neighbour Advertisement is received back, the address is unique and can be used. NS (Type 135) → NA (Type 136) if duplicate found
3 Send a Router Solicitation. The host sends an RS to the all-routers multicast address (FF02::2) to request an immediate Router Advertisement, rather than waiting up to 200 seconds for the next periodic RA. RS (Type 133) — source: host's link-local; destination: FF02::2
4 Receive a Router Advertisement. The router responds with an RA sent to all nodes (FF02::1). The RA contains the network prefix (e.g., 2001:DB8:ACAD:1::/64), prefix length, flags (M, O, A), lifetime values, MTU, and the router's link-local address as the default gateway. RA (Type 134) — source: router's link-local; destination: FF02::1
5 Check the A flag. If the Autonomous Address Configuration flag (A=1) is set in the Prefix Information Option of the RA, the host proceeds to self-configure a global unicast address using SLAAC.
6 Generate the Global Unicast Address. The host combines the 64-bit prefix from the RA with a self-generated 64-bit Interface Identifier (IID) to form the full 128-bit GUA. The IID is derived using EUI-64 or generated randomly (RFC 8981 privacy extensions).
7 Perform DAD on the new GUA. The host sends a Neighbour Solicitation for the tentative GUA. If no conflict is detected within 1 second (default), the address is assigned and marked as preferred. NS (Type 135) → NA (Type 136) if duplicate found
8 Configure the default gateway. The host uses the router's link-local address (source address of the RA) as its default gateway — no separate gateway configuration needed.

5. EUI-64 – Interface Identifier Generation

EUI-64 (Extended Unique Identifier – 64 bit) is the original method for generating the 64-bit Interface Identifier (IID) from a 48-bit MAC address. The IID is the host portion of an IPv6 address when using a /64 prefix — it occupies the lower 64 bits of the 128-bit address.

5.1 EUI-64 Conversion Process

Step Action Example
1 Take the 48-bit MAC address AA:BB:CC:DD:EE:FF
2 Split it in half at the 3rd and 4th octets AA:BB:CC | DD:EE:FF
3 Insert FF:FE in the middle to expand to 64 bits AA:BB:CC:FF:FE:DD:EE:FF
4 Flip the 7th bit (Universal/Local bit — bit 6 of the first octet, 0-indexed). If it was 0, set it to 1; if it was 1, set it to 0. This converts between globally unique (OUI-based) and locally administered addressing. AA = 10101010 → flip bit 6 → 10101000 = A8
5 The resulting 64-bit EUI-64 IID in IPv6 colon notation A8BB:CCFF:FEDD:EEFF
6 Combine with the 64-bit prefix from the RA to form the GUA Prefix 2001:DB8:ACAD:1::/64 + IID A8BB:CCFF:FEDD:EEFF
→ GUA: 2001:DB8:ACAD:1:A8BB:CCFF:FEDD:EEFF

5.2 The U/L Bit — Why It Is Flipped

The Universal/Local (U/L) bit is bit 6 of the first octet of the MAC address (counting from bit 0 on the right). In IEEE MAC addressing, this bit indicates whether the address is universally administered (0 — globally unique, assigned by the manufacturer) or locally administered (1 — assigned locally). EUI-64 flips this bit to indicate the address was derived from a MAC address, signalling the address is derived from a globally unique identifier. In practice, since most MAC addresses are universally administered (bit = 0), EUI-64 IIDs typically have this bit set to 1 (the 02 pattern in many Cisco router loopback EUI-64 addresses).

5.3 EUI-64 Privacy Concern and RFC 8981

Because EUI-64 encodes the device's MAC address directly into the IPv6 address, the same IID appears in every network the device joins — enabling device tracking across networks. RFC 8981 (Privacy Extensions for SLAAC) addresses this by generating a random IID instead of deriving it from the MAC address. Modern operating systems (Windows, macOS, Linux, iOS, Android) use privacy extensions by default, generating temporary random addresses that change periodically.

IID Method Source Privacy Stability Common Usage
EUI-64 Derived from MAC address Low — MAC embedded in address Stable — same IID on every network Routers, network infrastructure, servers
Random (RFC 8981) Cryptographically random High — no MAC linkage Changes periodically (hours to days) End-user devices: PCs, phones, tablets
Stable Random (RFC 7217) Hash of network prefix + MAC + secret key High — no MAC linkage Stable per-network (same address on same network) Modern OS default for non-temporary addresses

6. Router Advertisement Flags – M, O, and A

The Router Advertisement message contains flags that tell hosts which address configuration method to use. Understanding M, O, and A flags is critical for CCNA and for understanding how SLAAC, stateless DHCPv6, and stateful DHCPv6 co-exist.

6.1 The M Flag and O Flag (in the RA header)

Flag Name When Set (= 1) When Cleared (= 0)
M Managed Address Configuration Host should obtain its IPv6 address from a stateful DHCPv6 server (DHCPv6 assigns and tracks the address) Host should use SLAAC to self-configure its address (default)
O Other Configuration Host should contact a stateless DHCPv6 server to obtain other configuration parameters (DNS servers, domain name, NTP) — but not the address itself No other configuration needed from DHCPv6 (default)

6.2 The A Flag (in the Prefix Information Option)

Flag Name When Set (= 1) When Cleared (= 0)
A Autonomous Address Configuration Host may use this prefix to self-configure a SLAAC address (combines prefix with its own IID) This prefix should not be used for SLAAC — host must obtain an address from DHCPv6

6.3 Flag Combinations and Resulting Behaviour

M Flag O Flag A Flag Address Configuration Method Other Config (DNS etc.)
0 0 1 SLAAC only — host self-configures GUA from RA prefix Via RDNSS option in RA (RFC 8106) — no DHCPv6 needed
0 1 1 SLAAC + Stateless DHCPv6 — host self-configures GUA from RA, then contacts DHCPv6 server for DNS and other parameters only From stateless DHCPv6 server
1 0 0 Stateful DHCPv6 only — host obtains full address and configuration from DHCPv6 server; SLAAC not used for the GUA From stateful DHCPv6 server (included in DHCPv6 reply)
1 1 0 Stateful DHCPv6 only — address from DHCPv6 server From DHCPv6 server (O flag is redundant when M=1)
0 0 0 No prefix for SLAAC; no DHCPv6 — host uses only its link-local address (no GUA configured) None

Default Cisco router RA: M=0, O=0, A=1 — pure SLAAC. Unless you explicitly configure the M or O flags (with ipv6 nd managed-config-flag or ipv6 nd other-config-flag), the router sends RAs that tell hosts to use SLAAC only.

7. Router Advertisement Key Fields

A Router Advertisement carries multiple fields that hosts use to configure themselves. The most important for SLAAC are:

RA Field / Option Purpose Example Value
Source Address Router's link-local address — becomes the host's default gateway FE80::1
M Flag Managed Address Configuration (use stateful DHCPv6 for address) 0 (SLAAC) or 1 (DHCPv6)
O Flag Other Configuration (use stateless DHCPv6 for DNS etc.) 0 (no DHCPv6) or 1 (DHCPv6 for other config)
Router Lifetime How long (in seconds) this router should be used as the default gateway. 0 = not a default gateway. 1800 seconds (30 minutes)
Reachable Time How long a neighbour is considered reachable after last confirmation 30,000 ms
Retrans Timer Time between retransmitted NS messages for DAD and address resolution 1,000 ms
Prefix Information Option Advertises the network prefix for SLAAC — includes prefix, prefix length, A flag, L flag, valid lifetime, and preferred lifetime 2001:DB8:ACAD:1::/64, A=1, valid lifetime=2592000 s
MTU Option Recommended MTU for the link 1500 bytes
RDNSS Option (RFC 8106) Recursive DNS Server — provides DNS server addresses directly in the RA without needing DHCPv6 2001:DB8::53

8. Duplicate Address Detection (DAD)

Duplicate Address Detection (DAD) is an NDP process that every IPv6 host performs before assigning any address — link-local or global — to ensure no other device on the link is already using that address. DAD is defined in RFC 4862 and is mandatory for all SLAAC-configured addresses.

Step Action
1 The host marks the address as tentative — it is not yet used for sending or receiving traffic
2 The host sends a Neighbour Solicitation (NS) with: source = :: (unspecified address), destination = the solicited-node multicast address for the tentative address (FF02::1:FFxx:xxxx where xx:xxxx are the last 24 bits of the address)
3 The host waits 1 second (RetransTimer default) for a response
4a If no Neighbour Advertisement is received — no other device is using the address. The address transitions from tentative to preferred and is assigned to the interface.
4b If a Neighbour Advertisement is received — a conflict is detected. The address is marked duplicate and cannot be used. Manual intervention or a new IID must be generated.

DAD is also performed by routers on their own interfaces when IPv6 is enabled. On Cisco IOS, DAD can be verified with show ipv6 interface — the output shows the DAD attempt count and whether any duplicates were detected.

9. SLAAC vs DHCPv6 – Full Comparison

IPv6 supports three address assignment models. Understanding the difference between them — and when each is appropriate — is a key CCNA topic.

Feature SLAAC Only SLAAC + Stateless DHCPv6 Stateful DHCPv6
RA M Flag 0 0 1
RA O Flag 0 1 0 or 1
RA A Flag 1 1 0
Address assignment Host self-configures from RA prefix + IID Host self-configures from RA prefix + IID DHCPv6 server assigns a specific address
DHCPv6 server needed? No Yes — for DNS/other config only Yes — for address and all config
Address tracking (server side) None — completely stateless None — server only provides DNS, no address binding Full — server maintains binding table (IP + MAC + lease)
Default gateway From RA source address (router's link-local) From RA source address From RA source address (DHCPv6 does not provide gateway)
DNS servers Via RDNSS option in RA (RFC 8106) From stateless DHCPv6 server From stateful DHCPv6 server
Admin control over address None — host generates its own IID None — host generates its own IID Full — administrator controls address pool and assignments
Typical use case Home networks, small offices, IoT Enterprise with SLAAC addressing but centralised DNS management Enterprise networks requiring address tracking and control — may use a DHCP relay agent when the server is on a different subnet

Important note: In IPv6, the default gateway is always provided by the Router Advertisement — regardless of whether SLAAC or DHCPv6 is used for the address. DHCPv6 does not provide a default gateway option (unlike IPv4 DHCP Option 3). This means a Router Advertisement must always be present on the link, even in a stateful DHCPv6 deployment.

10. Cisco IOS Configuration for SLAAC

On Cisco IOS, enabling IPv6 on a router interface automatically triggers periodic Router Advertisement sending. The default RA includes the interface prefix with A=1 (SLAAC enabled), M=0, and O=0 — pure SLAAC mode.

10.1 Enable IPv6 and SLAAC on a Router Interface

! Enable IPv6 routing globally
Router(config)# ipv6 unicast-routing

! Configure IPv6 address on the LAN interface (this also sends RAs automatically)
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 address 2001:DB8:ACAD:1::1/64
Router(config-if)# no shutdown
Router(config-if)# exit

10.2 Configure RA for SLAAC + Stateless DHCPv6 (O Flag)

! Set the O flag — hosts use SLAAC for address, DHCPv6 for DNS/other config
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 nd other-config-flag
Router(config-if)# exit

10.3 Configure RA for Stateful DHCPv6 (M Flag)

! Set the M flag — hosts use stateful DHCPv6 for address assignment
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 nd managed-config-flag
Router(config-if)# exit

! Also clear the A flag to suppress SLAAC address generation
Router(config-if)# ipv6 nd prefix 2001:DB8:ACAD:1::/64 no-autoconfig

10.4 Suppress Router Advertisements (on a specific interface)

! Stop sending RAs on an interface facing the WAN (security best practice)
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ipv6 nd ra suppress all
Router(config-if)# exit

10.5 Configure EUI-64 Address on a Cisco Interface

! Router generates its own IPv6 address using EUI-64 from interface MAC
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 address 2001:DB8:ACAD:1::/64 eui-64
Router(config-if)# exit

For a complete lab, see DHCPv6 & SLAAC Configuration Lab and IPv6 Basic Configuration Lab.

11. SLAAC Verification Commands

Command Platform Output / Purpose
show ipv6 interface GigabitEthernet0/0 Cisco IOS (router) Shows IPv6 addresses assigned (link-local + GUA), RA sending interval, M/O flag status, DAD attempts, and join multicast groups
show ipv6 neighbors Cisco IOS IPv6 neighbour cache — equivalent of the IPv4 ARP table; shows IP, MAC, state (REACH, STALE, INCOMPLETE)
show ipv6 routers Cisco IOS (host/client) Displays RA-derived default router information — router address, lifetime, M/O flags
show ipv6 route Cisco IOS IPv6 routing table — SLAAC-configured default route appears as a route via the router's link-local address (see also show ip route for IPv4 equivalent)
debug ipv6 nd Cisco IOS Real-time NDP messages — RS, RA, NS, NA events including SLAAC address configuration and DAD
ipconfig /all Windows Shows all IPv6 addresses including link-local, SLAAC GUA, and temporary (privacy extension) addresses
ip -6 addr show Linux Lists all IPv6 addresses per interface with scope and flags (dynamic, temporary, mngtmpaddr)
netsh interface ipv6 show addresses Windows Detailed IPv6 address information including DAD state, lifetime, and origin (SLAAC, DHCPv6, or manual)

12. SLAAC Quick-Reference Summary

SLAAC Concept Key Fact
Full name Stateless Address Autoconfiguration
RFC RFC 4862
Protocol basis NDP (Neighbour Discovery Protocol) — ICMPv6 RS and RA messages
Server required? No — completely serverless address configuration
Host sends first Router Solicitation (RS) — ICMPv6 Type 133 to FF02::2
Router responds with Router Advertisement (RA) — ICMPv6 Type 134 to FF02::1
A flag = 1 means Host may use this prefix for SLAAC (self-configure a GUA)
M flag = 1 means Use stateful DHCPv6 for address assignment
O flag = 1 means Use stateless DHCPv6 for other config (DNS etc.) — not the address
IID generation (default) EUI-64 from MAC address (or random with RFC 8981 privacy extensions)
EUI-64 key step Insert FF:FE in the middle of MAC, then flip the 7th bit (U/L bit)
Default gateway source Router's link-local address (source of RA) — always from RA, not DHCPv6
Address uniqueness check Duplicate Address Detection (DAD) via Neighbour Solicitation
Cisco enable SLAAC ipv6 unicast-routing + ipv6 address <prefix>/64 on interface — RAs sent automatically
DHCPv6 provides gateway? No — gateway always comes from RA regardless of DHCPv6 mode

Test Your Knowledge – SLAAC Quiz

1. What does SLAAC allow an IPv6 host to do without any DHCP server?

Correct answer is B. SLAAC (RFC 4862) allows an IPv6 host to configure a globally routable IPv6 address entirely on its own by combining the 64-bit network prefix received in a Router Advertisement with a 64-bit Interface Identifier it generates itself (EUI-64 from MAC or random). No DHCP server, no central state — completely stateless.

2. A host using SLAAC sends a Router Solicitation. To which IPv6 multicast address is this RS sent?

Correct answer is C. The Router Solicitation (ICMPv6 Type 133) is sent to FF02::2, the all-routers multicast address. Only devices that have joined this multicast group — i.e., IPv6 routers — will process it. The router then responds with a Router Advertisement sent to FF02::1 (all nodes).

3. What is the correct EUI-64 process to generate an Interface Identifier from a 48-bit MAC address?

Correct answer is D. The EUI-64 process: (1) Take the 48-bit MAC; (2) split at octets 3 and 4; (3) insert FF:FE in the middle to create a 64-bit value; (4) flip bit 6 of the first octet (the Universal/Local bit). For example, MAC AA:BB:CC:DD:EE:FF becomes AA:BB:CC:FF:FE:DD:EE:FF, then the U/L bit flip changes AA (10101010) to A8 (10101000), yielding IID A8BB:CCFF:FEDD:EEFF.

4. In a Router Advertisement, the M flag is set to 0 and the O flag is set to 1. What should a receiving host do?

Correct answer is A. M=0 means do not use stateful DHCPv6 for the address — use SLAAC instead. O=1 means contact a stateless DHCPv6 server for other configuration parameters such as DNS server addresses and domain names. The host self-configures its GUA via SLAAC and then sends a DHCPv6 Information-Request to obtain DNS and other options.

5. What is the purpose of Duplicate Address Detection (DAD) in the SLAAC process?

Correct answer is B. Because SLAAC addresses are self-generated without any central authority, there is a (small) chance of collision — two devices generating the same IID. DAD uses a Neighbour Solicitation sent to the solicited-node multicast address for the tentative address. If no Neighbour Advertisement is returned within 1 second, the address is unique and can be used.

6. How does an IPv6 host configured via SLAAC learn its default gateway address?

Correct answer is C. The source address of the Router Advertisement is the router's link-local address (e.g., FE80::1). The host automatically uses this as its default gateway. This is a critical IPv6 design point: the default gateway is always derived from the RA — DHCPv6 does not provide a gateway option, so an RA must always be present on the link even in stateful DHCPv6 deployments.

7. Which flag in the Prefix Information Option of a Router Advertisement tells the host it may use that prefix for SLAAC?

Correct answer is D. The A flag (Autonomous Address Configuration flag), carried in the Prefix Information Option of the RA, tells the host it may use this prefix to self-configure a SLAAC address. If A=1, the host combines the prefix with its own IID to form the GUA. If A=0, SLAAC is suppressed for that prefix. The M and O flags are in the RA header and relate to DHCPv6 use, not SLAAC directly.

8. Why do modern operating systems use RFC 8981 privacy extensions instead of EUI-64 for SLAAC by default?

Correct answer is A. Because EUI-64 derives the IID directly from the MAC address, the same 64-bit host portion appears in the IPv6 address on every network the device joins. This allows observers (websites, advertisers, surveillance) to track the device across different networks. RFC 8981 privacy extensions generate a cryptographically random IID that changes periodically, making long-term tracking infeasible.

9. A Cisco router has ipv6 unicast-routing enabled and an IPv6 address configured on Gi0/0. What happens to Router Advertisements on that interface?

Correct answer is B. Once ipv6 unicast-routing is enabled and an IPv6 address (with a /64 or other prefix) is configured on an interface, Cisco IOS automatically begins sending periodic Router Advertisements on that interface. The RA includes the interface's prefix with A=1 (SLAAC enabled) by default. No extra commands are needed for basic SLAAC operation.

10. In a network using stateful DHCPv6 (M=1, A=0), a host cannot reach destinations outside the local subnet. The host has a valid DHCPv6 address but no default gateway. What is the most likely cause?

Correct answer is C. This is one of the most important and frequently tested IPv6 concepts: DHCPv6 does not provide a default gateway. Unlike IPv4 DHCP (which has Option 3 for the gateway), IPv6 hosts always learn their default gateway from the Router Advertisement source address. If the router is not sending RAs (or sends RAs with Router Lifetime = 0), the host will have no default gateway even with a valid DHCPv6 address. Always ensure ipv6 unicast-routing is enabled and the interface is sending RAs.

← Back to Home