SLAAC Clients Not Getting IPv6 Address From RA
Presenting Symptom
IPv6-enabled hosts on a VLAN are not receiving IPv6 addresses via SLAAC, despite the router being configured to send Router Advertisements.
Network Context
A small branch office with a Cisco 4321 ISR router (IOS XE 16.9) acting as the default gateway for a single VLAN 10. The router has an IPv6 address configured on the VLAN interface and is enabled for SLAAC. There are about 50 Windows 10 and Linux clients connected via a Layer 2 switch. The problem is that clients show IPv6 link-local addresses only, with no global unicast address assigned.
Diagnostic Steps
1. Verify IPv6 is enabled on the router interface
show ipv6 interface GigabitEthernet0/0/0GigabitEthernet0/0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::1
No Virtual link-local address(es):
Global unicast address(es):
2001:DB8:1::1, subnet is 2001:DB8:1::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ICMP unreachables are sent
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds (default)
ND advertised reachable time is 0 (unspecified)
ND advertised retransmit interval is 0 (unspecified)
ND router advertisements are sent every 200 seconds
ND router advertisements live for 1800 seconds
Hosts use stateless autoconfig for addresses.Check that 'IPv6 is enabled' and 'Hosts use stateless autoconfig for addresses' appears. If not, IPv6 or SLAAC is not enabled. Also verify the interface has a global unicast address.
2. Check if Router Advertisements are being sent
debug ipv6 ndIPv6 Neighbor Discovery debugging is on *Mar 1 00:00:10.123: IPv6-ND: Sending RA from GigabitEthernet0/0/0 to FF02::1 *Mar 1 00:00:10.123: IPv6-ND: MTU = 1500 *Mar 1 00:00:10.123: IPv6-ND: prefix 2001:DB8:1::/64 (On-Link, Autonomous) *Mar 1 00:00:10.123: IPv6-ND: Router lifetime = 1800 seconds *Mar 1 00:00:10.123: IPv6-ND: Reachable time = 0 (unspecified) *Mar 1 00:00:10.123: IPv6-ND: Retrans timer = 0 (unspecified)
If no RA messages are seen, the router is not sending them. If RAs are sent but clients still don't get addresses, the issue may be on the client side or with the prefix information. Ensure the prefix is marked as 'Autonomous' (A flag) for SLAAC.
3. Verify the interface configuration for IPv6 and SLAAC
show running-config interface GigabitEthernet0/0/0interface GigabitEthernet0/0/0 ipv6 address 2001:DB8:1::1/64 ipv6 enable ipv6 nd other-config-flag no ipv6 nd suppress-ra
Look for 'ipv6 enable' and 'ipv6 address' with a global unicast. The 'ipv6 nd other-config-flag' should NOT be present for pure SLAAC (it indicates M flag for DHCPv6). Also ensure 'no ipv6 nd suppress-ra' is present (default is to send RAs). If 'ipv6 nd other-config-flag' is set, clients may expect DHCPv6 for other info and might not autoconfigure.
4. Check if the router is suppressing RAs due to a configuration
show ipv6 interface GigabitEthernet0/0/0 | include suppressND router advertisements are sent every 200 seconds ND router advertisements live for 1800 seconds
If the output shows 'ND router advertisements are suppressed', then the interface is configured with 'ipv6 nd suppress-ra'. This would prevent RAs from being sent. The expected output should show that RAs are sent.
Root Cause
The router interface GigabitEthernet0/0/0 has the command 'ipv6 nd other-config-flag' configured, which sets the 'O' flag in Router Advertisements. This flag tells clients to use DHCPv6 for other configuration parameters (like DNS), but some clients (especially older Windows versions) may misinterpret this and fail to perform SLAAC, expecting DHCPv6 for address assignment as well. Additionally, the 'ipv6 nd suppress-ra' command was not present, but the 'other-config-flag' alone caused the issue.
Resolution
Verification
After applying the fix, verify that RAs are sent without the O flag and clients receive addresses. Commands: show ipv6 interface GigabitEthernet0/0/0 | include other Output should not show 'other-config-flag'. On a client, run 'ipconfig /all' (Windows) or 'ip addr show' (Linux) to confirm a global unicast IPv6 address is assigned via SLAAC.
Prevention
1. Use the 'ipv6 nd prefix default' command to explicitly control prefix advertisement options, ensuring the A flag is set for SLAAC. 2. Avoid using 'ipv6 nd other-config-flag' unless DHCPv6 is actually deployed for other parameters; for pure SLAAC, keep default settings. 3. Test client behavior with different OS types after any IPv6 ND configuration changes.
CCNA Exam Relevance
On the CCNA 200-301 exam, this scenario appears in troubleshooting questions where a router is configured for SLAAC but clients fail to get IPv6 addresses. The exam tests understanding of IPv6 Neighbor Discovery, Router Advertisement flags (M and O), and the difference between SLAAC, stateless DHCPv6, and stateful DHCPv6. A typical question might present a show command output and ask which flag is causing the problem.
Exam Tips
Memorize the three IPv6 address assignment methods: SLAAC (A flag), Stateless DHCPv6 (A flag + O flag), Stateful DHCPv6 (M flag).
Know that the 'ipv6 nd other-config-flag' sets the O flag, which tells clients to use DHCPv6 for other configuration but not for addresses.
Be able to identify from 'show ipv6 interface' output whether RAs are being sent and which flags are set.
Test Your CCNA Knowledge
Practice with scenario-based questions to prepare for the CCNA 200-301 exam.
Practice CCNA Questions