12. December 2016 · Comments Off on Convert Cisco APs from LWAP to Autonomous · Categories: Cisco, Networking, Wireless · Tags: , , ,

A lot of companies are pulling out their old Cisco wireless infrastructure to upgrade or replace it all together. As a result its pretty easy to get your hands on older Cisco AP’s, unfortunately by default they require a special controller in order to function. If you want to turn your old Cisco LWAP AP into something other than a paperweight, you either need to get an older controller or convert the AP to Autonomous. The following snippet is what I had to do to convert my Cisco AP from LWAP to Autonomous. Surprisingly they don’t cover this sort of thing on the CCNA wireless exam; or at least not back when I took it.

Before you begin, just make sure you get the proper “k9w7” autonomous code; bear in mind that “k9w8” is the lightweight code. In my case I had an old Aironet 1130 AG Access Point, so I had to get my hands on the c1130-k9w7-tar.124-25d.JA.tar code. I also needed to setup a TFTP server inside the same vlan as the AP. After I consoled into the AP and logged in to it I had to do the following…

debug lwapp console cli
debug lwapp client no-reload
config t
int fa 0
 ip address
archive download-sw /force-reload /overwrite tftp://
14. January 2016 · Comments Off on Monitoring Cisco AP Dot11 Associations in Cacti · Categories: Cacti, Cisco, Networking, Wireless · Tags: , , , , , ,

This Cacti template should work with any autonomous Cisco AP. It will SNMP poll and display all active Cisco AP Dot11 Associations in Cacti. Note the AP I am testing with has an AIR-RM3000AC-A-K9 module, giving me an extra radio.

Cisco Dot11 - Active Wireless Clients

If you do not have a 802.11AC radio installed in your AP then after importing you may need to modify the Graph Template and remove all the Radio2 graph template items; not doing so may cause the graph not to display properly.

SNMP OIDs queried: [SOURCE]

ActiveWirelessClients (for 2.4Ghz radio) = OID: .
ActiveWirelessClients (for 5Ghz radio) = OID: .
ActiveWirelessClients (AIR-RM3000AC-A-K9) = OID: .

This Cacti template will import/update the following items:


  • Normal
  • Exact Numbers

Data Input Method

  • Get SNMP Data

Data Template

  • Cisco Dot11 – Radio0 Associations
  • Cisco Dot11 – Radio1 Associations
  • Cisco Dot11 – Radio2 Associations

Graph Template

  • Cisco Dot11 – Active Wireless Clients
19. January 2015 · Comments Off on Cisco autonomous AP associated users script. · Categories: Cisco, Linux Scripts, Networking · Tags: , ,

Apparently there is no SNMP string to query to get the number of users associated to each of your SSIDs. So I created a small script to connect to the AP via its web interface and pull down an associated user count. Eventually I’ll create a cacti template for this script. In the meanwhile its just standalone script.

## Created by: deaves
# Query an autonomous Cisco AP and display a count of all users associated to each SSID.
## Requires: curl
# Required script variables.
APHOST=""            # AP hostname
AUTHUP="joeuser:joepassword"        # USERNAME:PASSWORD
# FUNCTION: End Script if error.
DIE() {
 echo "ERROR: Validate \"$_\" is installed and working on your system."
 exit 0
# Validate script requirements are meet.
type -p curl > /dev/null || DIE
printf "%-8s %-20s %-5s\n" "Radio" "SSID" "Users"
printf "%-8s %-20s %-5s\n" "=======" "===================" "====="
# Main Loop.
curl --user ${AUTHUP} http://${APHOST}/ap_assoc.shtml 2> /dev/null | awk 'sub(/\"htmlClients\"/,""){f=1} /^">/{f=0} f' | awk 'NR > 2' | while read LINE
 do eval ARRAY=( $LINE )
  [ "${ARRAY[0]}" == "802.11" -a "${ARRAY[4]}" == "Dot11Radio0:" ] && { RADIO="2.4GHz" ;}
  [ "${ARRAY[0]}" == "802.11" -a "${ARRAY[4]}" == "Dot11Radio1:" ] && { RADIO="5GHz" ;}
  [ "${ARRAY[0]}" == "SSID" ] && { SSID="${ARRAY[1]}"; echo; unset MAC ;}
  [ "${ARRAY[6]}" == "Assoc" ] && { MAC+=( "${ARRAY[0]}" ) ;}
  [ -n "${SSID}" -a -n "${ARRAY[0]}" ] && { printf "${RADIO} ${SSID} ${#MAC[@]} " ;}
 done | awk '{print $1,$2,$NF}' | sed '1d;s/\[//g;s/\] / /g' | while read RADIO SSID ASSOC
  printf "%-8s %-20s %-5s\n" "${RADIO}" "${SSID}" "${ASSOC}"