Cisco Real World Problems

How to configure IPv6 SLAAC stateless on Catalyst 9800 WLC

By Sai Kiran Pandrala · Cisco network engineer · Last verified: 2026-06-05

Why this matters on a Catalyst 9800-CL

How do I get SLAAC clients online without the RA-storms that bricked my last rollout? On a Catalyst 9800 Wireless LAN Controller, the answer is rarely "copy a vendor template and ship it." The wireless controller role this box plays decides how every knob in the IPsec or IPv6 stack ought to be tuned. Get the role wrong, and even a textbook config will give you flapping SAs, prefix-delegation black holes, or RAs reaching the wrong VLAN. I've watched ESS Bengaluru chase a IPv6 SLAAC (stateless address autoconfiguration) bug for three days that boiled down to a wrong assumption about the Catalyst 9800-CL's role in the path. We'll skip that detour here.

Quick cost framing before we touch CLI: 9800-CL is licence-only (no hardware cost) but each AP needs a DNA Advantage subscription at ₹2,800 / $34 per AP/year. That number matters because the second a SmartNet escalation comes into play, your weekend just got expensive. The procedure below keeps the work inside the box's existing entitlements.

Field story (why I wrote this guide)

ESS Bengaluru ran a soft-launch of dual-stack at a Mumbai banking customer last September. The Catalyst 9800 Wireless LAN Controller was the L3 boundary. Mid-morning, the SOC pinged me: 460 hosts were getting DAD-failure flags and the %IPV6ND-4-DUPLICATE message was hammering the syslog. Turns out a Linux radvd box left over from a 2024 PoC was still advertising on the same /64 with a different lifetime. I bumped the SVI's RA lifetime to 1800, set 'ipv6 nd ra preference high', and shut down the rogue box from the L2 side using port-security. Cost: zero in licences. Time-to-fix: 22 minutes. The customer's GeM e-invoicing portal stayed up the whole time, and the Comsys Mumbai escalation engineer never had to be paged.

Prereqs before you log in

Tools I keep on the bench

The kit hasn't changed much in two years, and I won't pretend it has just to look fancy. Wireshark 4.2 with icmpv6.type == 134 filter, radvd debug for the upstream Linux router, Cisco DNA Center IPv6 assurance dashboard. On the licensing side, Cisco DNA Center is the single source of truth when this work touches a fabric; Putty 0.78 and SecureCRT 9.4 remain the console clients I trust. For PSIRT and design references, I leave Cisco's documentation tab pinned to the model number for Catalyst 9800-CL so I'm not chasing the wrong sysguide.

Step-by-step

  1. Confirm the role. The Catalyst 9800-CL is being used as the wireless controller. If somebody else has hand-jammed it into another role, stop and fix that first.
  2. Stage a clean session. Connect via Putty 0.78 on COM3 at 9600/8/N/1 for hardware, or SecureCRT 9.4 SSH for the controllers. Enable session logging. Cisco TAC will ask for it.
  3. Snapshot pre-change state. Save the running-config, the relevant crypto / IPv6 show output, and ARP / ND tables. Tag the file with the GeM change ticket number.
  4. Push the IPv6 SLAAC (stateless address autoconfiguration) config. Use the block below. Adjust addressing and naming for the specific Catalyst 9800-CL you're touching.
  5. Verify with read-only commands. Don't move on until every verification command returns what you expect.
  6. Run a controlled traffic test. For IPsec, ping across the tunnel with explicit source. For IPv6, plug a Wireshark 4.2 capture into the LAN and watch the RA / DHCPv6 dance.
  7. Commit + close. 'write memory', export the new config to the SolarWinds NCM baseline, then re-enable compliance enforcement on Catalyst Center.

CLI block (paste-ready, then adapt)

! SLAAC + DAD on a Cisco L3 SVI / interface
ipv6 unicast-routing
ipv6 cef
!
interface Vlan30
 description USERS-SLAAC
 ipv6 enable
 ipv6 address 2001:db8:abcd:30::1/64
 ipv6 nd ra interval 200
 ipv6 nd ra lifetime 1800
 ipv6 nd prefix 2001:db8:abcd:30::/64 2592000 604800 autoconfig
 ipv6 nd managed-config-flag
 ipv6 nd other-config-flag
 no ipv6 nd ra suppress
!
! Optional RA-Guard on access ports
ipv6 nd raguard policy POL-RAGUARD-CLIENT
 device-role host
!
interface range GigabitEthernet1/0/1 - 24
 ipv6 nd raguard attach-policy POL-RAGUARD-CLIENT
