WLC Commands
Commands for managing Cisco Catalyst 9800 Wireless LAN Controllers.
Prerequisites
Load secrets before using WLC commands:
dsource d000 dev/network
Required environment variables:
| Variable | Description | Used By |
|---|---|---|
|
WLC IP or hostname |
Both |
|
SSH username |
SSH commands |
|
SSH password |
SSH commands |
|
RESTCONF API username |
REST commands |
|
RESTCONF API password |
REST commands |
WLAN Management (SSH)
Deploy Full SSID
The deploy-ssid command creates all required components for an SSID in one step:
-
WLAN profile (security settings)
-
Policy profile (VLAN assignment)
-
Policy tag (maps WLAN to policy)
-
Optionally assigns tags to APs
# Deploy 802.1X SSID for managed devices
netapi wlc deploy-ssid Domus-Secure --id 1 --vlan 10 \
--security dot1x --auth-list ISE-AUTH \
--ap AP-Office --ap AP-Living-Room
# Deploy WPA2-PSK SSID for IoT devices
netapi wlc deploy-ssid Domus-IoT --id 2 --vlan 40 \
--security wpa2-psk --psk "IoTSecret123!"
# Deploy Guest SSID (open for captive portal)
netapi wlc deploy-ssid Domus-Guest --id 3 --vlan 50 \
--security open
# Deploy VoIP SSID with WPA2-PSK
netapi wlc deploy-ssid Domus-Voice --id 4 --vlan 60 \
--security wpa2-psk --psk "VoiceSecret!"
Options:
| Option | Description |
|---|---|
|
WLAN ID (1-512) |
|
Client VLAN |
|
Security type: |
|
Pre-shared key (for PSK types) |
|
Authentication method list (for dot1x) |
|
AP names to assign (repeatable) |
|
Enable WLAN (default: enabled) |
|
Don’t save configuration |
Create WLAN Profile (Manual)
For more control, create components separately:
# Create WLAN with 802.1X
netapi wlc create-wlan Domus-Secure --id 1 \
--security dot1x --auth-list ISE-AUTH
# Create WLAN with WPA2-PSK
netapi wlc create-wlan Domus-IoT --id 2 \
--security wpa2-psk --psk "SecretKey123"
Create Policy Profile
netapi wlc create-policy-profile POLICY-SECURE --vlan 10 --aaa-override
netapi wlc create-policy-profile POLICY-IOT --vlan 40
Create Policy Tag
netapi wlc create-policy-tag TAG-HOME \
--map Domus-Secure:POLICY-SECURE \
--map Domus-IoT:POLICY-IOT \
--map Domus-Guest:POLICY-GUEST \
--map Domus-Voice:POLICY-VOICE
|
Service Disruption Warning
Modifying policy tags causes a brief network disruption! When you:
The AP will briefly disconnect all clients (1-5 seconds) while reapplying the configuration. In production environments (hospitals, factories, trading floors):
For home networks: Warn family members before making wireless policy changes. |
Assign Tags to AP
netapi wlc assign-ap-tag AP-Living-Room --policy-tag TAG-HOME --save
netapi wlc assign-ap-tag AP-Office --policy-tag TAG-HOME --save
Access Points (REST API)
netapi wlc get-aps
netapi wlc get-ap AP-Office --json
netapi wlc reboot-ap AP-Office --force
Clients (REST API)
netapi wlc get-clients
netapi wlc get-client AA:BB:CC:DD:EE:FF
netapi wlc get-client-count
netapi wlc deauth-client AA:BB:CC:DD:EE:FF --force
RADIUS / AAA (SSH)
netapi wlc show radius-servers
netapi wlc show aaa-groups
netapi wlc add-radius-server --name ISE-02 --ip 10.50.1.21 \
--key "SharedSecret" --aaa-group ISE-SERVERS --save
netapi wlc test-aaa --group ISE-SERVERS --user testuser --pass testpass
Raw Commands (SSH)
netapi wlc run "show wlan summary"
netapi wlc run "show ap summary"
netapi wlc run "show wireless client summary"
Certificate Management (SSH)
netapi wlc cert-list
netapi wlc cert-trustpoints
# Full certificate deployment
netapi wlc cert-deploy \
--pkcs12 /tmp/wlc-cert/9800-wlc-01.p12 \
--password WlcCert2026 \
--ca-file /tmp/wlc-cert/HOME-ROOT-CA.pem \
--trustpoint WLC-MGMT-CERT
Recommended SSID Setup
Based on best practices for a home network:
| SSID | Security | Use Case | VLAN |
|---|---|---|---|
|
802.1X EAP-TLS |
Managed workstations, high-trust devices |
10 |
|
WPA2-PSK or MAB |
Smart home, cameras, sensors |
40 |
|
Captive portal / PSK |
Visitors |
50 |
|
802.1X or PSK |
VoIP phones |
60 |
Deploy All SSIDs
# Domus-Secure: 802.1X for managed devices
netapi wlc deploy-ssid Domus-Secure --id 1 --vlan 10 \
--security dot1x --auth-list ISE-AUTH
# Domus-IoT: WPA2-PSK for IoT devices
netapi wlc deploy-ssid Domus-IoT --id 2 --vlan 40 \
--security wpa2-psk --psk "IoTDevicesOnly2026!"
# Domus-Guest: Open (for captive portal) or simple PSK
netapi wlc deploy-ssid Domus-Guest --id 3 --vlan 50 \
--security wpa2-psk --psk "GuestWiFi2026"
# Domus-Voice: WPA2-PSK for VoIP
netapi wlc deploy-ssid Domus-Voice --id 4 --vlan 60 \
--security wpa2-psk --psk "VoIPPhones2026!"
# Create unified policy tag for all SSIDs
netapi wlc create-policy-tag TAG-DOMUS-HOME \
--map Domus-Secure:POLICY-DOMUS_SECURE \
--map Domus-IoT:POLICY-DOMUS_IOT \
--map Domus-Guest:POLICY-DOMUS_GUEST \
--map Domus-Voice:POLICY-DOMUS_VOICE \
--save
# Assign to APs
netapi wlc assign-ap-tag AP-Living-Room --policy-tag TAG-DOMUS-HOME --save
netapi wlc assign-ap-tag AP-Office --policy-tag TAG-DOMUS-HOME --save
Family devices go on Domus-Secure with certificates, or Domus-IoT if they can’t do 802.1X.
|