I was looking for an easy way to get the 91xx series APs to join a 9800 WLC and start broadcasting the WLAN immediately.
Let me just say that I prime the APs. Or have someone else do it - I want to know the AP works, is labeled, and is properly named so when the low voltage guys install it, the AP just starts working.
First, I built a macro spreadsheet to scan the MAC address of the access point, and created columns for my hostnames, IPs, etc. If you want the spreadsheet, just PM me and I'll send a "working" copy to you. I'm always trying to improve it... :)
My spreadsheet creates this output, so I simply copy and paste each column into the controller CLI and viola!!!
ap name AP6849.92D1.1C90 name xyz148-011-ap01 | ap name xyz148-011-ap01 con pri abc001-011-wc01 10.64.25.5 |
ap name AP6849.92D1.0A40 name xyz148-011-ap02 | ap name xyz148-011-ap02 con pri abc001-011-wc01 10.64.25.5 |
ap name AP6849.92D1.1490 name xyz148-011-ap03 | ap name xyz148-011-ap03 con pri abc001-011-wc01 10.64.25.5 |
ap name AP6849.92CF.0C10 name xyz148-011-ap04 | ap name xyz148-011-ap04 con pri abc001-011-wc01 10.64.25.5 |
ap name AP6849.92CF.1E70 name xyz148-011-ap05 | ap name xyz148-011-ap05 con pri abc001-011-wc01 10.64.25.5 |
ap name AP6849.92CF.1EB0 name xyz148-011-ap06 | ap name xyz148-011-ap06 con pri abc001-011-wc01 10.64.25.5 |
ap name AP6849.92CF.1DD0 name xyz148-011-ap07 | ap name xyz148-011-ap07 con pri abc001-011-wc01 10.64.25.5 |
Next, I joined 7 APs to the controller and renamed them and gave them their primary controller config. They join the controller, but they won’t start broadcasting because they won’t get the tags. Translation - it's 3am and my phone rings because "the Wi-Fi is DOWN!!!"
What's an easy way to avoid this cataclysmic catastrophe? I don't want to be online, copying and pasting mac addresses into the controller at 3am while low voltage folks are doing their thing.
The answer is filters!
I built this filter on the controller, since we are going to install 7 access points in small facility and point these APs to the 9800.
I added this to the config:
ap filter name xyz148
ap name-regex xyz148* <- This is a regular expression, filtering on the first part of the AP name
tag policy abc001_Policy_Tag <-These are tags configured in the controller
tag rf abc001_RF_Tag <-These are tags configured in the controller
tag site abc001_Site_Tag <-These are tags configured in the controller
What this does is match all the AP names from access points to a filter, and automagically sets all three tags. That translates to the AP starts broadcasting, and your phone doesn't ring!
There was only one problem, though. It didn't work! I was NOT happy! Thinking hours of work went down the drain, I started digging.
abc001-011-wc01#sho ap summary
Number of APs: 8
CC = Country Code
RD = Regulatory Domain
AP Name Slots AP Model Ethernet MAC Radio MAC CC RD IP Address State Location
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
xyz148-011-ap04 3 CW9166I-B 6849.92cf.0c10 5c64.f1c0.09e0 US -B 10.64.25.127 Registered default location
xyz148-011-ap07 3 CW9166I-B 6849.92cf.1dd0 5c64.f1c0.2d60 US -B 10.64.25.124 Registered default location
xyz148-011-ap05 3 CW9166I-B 6849.92cf.1e70 5c64.f1c0.2ea0 US -B 10.64.25.126 Registered default location
xyz148-011-ap06 3 CW9166I-B 6849.92cf.1eb0 5c64.f1c0.2f20 US -B 10.64.25.125 Registered default location
abc001-011-ap01 3 CW9166I-B 6849.92cf.f810 5c64.f1c1.6ce0 US -B 10.64.25.116 Registered default location ß This one another filter and it works. The others do not bcast.
xyz148-011-ap02 3 CW9166I-B 6849.92d1.0a40 90e9.5e9a.0640 US -B 10.64.25.123 Registered default location
xyz148-011-ap03 3 CW9166I-B 6849.92d1.1490 90e9.5e9a.1ae0 US -B 10.64.25.128 Registered default location
xyz148-011-ap01 3 CW9166I-B 6849.92d1.1c90 90e9.5e9a.2ae0 US -B 10.64.25.129 Registered default location
Dig a little more...
abc001-011-wc01#sho ap filters all
Filter Name regex Policy Tag RF Tag Site Tag
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
abc001 abc001* abc001_Policy_Tag abc001_RF_Tag abc001_Site_Tag
abc101 abc101* abc101_Policy_Tag abc101_RF_Tag abc101_Site_Tag
xyz148 xyz148* abc001_Policy_Tag abc001_RF_Tag abc001_Site_Tag
abc001-011-wc01#sho ap filters active
Priority Filter Name regex Policy Tag RF Tag Site Tag
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 abc001 abc001* abc001_Policy_Tag abc001_RF_Tag abc001_Site_Tag
2 abc101 abc101* abc101_Policy_Tag abc101_RF_Tag abc101_Site_Tag
My filter for the xyz148 named access points don't work? I created the filter just like the other one that I configured last week. (via GUI, and am now trying to script things)
Turns out, I forgot this one step. After creating a filter, there is another step, and that is creating a filter priority. I know, I don't understand it either, but I did it anyway... because "a filter without a priority is not active". It's always those little gotchas in the small print!
There we have it. Simply put, name your APs on the bench on a WLC running the same code you have in production. Scan them, label them, and CLI config them and when they hit the WLC, they'll start broadcasting. You'll have your nights and weekend back. If you get paid by the hour, pretent you never saw this post.