<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Wireless on 0x2142 | Networking Nonsense</title>
    <link>https://0x2142.com/tags/wireless/</link>
    <description>Recent content in Wireless on 0x2142 | Networking Nonsense</description>
    <image>
      <title>0x2142 | Networking Nonsense</title>
      <url>https://0x2142.com/logo.jpg</url>
      <link>https://0x2142.com/logo.jpg</link>
    </image>
    <generator>Hugo -- 0.143.1</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 20 Aug 2020 21:17:23 +0000</lastBuildDate>
    <atom:link href="https://0x2142.com/tags/wireless/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Meraki MG - Setting up Meraki&#39;s New Cellular Gateway</title>
      <link>https://0x2142.com/meraki-mg-setting-up-merakis-new-lte-gateway/</link>
      <pubDate>Thu, 20 Aug 2020 21:17:23 +0000</pubDate>
      <guid>https://0x2142.com/meraki-mg-setting-up-merakis-new-lte-gateway/</guid>
      <description>I recently got a Meraki MG21 LTE gateway. Let&amp;rsquo;s set it up!</description>
      <content:encoded><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Zb5KE8_OFxQ?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p>So if you&rsquo;ve read some of my recent posts - you may have seen that I purchased a <a href="/how-to-setting-up-google-fi-on-a-netgear-lte-modem/">NetGear LB 1121 LTE Cellular modem</a> to use for home internet backup.</p>
<p>Well - I decided to upgrade!</p>
<p>After using the NetGear modem for a while, I started having some issues where it would disconnect from the cellular connection intermittently. Since it&rsquo;s not necessarily intended for the purpose I&rsquo;m using it for, there wasn&rsquo;t any good way to set up monitoring for it either.</p>
<p>So I opted to upgrade to a Meraki MG21. This is one of the latest additions to the Meraki family of network devices &amp; is available with internal (MG21) and external (MG21E) antenna.</p>
<p>I was pretty excited to get one, since Meraki tends to have decent analytics &amp; configuration - and they make everything so easy!</p>
<p>We&rsquo;ll walk through the setup of the MG below - but if you&rsquo;re interested in seeing what the device looks like as well, definitely check out the video above!</p>
<hr>
<h2 id="mg-setup---changing-the-apn">MG Setup - Changing the APN</h2>
<p>Okay - so after I got the SIM card inserted into the MG, the first configuration step is making sure we have the correct APN configured. As a reminder, I&rsquo;m using Google Fi as my cellular provider.</p>
<p>This change will need to be done <strong>on the local web management interface</strong> - not from Meraki Dashboard.</p>
<p>When the MG powers on, by default it will hand out DHCP addresses to any device connected to port 1. At the time of writing, these addresses were in the 192.168.5.x range.</p>
<p>Connecting a PC directly to the MG port, we should be able to reach the local management web page - either by typing in the IP address into our web browser, or using mg.meraki.com:</p>
<p><img alt="blog-01" loading="lazy" src="/content/images/2020/08/blog-01.PNG#center"></p>
<p>In my case, I could see that the MG had auto-detected my Carrier as Google Fi. However, it still had the incorrect APN.</p>
<p>Using the <strong>Configure</strong> tab, we can change that setting. You&rsquo;ll be prompted for a username &amp; password. By default, the username will be the serial number of the device (including dashes) with a blank password.</p>
<p><img alt="blog-02" loading="lazy" src="/content/images/2020/08/blog-02.PNG#center"></p>
<p>As shown in the screenshot above, we have a handful of options - though we&rsquo;ll only care about APN.</p>
<p>First - change the <strong>Cellular Override</strong> option to <strong>Override SIM Settings</strong>.
Then type in your APN. In my case, it&rsquo;s <strong>h2g2</strong> for Google Fi.
Lastly, hit save at the bottom (just outside the view in the screenshot above).</p>
<p>With any luck, the modem will connect and you&rsquo;ll see something like this:</p>
<p><img alt="blog-03" loading="lazy" src="/content/images/2020/08/blog-03.png#center"></p>
<p>The modem connects, gets an IP from the provider, and is able to validate connectivity to both the internet &amp; Meraki Cloud.</p>
<p>When I originally set up my MG, I did run into some issues with this. My MG connected to the internet successfully, but said it couldn&rsquo;t reach the Meraki Cloud. Not sure what caused it, but it shortly resolved itself within a few minutes. Just gotta be patient sometimes, I suppose!</p>
<h2 id="configuring-the-mg-in-meraki-dashboard">Configuring the MG in Meraki Dashboard</h2>
<p><em>Note: I won&rsquo;t get into how to claim your device in dashboard or how to attach it to a network. If you need help, please check out the video above where I did show how to accomplish these steps</em></p>
<p>Okay! Now that our MG is configured for the correct cell network, we can log into the Meraki Dashboard and begin configuring it.</p>
<p>After we&rsquo;ve added the MG to our network, we&rsquo;ll see a new <strong>Cellular Gateway</strong> menu:</p>
<p><img alt="blog-04" loading="lazy" src="/content/images/2020/08/blog-04.png#center"></p>
<p>We&rsquo;ll start first by going over to <strong>Configure &gt; Settings</strong></p>
<p>First section we&rsquo;ll see is for <strong>Addressing &amp; NAT</strong>:</p>
<p><img alt="blog-05" loading="lazy" src="/content/images/2020/08/blog-05.png#center"></p>
<p>As of today, the MG doesn&rsquo;t support any form of direct internet pass-through. Instead, our only option is <strong>routed</strong> mode - where the MG will hold the IP provided by our Carrier &amp; NAT any requests from the devices behind it.</p>
<p>We can change the DHCP subnet configuration here, which will affect what IP addresses are handed to clients behind the MG. In my case, I&rsquo;m connecting this directly to a firewall as a secondary internet uplink - so the addressing &amp; subnet doesn&rsquo;t matter as much. By default, the MG will always consume the first available address as it&rsquo;s own.</p>
<p>Next, we have a section for <strong>DHCP &amp; subnets</strong>:</p>
<p><img alt="blog-06" loading="lazy" src="/content/images/2020/08/blog-06.png#center"></p>
<p>Here we can change our DHCP lease time, and what DNS servers are provided to our clients. The DNS setting does have pre-defined options for Umbrella DNS, Google DNS, or using whatever the upstream carrier provides. You&rsquo;re also welcome to manually specify which DNS servers to use.</p>
<p>We can also configure reserved &amp; fixed IP addresses here.</p>
<p>Reserved IP ranges are IP addresses that we don&rsquo;t want the MG to provide via DHCP. So if we had any statically configured IP addresses, we could reserve them here.</p>
<p>Fixed IP addresses are for any client that needs a DHCP address, but we want that IP assignment to be permanent. We&rsquo;ll enter the client name &amp; MAC Address here, as well as the IP we want assigned to that device. In my case, I went ahead and inserted my firewall MAC address - and I&rsquo;ll just allow the firewall to get its IP via DHCP from the MG.</p>
<p>By default, the MG will block <strong>all</strong> inbound traffic from the cellular network. If we need to allow any traffic inbound, we can change the <strong>Port Forwarding</strong> settings:</p>
<p><img alt="blog-07" loading="lazy" src="/content/images/2020/08/blog-07.png#center"></p>
<p>This allows for a light configuration of an inbound NAT. Right now, I probably won&rsquo;t be using this. However, I may permit VPN access into my network via the MG at a later date.</p>
<p>If I needed to add anything here, the MG allows us to translate an external / public IP &amp; port to any internal IP / port combination. It appears we can even add a IP filter to permit only trusted source addresses.</p>
<p>Lastly - We can configure settings for <strong>Traffic Shaping</strong>:</p>
<p><img alt="blog-08" loading="lazy" src="/content/images/2020/08/blog-08.PNG#center"></p>
<p>In this section, we can throttle our cellular throughput &amp; configure uplink monitoring.</p>
<p>By default, the cell bandwidth is set to unlimited - but we can drop this down if needed. In my case, I am not using an unlimited cell data plan - so I will throttle cellular speeds to preserve data &amp; reduce charges.</p>
<p>In addition, we can configure one or more IP addresses to check uplink connectivity. These addresses will be used to collect loss &amp; latency data via the cellular connection. The MG monitoring dashboard will collect &amp; graph this data for easy insight into the performance metrics.</p>
<p><strong>Note: As a word of warning, these uplink monitors are constantly sending ICMP/ping requests. If you have a limited amount of cellular data, this may consume more data than you would like. In my testing, using only one IP for uplink monitoring consumed about 70-100M per day. More on this below&hellip;</strong></p>
<h2 id="monitoring-the-mg">Monitoring the MG</h2>
<p>Now we get to the good stuff! The primary reason I opted to buy an MG was for monitoring &amp; analytics.</p>
<p>Back on the dashboard, if we use the lefthand menu - we&rsquo;ll go over to <strong>Cellular Gateway &gt; Monitor &gt; Cellular Gatways</strong>. Then select our MG out of the list.</p>
<p>The primary summary page isn&rsquo;t too exciting:</p>
<p><img alt="blog-09" loading="lazy" src="/content/images/2020/08/blog-09.png#center"></p>
<p>The MG does have two gigabit ethernet ports - and we&rsquo;ll see the status here.</p>
<p>We&rsquo;ll also see the connectivity history to the Meraki cloud - which in my case is nearly 100%. Seems like one <em>very</em> minor blip just after 4am.</p>
<p>We can also see the current network utilization on the MG. This is great to have - though my current utilization is pretty low&hellip; (I am using this as a backup modem, after all).</p>
<p>On the left side of the page, we&rsquo;ll see some of the usual info we expect from a Meraki device. Current IP, location, Serial number, and IMEI. Just below the view of the screenshot, there is also an indicator for firmware version.</p>
<p>Onto the <strong>Uplink</strong> tab! Let&rsquo;s see what we have:</p>
<p><img alt="blog-10" loading="lazy" src="/content/images/2020/08/blog-10.png#center"></p>
<p>First we&rsquo;ll see the <strong>Configuration</strong> section. This just gives us a quick view into what settings the MG currently has.</p>
<p>We&rsquo;ll see the current IP info provided by our carrier, and also some statistics on our cellular connection.</p>
<p>Just below that info, we&rsquo;ll see our cellular graphs:</p>
<p><img alt="blog-11" loading="lazy" src="/content/images/2020/08/blog-11.png"></p>
<p>This is what I wanted! It&rsquo;s great to see a quick view into what our active uplink traffic is - as well as look back historically at what our LTE signal quality has been.</p>
<p>Not pictured here - but there is also a section of graphs on this page for our uplink monitor. This is where we can see our current &amp; historical loss &amp; latency stats for the cellular connection. After a few days of use - I disabled the uplink monitor due to the amount of data the feature consumes.</p>
<p>Finally, we also have the <strong>DHCP</strong> tab:</p>
<p><img alt="blog-12" loading="lazy" src="/content/images/2020/08/blog-12.PNG#center"></p>
<p>This will show our current DHCP subnet &amp; any clients that have been provided an address. In my case, there isn&rsquo;t any current leases here - because my firewall has a fixed IP.</p>
<h2 id="performance--considerations">Performance &amp;&amp; Considerations</h2>
<p>I&rsquo;ve had the MG running for about a week now, and wanted to provide some things to think about.</p>
<p>First - How does the modem perform? Well, the first day I had it set up - I was able to get ~150M download speeds using the MG&rsquo;s built-in speed test utility:</p>
<p><img alt="blog-13" loading="lazy" src="/content/images/2020/08/blog-13.PNG#center"></p>
<p>That being said - I&rsquo;m lucky if I get 30-50M on an average day. I might have just gotten lucky that day with some light cellular utilization in my area. Overall though, I&rsquo;m pleased with the speeds I get - they&rsquo;ll certainly fit my needs.</p>
<p>For the few days that I had the uplink monitoring running, I saw good results. Usually 0% packet loss, with a rare spike of 5-10%. Latency was a little less reliable, but usually bounced between 50-150ms. This was also much less than the NetGear modem I had been using, which averaged 200-250ms.</p>
<p>Speaking of uplink tests! Let&rsquo;s talk about data usage&hellip;.</p>
<p>By default, the MG communicates intermittently with the Meraki cloud - which consumes some data. By my measurement, this is usually less than 10Mb/day. No problem here.</p>
<p>The uplink tests, on the other hand, <strong>do</strong> consume a bit of data. I&rsquo;m not sure what frequency these run on, but it&rsquo;s fairly often. Even with one uplink monitor to 8.8.8.8 configured, I was seeing data usage of 70-100Mb a day.</p>
<p>While seeing those metrics is valuable to me, it&rsquo;s also not worth the data charges. If I was using a SIM card with an unlimited data plan - no doubt I would keep this feature enabled. However, since I am paying for the cell data used - I opted to disable this feature.</p>
<p>The MG does still perform it&rsquo;s check-ins to the Meraki Cloud - so you&rsquo;ll have availability statistics &amp; monitoring&hellip; But disabling the uplink monitor means you&rsquo;ll lose the granular data on loss &amp; latency.</p>
<p>Lastly, and another word of warning, when you&rsquo;re actively viewing the MG monitoring page - this <strong>also consumes additional data</strong>. To demonstrate - I&rsquo;ll post a snippet of the screenshot from earlier:</p>
<p><img alt="blog-14" loading="lazy" src="/content/images/2020/08/blog-14.png#center"></p>
<p>If you notice, all the way on the far left there was barely any activity. However, once I loaded the MG monitoring page - you begin to see minor spikes in data usage as the Meraki Cloud starts actively polling the MG for data.</p>
<p>In my experience so far, this isn&rsquo;t a ton of data. I&rsquo;ve checked in to see how the MG has been performing a few times this week, and each time has totaled around 10-15Mb of data usage.</p>
<p>To sum up - I&rsquo;m cheap and want to avoid excess data usage. Just wanted to provide some of that info as something to be aware of.</p>
<h2 id="final-thoughts">Final Thoughts</h2>
<p>I&rsquo;m only a week in, but pretty pleased with the MG&rsquo;s performance. It&rsquo;s maintained a very solid &amp; stable connection compared to the NetGear modem it replaced. The device is intended to provide LTE connectivity or backup service for business networks, so I would certainly hope it would meet my home needs :)</p>
<p>Outside of that, I do wish there was a little better documentation &amp; clarity from the Meraki team on data usage. Right now their documentation only mentions the 6-8Mb of usage due to backend data to/from the Meraki Cloud:</p>
<p><img alt="blog-15" loading="lazy" src="/content/images/2020/08/blog-15.PNG#center"></p>
<p>I would be happy to see additional settings on the uplink monitor to allow me to choose the polling frequency. I feel like throttling down the amount of requests could reduce data to a point where I would be comfortable re-enabling that feature.</p>
<p><del>Oh - and currently there are no native email alerts for the MG. So if the MG goes offline, etc&hellip; there is no alerting from the Meraki Dashboard. This kinda sucks. I&rsquo;m sure this is coming soon, but for the time being I&rsquo;m inclined to write my own monitor using the Dashboard APIs.</del> (see note below!)</p>
<p>Overall, I&rsquo;m happy with the device. Definitely looking forward to future feature &amp; firmware updates to see where the Meraki team takes this platform!</p>
<hr>
<p><em>Update 08/28/2020 - Looks like in the week since I posted this, Meraki added alerting for the MG! Now you can be notified if the cell gateway goes offline:</em></p>
<p><img alt="blog-16" loading="lazy" src="/content/images/2020/08/blog-16.PNG#center"></p>
]]></content:encoded>
    </item>
    <item>
      <title>How To: Convert Catalyst 9100 AP to Embedded WLC</title>
      <link>https://0x2142.com/how-to-convert-catalyst-9100-ap-to-embedded-wlc/</link>
      <pubDate>Tue, 05 May 2020 16:19:35 +0000</pubDate>
      <guid>https://0x2142.com/how-to-convert-catalyst-9100-ap-to-embedded-wlc/</guid>
      <description>A tutorial for converting a Cisco 9100 series wireless access point to host an embedded controller</description>
      <content:encoded><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/NBt370eiQ3I?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p>Hey there! First thing&rsquo;s first - Hope all is well with everyone. The past few months have seen all sorts of craziness going on in the world. I&rsquo;ve been lucky in the sense that my current job role was already well set up to make an easy transition to working from home all the time. That being said, I know it hasn&rsquo;t been easy for everyone - and I know quite a few people who have lost their jobs, etc.</p>
<p>Second thing! As I&rsquo;m sure you may have already seen above - I opted to spend some of my new-found free time trying out a new format. I&rsquo;ve had a couple of ideas in the past for making short videos, but never forced myself to sit down and give it a shot. So here we are - after about a month of on-and-off work - I finally have something to share. Please give it a look if you&rsquo;re interested, and I would appreciate any comments &amp; feedback. I still have a few other ideas - so if this one goes well I may pursue producing a few more of these.</p>
<p>Okay - Now onto the real content!</p>
<hr>
<p>A few months ago I had the chance to pick up a pair of Cisco Catalyst 9100 series access points from work. My home network has been running on Ubiquiti APs for years - but they&rsquo;re getting old and I desperately needed to replace them. So along comes the Catalyst 9100 APs, which are capable of supporting 802.11ax clients - and why not take the time to upgrade &amp; future proof? I needed some practice anyways, as I have a few customers at work that I think will be interested in these in the near future. I ended up with two 9120AXI APs.</p>
<p>So in the process of trying to dive on the opportunity to play with something new - I completely missed the fact that the 9100 APs have two different product SKUs. One which ships the AP pre-configured with the standard lightweight AP code that you might use if you had an external wireless LAN controller (WLC). And a second SKU that ships the AP with the Catalyst 9800 Embedded WLC (eWLC) software loaded. Of course, I grabbed the lightweight APs without checking.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Product SKUs (Example, using 9120AXI):
</span></span><span class="line"><span class="cl"> - Standard Lightweight AP: C9120AXI
</span></span><span class="line"><span class="cl"> - Pre-load with Embedded WLC: C9120AXI-EWC
</span></span></code></pre></div><p>I wrote in a previous blog about getting <a href="/how-to-catalyst-9800-mac-filtering/">MAC address filtering</a> set up on the Catalyst 9800 WLC. When I wrote that blog I was actually using the C9800-CL, which is a virtual machine version of the Catalyst 9800 controller software. I was originally excited to run the controller as a VM and not need a hardware appliance - but then got to thinking that maybe I should try and save VM resources as well. Which led me to looking at the 9800 eWLC.</p>
<hr>
<h2 id="finding-the-software-image">Finding the Software Image</h2>
<p>In order to convert an existing lightweight access point to one running the embedded WLC software - we first need to grab a copy of the software images from Cisco.com. Search for the model of your 9100 access point (in my case, the 9120AXI).</p>
<p>You&rsquo;ll see two options for Software Type - and it may not immediately be obvious - but we&rsquo;ll need to look under IOS XE Software to find the eWLC images:</p>
<p><img alt="image" loading="lazy" src="/content/images/2020/05/image.png#center"></p>
<p>Then we&rsquo;ll grab the EWC AP image bundle. In my case, I was waiting on a specific feature set that wasn&rsquo;t available until 17.x - so I downloaded the 17.2.1 software:</p>
<p><img alt="image" loading="lazy" src="/content/images/2020/05/image-1.png#center"></p>
<p>Okay - after we&rsquo;ve done that - let&rsquo;s drop everything onto a server/laptop/etc which has console connectivity to our AP and a running TFTP server.</p>
<p>Once you un-zip the contents of that AP image bundle, you&rsquo;ll notice there are quite a number of files. We&rsquo;ll only need two of them - one image to load onto the AP itself, and one that will get loaded for the WLC software container. Within the image bundle, there will be a <strong>readme.txt</strong> file that will tell you which image to use with your AP:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">ap1g5 : AP1815, AP154x
</span></span><span class="line"><span class="cl">ap1g4 : AP180x, AP183x, AP185x
</span></span><span class="line"><span class="cl">ap1g7 : C9115, C9120
</span></span><span class="line"><span class="cl">ap1g6 : C9117
</span></span><span class="line"><span class="cl">ap1g6a : C9130
</span></span><span class="line"><span class="cl">ap3g3 : AP380x, AP280x, AP156x
</span></span></code></pre></div><p>So in my case, I would use the file named <strong>ap1g7</strong> since I had the 9120 APs. In addition, you should also see a file named <strong>C9800-AP-iosxe-wlc.bin</strong>which we&rsquo;ll need to load the controller.</p>
<p>What&rsquo;s with that second image? Well - the Catalyst 9100 APs include a feature called Application Hosting (also found on some of the Catalyst 9000 series switches). This is equivalent to running a Linux container or Docker container directly on the AP hardware. At time of writing, this is only available for the embedded WLC software. However,  there will be a future software update that will allow you to provision other software containers as well (according to the data sheet).</p>
<h2 id="converting-the-access-point">Converting the Access Point</h2>
<p>Now we can get started on the actual conversion process. If it&rsquo;s a new AP, we can just go ahead and boot it up with a console cable connected. If it&rsquo;s already running something, you&rsquo;ll likely want to factory reset the AP first. You can find detailed instructions <a href="https://www.cisco.com/c/en/us/support/docs/wireless/embedded-wireless-controller-on-catalyst-access-points/215303-embedded-wireless-controller-conversion.html#anc7">here</a>, but a quick summary - power off the AP, hold the <strong>mode</strong> button while plugging the AP back in, and keep the <strong>mode</strong> button held for at least 20-30 seconds. If you&rsquo;re logged into the console during this time - you&rsquo;ll actually see the AP counting how long you&rsquo;ve held the button for. Once that counter shows at least 20 seconds, release the <strong>mode</strong>button and allow the AP to reboot.</p>
<p>Once the AP is booted. The default login is <strong>Cisco</strong> / <strong>Cisco</strong>. The enable password is also <strong>Cisco</strong>. You may also want to quickly issue a <strong>show version</strong>, and take note of the current software version running on the AP (hint: we&rsquo;ll need that later).</p>
<p>Next - it&rsquo;s important to note that <em>after</em> we convert the AP - our default CLI will actually be the WLC, <strong>not</strong> the AP (even when connected via console). So we should configure a hostname and IP address for the AP now:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">0xAP# capwap ap hostname &lt;hostname&gt;
</span></span><span class="line"><span class="cl">0xAP# capwap ap ip &lt;ip-addr&gt; &lt;netmask&gt; &lt;gateway&gt;
</span></span></code></pre></div><p>Then we can load the new AP image and  WLC image. Depending on which software version you&rsquo;re running today, there is a different command to load the image:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">0xAP# ! If you&#39;re running software 8.9 or lower, use the following:
</span></span><span class="line"><span class="cl">0xAP# ap-type mobility-express &lt;TFTP path to AP image&gt; &lt;TFTP path to WLC image&gt;
</span></span><span class="line"><span class="cl">0xAP# ! If you&#39;re running anything above 8.9, use the following:
</span></span><span class="line"><span class="cl">0xAP# ap-type ewc-ap &lt;TFTP path to AP image&gt; &lt;TFTP path to WLC image&gt;
</span></span></code></pre></div><p>Once those commands are submitted, the AP will begin copying the software from the TFTP server. The AP will automatically reboot after the image load is completed.</p>
<p>Quick note: For one of my APs, the WLC software didn&rsquo;t load correctly - and when my AP rebooted I was left with an error that said &ldquo;EWC-AP in Recovery Mode&rdquo;. Re-copying the WLC image fixed it without much trouble. If this happens, the AP will print out the command to re-image the WLC software, but I&rsquo;ll also put it here for reference:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">0xAP# ! If you end up in &#34;EWC-AP Recovery Mode&#34;, run the following:
</span></span><span class="line"><span class="cl">0xAP# archive download-sw ewc-ap &lt;TFTP path to WLC image&gt;
</span></span></code></pre></div><p>Okay - Once our AP has come back from loading up all the new software, we can get on with a bit of minimal config required to access the WLC web UI.</p>
<p>First, we&rsquo;ll configure the WLC hostname &amp; our local user account. This can be switched over later to your choice of directory service:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">0xC9800eWLC# config t
</span></span><span class="line"><span class="cl">0xC9800eWLC(config)# hostname &lt;hostname&gt;
</span></span><span class="line"><span class="cl">0xC9800eWLC(config)# user-name &lt;admin username&gt;
</span></span><span class="line"><span class="cl">0xC9800eWLC(config-user-name)# password &lt;admin password&gt;
</span></span><span class="line"><span class="cl">0xC9800eWLC(config-user-name)# privilege 15
</span></span></code></pre></div><p>Next we&rsquo;ll also provide the WLC with the administrative credentials used to manage the connected APs:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">0xC9800eWLC(config)# ap profile &lt;profile-name&gt;
</span></span><span class="line"><span class="cl">0xC9800eWLC(config-ap-profile)# mgmtuser username &lt;AP admin user&gt; password 0 &lt;AP admin password&gt; secret 0 &lt;AP admin secret&gt;
</span></span></code></pre></div><p>After that, we&rsquo;ll go ahead and configure our basic network settings. This will be the IP address &amp; gateway info that will be used to connect to the WLC web UI and SSH:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">0xC9800eWLC(config)# interface gigabit 0 
</span></span><span class="line"><span class="cl">0xC9800eWLC(config-if)# ip address &lt;managemnt IP&gt; &lt;Network mask&gt;
</span></span><span class="line"><span class="cl">0xC9800eWLC(config-if)# no shut
</span></span><span class="line"><span class="cl">0xC9800eWLC(config)# ip default-gateway &lt;Gateway IP address&gt;
</span></span></code></pre></div><p>Lastly - we&rsquo;ll need to actually enable the web server. In my case, I opted to not enable the standard HTTP server. I only enabled the encrypted SSL-enabled web server:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">0xC9800eWLC(config)# ! I only enabled the HTTPS server:
</span></span><span class="line"><span class="cl">0xC9800eWLC(config)# ip http secure-server
</span></span><span class="line"><span class="cl">0xC9800eWLC(config)# ! If you wanted to enable the plain-text / unencrypted web server:
</span></span><span class="line"><span class="cl">0xC9800eWLC(config)# ip http server
</span></span><span class="line"><span class="cl">0xC9800eWLC(config)# 
</span></span><span class="line"><span class="cl">0xC9800eWLC(config)# ! Finally - Save the config
</span></span><span class="line"><span class="cl">0xC9800eWLC(config)# exit
</span></span><span class="line"><span class="cl">0xC9800eWLC# wr mem
</span></span></code></pre></div><p>When we save our config for this first time, the AP will verify that the initial configuration pieces have been completed. There is a bit of background cleanup that is performed - which removes any factory config that assisted with provisioning. Once that&rsquo;s all done - we&rsquo;re free to log into the web UI!</p>
<h2 id="embedded-wlc-web-interface">Embedded WLC Web Interface</h2>
<p>I won&rsquo;t spend a lot of time here, as there are far too many things to cover with the new 9800 series controllers. However, I did want to point out a few things that stand out regarding the Embedded WLC.</p>
<p>When we log into our WLC web UI - we&rsquo;ll be able to use the username &amp; password combo that we configured previously. Then we&rsquo;ll be dropped into our WLC dashboard.</p>
<p><img alt="image" loading="lazy" src="/content/images/2020/05/image-2.png#center"></p>
<blockquote>
<p>*Note: Screenshot taken a bit after I did my initial config. This has been running a bit now&hellip;</p></blockquote>
<p>If we click on the number under the <strong>Access Points</strong> heading, we&rsquo;ll be taken to a quick monitoring view of the current connected APs:</p>
<p><img alt="image" loading="lazy" src="/content/images/2020/05/image-3.png#center"></p>
<p>Here we can see the APs we have configured, along with their IP address &amp; status info. We will also see what our <strong>Current Active</strong> WLC controller is, and what our <strong>Current Standby</strong> / <strong>Preferred Active</strong> if we have either configured.</p>
<p>By default, if we boot up a second AP running the embedded WLC software, it will automatically join the WLC cluster as the secondary node. Any WLC config/settings will be copied, then it&rsquo;s ready in case the primary controller fails. In the event of a failure, the secondary WLC will take over - and be accessible using the same IP &amp; login info that we used on the primary.</p>
<p>In my case, I&rsquo;ve also configured one of my APs as a preferred primary controller. For me, this AP is connected to a switch that has a short battery backup - so it&rsquo;s less likely to experience failure. This option can be configured on the individual AP itself. In the left-hand menu, drop into the <strong>Configuration</strong> section, then click on <strong>Access Points</strong> under the <strong>Wireless</strong> header. We&rsquo;ll see a very similar screen to the AP monitoring screen from above. Click on the AP that we want to make our preferred primary, then jump over to the <strong>Advanced</strong> tab. There will be a checkbox for <strong>Preferred Controller</strong>:</p>
<p><img alt="image" loading="lazy" src="/content/images/2020/05/image-4.png#center"></p>
<h2 id="wlc-image-repository">WLC Image Repository</h2>
<p>Last thing - and this one is important. Normally the WLC will have dedicated storage to keep AP software images, which it distributes to new APs when they come online. Unfortunately, while we gain the flexibility and limited footprint of the embedded WLC - we also lose that dedicated storage space. As you might imagine, storage on the AP is limited.</p>
<p>So we&rsquo;ll need to make sure that the WLC has an external image repository that it can use. This configuration can be done via teh web UI and CLI. I&rsquo;ll cover both very quickly here.</p>
<p>From the web UI -  We&rsquo;ll go to <strong>Administration</strong> &gt; <strong>Software Management</strong>:</p>
<p><img alt="image" loading="lazy" src="/content/images/2020/05/image-5.png#center"></p>
<p>Here we&rsquo;ll see our options for where to get images, as well as an inventory of current APs &amp; their images. In the <strong>Mode</strong> drop-down, we&rsquo;ll have the option of tftp, sftp, CCO, and Desktop. TFTP / SFTP are what we&rsquo;re used to. With <strong>Desktop</strong>, we would just upload images directly from our laptop / PC. Interestingly though, <strong>CCO</strong> allows us to provide our Cisco.com credentials - and the controller can pull images directly from Cisco. We&rsquo;ll even have the option to enable automatic software downloads - and specify whether we want to auto-download the latest software release, or only the latest <em>recommended</em> release.</p>
<p>On the CLI side of things - we can accomplish the same using the following commands on our WLC CLI:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">0xC9800eWLC(config)# wireless profile image-download &lt;profile name&gt;
</span></span><span class="line"><span class="cl">0xC9800eWLC(config-wireless-image-download-profile)# image-download mode tftp
</span></span><span class="line"><span class="cl">0xC9800eWLC(config-wireless-image-download-profile-tftp)# tftp-image-server &lt;IP address&gt;
</span></span><span class="line"><span class="cl">0xC9800eWLC(config-wireless-image-download-profile-tftp)# tftp-image-path &lt;path to image files&gt;
</span></span></code></pre></div><p>With that, any new APs that join our WLC should be able to auto-load the software necessary.</p>
<hr>
<p>Thanks for reading!</p>
]]></content:encoded>
    </item>
    <item>
      <title>How to: Catalyst 9800 MAC Filtering</title>
      <link>https://0x2142.com/how-to-catalyst-9800-mac-filtering/</link>
      <pubDate>Tue, 12 Nov 2019 15:35:07 +0000</pubDate>
      <guid>https://0x2142.com/how-to-catalyst-9800-mac-filtering/</guid>
      <description>A tutorial on configuring MAC address filtering on a Cisco 9800 WLC</description>
      <content:encoded><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/rWupjgsF0HM?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p><strong>Update 2020 / 05 / 19</strong> - I&rsquo;ve added a video above that walks through the steps detailed in this blog post.</p>
<blockquote>
<p>If you&rsquo;re using the &lsquo;Basic&rsquo; Wireless setup, you may see an error when trying to apply the policy: &ldquo;switch 1 dbm wireless Use of default ACL preauth v4 is not permitted&rdquo;</p>
<p>If you come across this error, it&rsquo;s a known bug (<a href="https://quickview.cloudapps.cisco.com/quickview/bug/CSCvt18875">CSCvt18875</a>) specific to only the &lsquo;Basic&rsquo; setup wizard (which is what I used in this post below). If so, check out the video above which walks through the &lsquo;Advanced&rsquo; setup and bypasses this error.</p></blockquote>
<hr>
<p>I&rsquo;ve been spending a bit of time over the past few weeks building up a wireless lab. Trying to get a good understanding of how the new Catalyst 9800 wireless controller works, and how it differs from some of the previous iterations.</p>
<p>In order to play around with the new controller, I decided to try to build a new configuration that mimics my current home wireless. Today I am using Ubiquiti APs, which come with their own free controller software. Most of my current config is fairly straightforward - a few SSIDs, two APs, and a guest network with captive portal. One of my SSIDs is dedicated to any IoT devices and is more restrictive than the other networks. This network uses both a pre-shared key for authentication as well as MAC-based filtering.</p>
<p>In this post - we&rsquo;ll walk through how to set up a new SSID with client MAC filtering.</p>
<p><em>Note: This was written using Catalyst 9800-CL version 16.12.1s. APs are configured in flexconnect with local authentication (no AAA, ISE, etc)</em></p>
<hr>
<p>While this post is not focused on in-depth WLAN config, we will start by quickly setting up a new network.</p>
<p>Once you get logged into the controller - we&rsquo;ll click on the <strong>Wireless Setup</strong> icon in the upper right-hand side. Then drop down to the <strong>Basic</strong> option:</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-01.jpg#center"></p>
<p>This takes us through a pretty quick and easy wizard to set up our new location &amp; wireless networks. At first, we will have no locations configured - so we will click <strong>Add:</strong></p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-02-.jpg#center"></p>
<p>We&rsquo;ll start off building our location by giving it a name and description. These are used for some naming of policy objects within the WLC, so make sure to use a name that makes sense.</p>
<p>In my case, I&rsquo;m also going with a flexconnect deployment - so we&rsquo;ll select that option and also provide the AP native VLAN.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-03.png#center"></p>
<p>Next, we&rsquo;ll click over to the <strong>Wireless Networks</strong> tab. This is where we will create our WLAN and apply the initial configuration. We don&rsquo;t have any networks yet, so click <strong>Add</strong></p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-04.jpg#center"></p>
<p>The two primary things we need to address are highlighted in red below. We need to create a WLAN and assign it to a VLAN. Let&rsquo;s start with the WLAN by clicking <strong>Define new.</strong></p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-05.png#center"></p>
<p>On the <strong>General</strong> tab, we&rsquo;ll give this WLAN a profile name and a SSID.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-06.jpg#center"></p>
<p>Next, we&rsquo;ll hop on over to the <strong>Security</strong> tab, and focus on the <strong>Layer 2</strong> sub-tab. The first thing I want to point out - is that at this point, we will not be enabling the <strong>MAC Filtering</strong> checkbox. We&rsquo;ll need some additional config first, then come back to this later.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-07.jpg#center"></p>
<p>Scroll down to the bottom of the window and there will be some settings for your authentication. By default, <strong>802.1x</strong> will be enabled. This post won&rsquo;t cover how to setup/configure that. Instead, we&rsquo;ll be deselecting <strong>802.1x</strong> and checking the box for <strong>PSK.</strong> Then a text field will appear for us to enter the <strong>Pre-Shared Key</strong>.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-08.jpg#center"></p>
<p>Once we click <strong>Apply to Device</strong>, we&rsquo;ll finish up by assigning our <strong>VLAN or VLAN Group</strong>. In this case, I have already created a VLAN named <strong>IoT</strong>. If you haven&rsquo;t created a VLAN yet, you can do so by going to <strong>Configuration</strong> &gt; <strong>Layer 2</strong> &gt; <strong>VLAN.</strong> Then add a new VLAN under the <strong>VLAN</strong>tab.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-09.png#center"></p>
<p>Click <strong>Add</strong>, then we&rsquo;ll be back to the wizard and see the new WLAN we just created.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-10.jpg#center"></p>
<p>In order to finish up with the wizard, we just need to assign our Access Points. Click on the <strong>AP Provisioning</strong> tab. If you have already configured APs to join to this controller, you will see them on the left side under <strong>Available APs</strong>. Check which ones to apply this WLAN to, then click the arrow to move them to <strong>APs on this location.</strong></p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-11.jpg#center"></p>
<p>Click <strong>Apply</strong>, and that will finalize all of the configuration we just did - then drop us back to the <strong>Wireless Setup</strong> page.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/New-wireless-net-12.jpg#center"></p>
<p>Okay - Now that we have that completed, we can move onto creating our MAC filtering policies.</p>
<p>Back in the menu - Let&rsquo;s go to <strong>Configuration</strong> &gt; <strong>Security</strong> &gt; <strong>AAA</strong></p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/mac-auth-01.jpg#center"></p>
<p>In this section - we first need to create an Authorization policy. Select the <strong>AAA Method List</strong> tab, then <strong>Authorization</strong>, then <strong>Add</strong> to create the new policy.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/mac-auth-02.jpg#center"></p>
<p>In here we&rsquo;ll specify a name, then select <strong>Type: network</strong>, and <strong>Group Type: local</strong>. Then go ahead and <strong>Apply to Device</strong></p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/mac-auth-03.jpg#center"></p>
<p>Once we have that, let&rsquo;s go over to the <strong>AAA Advanced</strong> tab, and click <strong>Add</strong> in the <strong>Attribute List Name</strong> section.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/mac-auth-04.jpg#center"></p>
<p>Here we need to provide the SSID we want our MAC policy to apply to. Under <strong>Attribute Type</strong>, select <strong>SSID.</strong> Then under <strong>Attribute Value</strong>, select the target SSID that our policy will be tied to.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/mac-auth-05.jpg#center"></p>
<p>Don&rsquo;t forget to click <strong>Save</strong> on the attribute before clicking <strong>Apply to Device</strong>!</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/mac-auth-06.jpg#center"></p>
<p>Time to input our list of device MAC addresses! Drop into the <strong>Device Authentication</strong> section, and click <strong>Add</strong> - or upload a CSV file if you have one.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/mac-auth-07.jpg#center"></p>
<p>Input the device <strong>MAC Addrees</strong> and select the <strong>Attribute List Name</strong> that we configured just a minute ago. Then <strong>Apply to Device</strong></p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/mac-auth-08-1.jpg#center"></p>
<p>After that - we should have our completed list of MAC addresses which will be permitted to join our wireless network. All we need to do is go back to our WLAN and enable MAC filtering.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/mac-auth-09.jpg#center"></p>
<p>Let&rsquo;s go to <strong>Configuration</strong> &gt; <strong>Tags &amp; Profiles</strong> &gt; <strong>WLANs</strong></p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/config-wlans-01.jpg#center"></p>
<p>This should give us the list of any configured WLANS - including the one we created earlier. Go ahead and click on it to edit.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/config-wlans-02.jpg#center"></p>
<p>Next, we&rsquo;ll jump straight to the <strong>Layer 2</strong> section under the <strong>Security</strong> tab. Check the box for <strong>MAC Filtering</strong> and select the <strong>Authorization List</strong> we created from the drop down.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/11/config-wlans-03.jpg#center"></p>
<p>And we&rsquo;re done! Clients that want to join our newly created SSID will need the pre-shared key we configured, but they will also need to be manually added to our MAC address filter as well.  While this isn&rsquo;t a perfect security measure since MAC addresses can be easily spoofed - it does add an extra layer of protection to keep unauthorized devices from inadvertently being able to join this specific WLAN.</p>
<hr>
<p>In the event that a client is NOT on the authorized list, you may see the following logs in a client debug:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">2019/10/25 22:26:12.327 {wncd_x_R0-0}{1}: &amp;#91;client-orch-sm] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  Association received. BSSID aaaa.aaaa.b34d, old BSSID 0000.0000.0000, WLAN SuperSecret, Slot 1 AP aaaa.aaaa.b340, AP_3802-1F01
</span></span><span class="line"><span class="cl">2019/10/25 22:26:12.327 {wncd_x_R0-0}{1}: &amp;#91;client-orch-state] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  Client state transition: S_CO_INIT -&gt; S_CO_ASSOCIATING
</span></span><span class="line"><span class="cl">2019/10/25 22:26:12.328 {wncd_x_R0-0}{1}: &amp;#91;client-orch-state] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  Client state transition: S_CO_ASSOCIATING -&gt; S_CO_MACAUTH_IN_PROGRESS
</span></span><span class="line"><span class="cl">2019/10/25 22:26:12.328 {wncd_x_R0-0}{1}: &amp;#91;client-auth] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  MAB Authentication initiated. Policy VLAN 0, AAA override = 0, NAC = 0
</span></span><span class="line"><span class="cl">2019/10/25 22:26:12.329 {wncd_x_R0-0}{1}: &amp;#91;ewlc-infra-evq] &amp;#91;22573]: (note): Authentication Success. Resolved Policy bitmap:11 for client aaaa.aaaa.aaaa 
</span></span><span class="line"><span class="cl">2019/10/25 22:26:12.329 {wncd_x_R0-0}{1}: &amp;#91;ewlc-infra-evq] &amp;#91;22573]: (ERR): SANET_AUTHC_FAILURE - AAA Server Down username ac37434a673a, audit session id 000000000000006B3E9D2A55, 
</span></span><span class="line"><span class="cl">2019/10/25 22:26:12.331 {wncd_x_R0-0}{1}: &amp;#91;client-orch-state] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  Client state transition: S_CO_MACAUTH_IN_PROGRESS -&gt; S_CO_ASSOCIATING
</span></span><span class="line"><span class="cl">2019/10/25 22:26:12.331 {wncd_x_R0-0}{1}: &amp;#91;dot11] &amp;#91;22573]: (ERR): MAC: aaaa.aaaa.aaaa  Failed to assoc failure tr state entry. Incorrect validation status value :1
</span></span><span class="line"><span class="cl">2019/10/25 22:26:12.331 {wncd_x_R0-0}{1}: &amp;#91;dot11] &amp;#91;22573]: (ERR): MAC: aaaa.aaaa.aaaa  Dot11 update co assoc fail. Sent assoc failure to CO. delete reason: 9, CO_CLIENT_DELETE_REASON_MAB_FAILED
</span></span><span class="line"><span class="cl">2019/10/25 22:26:12.331 {wncd_x_R0-0}{1}: &amp;#91;client-orch-sm] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  Client delete initiated. Reason: CO_CLIENT_DELETE_REASON_MAB_FAILED, fsm-state transition
</span></span></code></pre></div><p>On the opposite side, when a client is successfully able to pass MAC authentication - the logs will show the following:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">2019/10/25 21:25:53.148 {wncd_x_R0-0}{1}: &amp;#91;client-auth] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  MAB Authentication initiated. Policy VLAN 0, AAA override = 0, NAC = 0
</span></span><span class="line"><span class="cl">2019/10/25 21:25:53.150 {wncd_x_R0-0}{1}: &amp;#91;ewlc-infra-evq] &amp;#91;22573]: (note): Authentication Success. Resolved Policy bitmap:11 for client aaaa.aaaa.aaaa 
</span></span><span class="line"><span class="cl">2019/10/25 21:25:53.151 {wncd_x_R0-0}{1}: &amp;#91;client-auth] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  MAB Authentication success.
</span></span><span class="line"><span class="cl">2019/10/25 21:25:53.151 {wncd_x_R0-0}{1}: &amp;#91;client-orch-state] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  Client state transition: S_CO_MACAUTH_IN_PROGRESS -&gt; S_CO_ASSOCIATING
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">2019/10/25 21:30:08.626 {wncd_x_R0-0}{1}: &amp;#91;client-orch-sm] &amp;#91;22573]: (debug): MAC: aaaa.aaaa.aaaa  Received Dot11 association request. Processing started,SSID: SuperSecret2, Policy profile: Home_WLANID_3, AP Name: AP_3802-3F01, Ap Mac Address: aaaa.aaaa.c9a0 BSSID MAC aaaa.aaaa.b34d wlan ID: 3RSSI: 0, SNR: 32
</span></span><span class="line"><span class="cl">2019/10/25 21:30:08.626 {wncd_x_R0-0}{1}: &amp;#91;client-orch-state] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  Client state transition: S_CO_L2_AUTH_IN_PROGRESS -&gt; S_CO_L2_AUTH_IN_PROGRESS
</span></span><span class="line"><span class="cl">2019/10/25 21:30:08.626 {wncd_x_R0-0}{1}: &amp;#91;dot11] &amp;#91;22573]: (info): MAC: aaaa.aaaa.aaaa  DOT11 state transition: S_DOT11_ASSOCIATED -&gt; S_DOT11_MAB_PENDING
</span></span><span class="line"><span class="cl">2019/10/25 21:30:08.626 {wncd_x_R0-0}{1}: &amp;#91;client-orch-state] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  Client state transition: S_CO_L2_AUTH_IN_PROGRESS -&gt; S_CO_MACAUTH_IN_PROGRESS
</span></span><span class="line"><span class="cl">2019/10/25 21:30:08.626 {wncd_x_R0-0}{1}: &amp;#91;client-auth] &amp;#91;22573]: (info): MAC: aaaa.aaaa.aaaa  Client auth-interface state transition: S_AUTHIF_ADD_MOBILE_ACK_WAIT_KM -&gt; S_AUTHIF_MAB_AUTH_DONE
</span></span><span class="line"><span class="cl">2019/10/25 21:30:08.626 {wncd_x_R0-0}{1}: &amp;#91;client-orch-sm] &amp;#91;22573]: (debug): MAC: aaaa.aaaa.aaaa  Processing MAB authentication result status: 0, CO_AUTH_STATUS_SUCCESS
</span></span><span class="line"><span class="cl">2019/10/25 21:30:08.626 {wncd_x_R0-0}{1}: &amp;#91;client-orch-state] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  Client state transition: S_CO_MACAUTH_IN_PROGRESS -&gt; S_CO_ASSOCIATING
</span></span><span class="line"><span class="cl">2019/10/25 21:30:08.626 {wncd_x_R0-0}{1}: &amp;#91;dot11] &amp;#91;22573]: (debug): MAC: aaaa.aaaa.aaaa  dot11 send association response. Sending association response with resp_status_code: 0 
</span></span><span class="line"><span class="cl">2019/10/25 21:30:08.627 {wncd_x_R0-0}{1}: &amp;#91;dot11] &amp;#91;22573]: (info): MAC: aaaa.aaaa.aaaa  dot11 send association response. Sending assoc response of length: 137 with resp_status_code: 0, DOT11_STATUS: DOT11_STATUS_SUCCESS
</span></span><span class="line"><span class="cl">2019/10/25 21:30:08.627 {wncd_x_R0-0}{1}: &amp;#91;dot11] &amp;#91;22573]: (note): MAC: aaaa.aaaa.aaaa  Association success. AID 1, Roaming = True, WGB = False, 11r = False, 11w = False
</span></span><span class="line"><span class="cl">2019/10/25 21:30:08.627 {wncd_x_R0-0}{1}: &amp;#91;dot11] &amp;#91;22573]: (info): MAC: aaaa.aaaa.aaaa  DOT11 state transition: S_DOT11_MAB_PENDING -&gt; S_DOT11_ASSOCIATED
</span></span></code></pre></div>]]></content:encoded>
    </item>
  </channel>
</rss>