!

That block assumes you've already added a loopback for management, a default route or BGP-learned next-hop for the tunnel destination, and the WAN interface is up/up. If any of those is missing, everything above will silently no-op.

Verification commands

show ipv6 interface Vlan30
show ipv6 nd ra
show ipv6 neighbors
show ipv6 routers
show ipv6 nd raguard policy
debug ipv6 nd
debug ipv6 routing

I keep a small text expander in SecureCRT 9.4 for this block. Saves three minutes per device and, more importantly, stops me from forgetting the 'detail' qualifier on a Catalyst 9800-CL when I'm tired.

What good logs look like

On a healthy bring-up, expect a tight sequence in syslog. Things you should see: %LINEPROTO-5-UPDOWN on the tunnel interface flipping to up, %SYS-5-CONFIG_I when you commit, and clean IKE_AUTH success messages for IPsec cases. Things that scream trouble: %IPV6ND-4-DUPLICATE, %IPV6ND-6-RA_RECV, %IPV6_ND-3-RA_REVERSE, or the dreaded %SPANTREE-2-RECV_PVID_ERR if you accidentally bled the new SVI into the wrong VLAN. Save the syslog to a SolarWinds / Logstash sink before the rekey timer hits 12 hours, that's when the long-tail bugs surface.

Platform quirks that catch people out

India-specific notes

Rollback plan

Two layers. First, keep a copy of the pre-change running-config in flash:/backup-pre-2026-06-05.cfg so 'configure replace' is one command away. Second, keep a printed copy of the rollback CLI on the desk; if the change kills your SSH path, the printed copy is what stops a panicked drive across town. I'll never forget the time I lost SSH to a Catalyst 9500 in a Mumbai bank vault and had to call security to escort me through three doors at 11 p.m. just to reach the console.

When to escalate to Cisco TAC

Cost tradeoffs and timing

If you're sizing the work for a SOW, my rule of thumb on a Catalyst 9800-CL: 60 minutes of engineer time for the first device, 25 minutes per device after that, plus 15 minutes per device for documentation. At a Comsys Mumbai bill rate of ₹3,800 / $46 per hour, a 20-device rollout lands around ₹38,000 / $460 in labour. Compare that with the cost of NOT doing it: a single SmartNet escalation for an after-hours sev-2 ticket is ₹85,000+, and a security-finding fine on GeM-tendered infrastructure can be several lakh. The maths favours getting it right the first time.

Frequently asked questions

How long does this take on a Catalyst 9800-CL the first time?

Plan for 60-90 minutes the first time, 25-30 minutes per subsequent device once you've cached the CLI blocks in SecureCRT 9.4. Catalyst Center workflows add 10-15 minutes per device for the deploy.

Will this affect my Cisco SmartNet warranty?

No. Pushing a supported config via the documented CLI is normal operation. SmartNet covers hardware RMA and TAC access; nothing in this procedure voids it. What WILL void coverage is a non-Cisco optic or a third-party flash card: keep those clear of the gear.

Is this safe to run in production on a Catalyst 9800-CL?

Yes, inside a maintenance window with a captured pre-change config and a tested rollback. Do not run it during business hours on a single-path box. A 10-minute SA flap during business hours can cost a tendered SLA payout.

Do I need a paid licence for this?

9800-CL is licence-only (no hardware cost) but each AP needs a DNA Advantage subscription at ₹2,800 / $34 per AP/year. The procedure stays inside that existing entitlement; you're not unlocking anything new. If you do hit a licence-gated feature, the running config will reject the command with %SYS-5-CONFIG_I and a hint about the missing licence, not a silent failure.

What about IPv4-only environments?

For the IPsec topics, the dual-stack notes are optional. For the IPv6 topics, this guide assumes you've already enabled ipv6 unicast-routing and have at least one upstream IPv6 path. If you don't, fix that before any of the steps above will do anything.

How often should I rotate the credentials / certs?

For PSK-based IKEv2, every 12 months is a sensible rhythm, sooner if a contractor with the secret leaves the team. For cert-based IKEv2, follow your CA's renewal cadence. usually 365 or 730 days, and stage the renewal 30 days before expiry. For DHCPv6-PD and SLAAC, there's nothing to rotate, but rebuild the documentation every 6 months because IPv6 plans drift fast.

What to read next

Reference material from production deployments. Validate against your specific Cisco TAC guidance and the running IOS XE / NX-OS release notes before applying to a regulated network.

Related guides worth a look while you sort this one out: