← Back to list

IPv6 SLAAC Deep Dive

What is SLAAC

Aman Singh · 2026-04-19 14:50 · 0 claps · 2.7 min read
#slaac #computer-networking #networking #labs
Open on Medium ↗

IPv6 SLAAC Deep Dive

What is SLAAC

SLAAC allows a host to:

  • Automatically generate its IPv6 address
  • Learn the default gateway
  • Operate without DHCP

This is how it works step by step:

1. Interface comes up

When the device connects to a network, its network interface initialises and enables IPv6.

2. Link-local address creation

The device first generates a link-local address (always starts with fe80::). It generally builds this using its MAC address (via modified EUI-64).

3. Duplicate Address Detection (DAD)

Before using the address, the device checks if it’s already in use:

  • It sends a Neighbour Solicitation (NS) message.
  • If no one responds, the address is considered unique and usable.

4. Router Solicitation (RS)

The device asks: “Any routers out there?”

  • It sends a Router Solicitation message to the network.

5. Router Advertisement (RA)

A router responds with a Router Advertisement, which contains:

  • Network prefix (e.g., 2001:db8:abcd::/64)
  • Default gateway info
  • Flags indicating whether SLAAC and/or DHCPv6 should be used

6. Global address generation

Using the prefix from the RA:

  • The device combines:
  • The network prefix (from router)
  • Its interface ID (from earlier)
  • This forms a global unicast IPv6 address

7. Duplicate Address Detection (again)

The device repeats DAD for this new global address to ensure no conflict.

8. Address becomes usable

Once verified:

  • The device can now communicate on the network and the internet using IPv6.
  • It also installs the router as its default gateway.

📊 Packet-by-Packet Breakdown

Let’s walk through the actual flow from your capture.

Let’s try it in our Lab,

I am configuring this on my router:

conf t
ipv6 unicast-routing

interface fa0/0
ipv6 address 2001:db8:1::1/64
no shutdown

Let us analyse what happens packet by packet:

🔹 Packet 22 — Neighbor Solicitation (DAD)

  • Src :: → Dst ff02::1:ffc1:0
  • Checking if fe80::c803:11ff:fec1:0 is already in use.
  • No reply → address is considered unique.

🔹 Packet 23 , 24, 25 — MLD Report v2

  • Host joins multicast groups (ff02::1, solicited-node group).
  • Ensures it can receive ND / RA messages.

🔹 Packet 26 — Neighbor Advertisement

  • Router replies: fe80::c803:11ff:fec1:0 is at ca:03:11:c1:00:00
  • Confirms ownership of link-local address.

🔹 Packet 27 — Neighbor Solicitation (for global)

  • Src :: → Dst ff02::1:ff00:1
  • DAD for global IPv6 2001:db8:1::1.

🔹 Packet 28 — Router Advertisement (KEY SLAAC PACKET)

  • Router → ff02::1 (all nodes)
  • Contains:
  • Prefix 2001:db8:1::/64
  • Flags (A=1 for SLAAC)
  • Host uses this to generate global IPv6 address.

🔹 Packet 33 — Neighbor Advertisement (global)

  • Router advertises: 2001:db8:1::1 is at MAC
  • Confirms global IPv6 ownership.

In Nutshell:

  • DAD (link-local) → Packet 22
  • Multicast join → 23–25
  • Router presence → 26
  • DAD (global) → 27
  • RA → SLAAC happens → 28 (critical)
  • Address confirmed → 33

Router Advertisement Fields

From this packet, which is packet no 28:

🔹 Global RA Flags

Managed (M): 0
Other (O): 0

Meaning:

This is a pure SLAAC environment.

🔹 Router Lifetime

1800 seconds

Host installs:

Default route valid for 30 minutes

🔹 Prefix Information

Prefix: 2001:db8:1::/64

Critical Flags inside Prefix

On-link (L): 1
Autonomous (A): 1

Interpretation

L flag = 1

  • Network is directly reachable (same subnet)

A flag = 1

  • SLAAC is enabled

This is the actual trigger for address creation

🔹 Lifetime Values

Valid Lifetime: 30 days
Preferred Lifetime: 7 days

Behavior:

  • Preferred → actively used
  • Valid → still usable but deprecated

🔹 MTU Option

MTU: 1500

Host adopts MTU from RA


메타데이터
post_id
f81d419e2fff
slug
ipv6-slaac-deep-dive-f81d419e2fff
url
https://medium.com/@aks001235/ipv6-slaac-deep-dive-f81d419e2fff
canonical_url
https://medium.com/@aks001235/ipv6-slaac-deep-dive-f81d419e2fff
author_url
https://medium.com/@aks001235
status
ok
fetched_at
2026-07-16 00:55:23