WLAN Advanced

Cisco WLC, Bonjour and AirPlay – My Experience

Rowell Dionicio

Enterprise and Apple have this love/hate relationship. End users love Apple. IT tends to be hesitant in supporting the awesome features they come with. AirPlay is probably the most requested feature. Cisco didn't officially support Bonjour and AirPlay until version 7.4 in the Wireless LAN Controller. The latest revisions have improvements in supporting Bonjour and especially in the configuration.

In this post I will discuss configuration on the Cisco WLC version 7.6.100.0. What configuration is needed on your switches and how you can verify Bonjour is working. We'll get it working for devices on the same subnet and across different subnets, both wired and wireless.

I was able to test this with multiple iPads and a handful of iPhones. With 3rd party software I was able to use my Windows 8 laptop to AirPlay my screen to an Apple TV. No lag or jitter was encountered during my tests. To be fair, I do not have a lot of users hitting the wireless network to really see any performance hits.

Before configuring Bonjour, I performed a wireless site survey and made adjustments to provide proper coverage for connectivity and ensured there was no interference.

Cisco Wireless LAN Controller Requirements

To allow Bonjour to traverse the wireless network there will need to be some features enabled:

  • mDNS
  • Broadcast forwarding
  • Multicast
  • IGMP snooping

Broadcast Forwarding

Within the Cisco WLC interface, click on Controller and ensure you're in the General section. From this section, ensure Broadcast Forwarding is Enabled. This was required by one of our vendors. We use Savant AV equipment and to manage those devices, and to also allow Bonjour, we had to enable this feature. This is a global feature of the wireless LAN controller.

Additionally, change the AP Multicast Mode to Multicast and set a multicast address. When selecting a multicast address, pick one from the private multicast address space.

Enabling Cisco WLC Options
Click for a larger image

On the left pane, expand mDNS and click on General. In this window, enable mDNS Global Snooping. The Cisco WLC will enable some services for you. Depending on your needs for Bonjour, you'll either add or remove services.

To add a service, click on the drop down for “Select Service”, select the service required, enable Query Status, and then click Add.

To remove an existing service, hover your mouse over the blue arrow icon and select Remove.

Enabling mDNS
Enabling mDNS – Click for Larger Image

Moving on to Domain Names you will see a list of entries from devices currently communicating via Bonjour. Seeing devices in this section is a good sign.

mDNS Summary
Click for Larger

Notice the “Type” column. Initially, you probably will see only Wireless devices. In order to see Wired devices you must create an interface on the WLC within each subnet needing access to Bonjour services. Within that interface configuration the mDNS Profile should also be selected.

Cisco WLC Interfaces
Creating an Interface in the wired subnet
mDNS Profile Enabled
Set the mDNS Profile for the Interface

Another location to configure the mDNS Profile is within the WLAN Advanced Settings.

WLAN Advanced
Enabled the mDNS profile for the WLAN.

mDNS Browser is a handy tool to view what the controller can find on the network and what service string they are using.

mDNS Browser

 

Switch Configuration

First feature that must be enabled is multicast. Use this command on your switch to enable multicast:

ip multicast-routing

Next configuration item is to enter the VLAN interface and configure the sparse mode:

interface vlan vlan-id
ip pim sparse-mode

The main command is ip pim sparse-mode. What this command does is allow the SVI to join in sparse mode multicast traffic. The clients in that VLAN will be able to receive multicast traffic from different multicast groups. Sparse mode uses a pull model to deliver multicast traffic.

You can read more about Sparse Mode and the other modes on Cisco.com:

PIM-SM uses a pull model to deliver multicast traffic. Only network segments with active receivers that have explicitly requested the data will receive the traffic.
PIM-SM distributes information about active sources by forwarding data packets on the shared tree. Because PIM-SM uses shared trees (at least, initially), it requires the use of a rendezvous point (RP). The RP must be administratively configured in the network.

Sources register with the RP and then data is forwarded down the shared tree to the receivers. The edge routers learn about a particular source when they receive data packets on the shared tree from that source through the RP. The edge router then sends PIM (S, G) join messages towards that source. Each router along the reverse path compares the unicast routing metric of the RP address to the metric of the source address. If the metric for the source address is better, it will forward a PIM (S, G) join message towards the source. If the metric for the RP is the same or better, then the PIM (S, G) join message will be sent in the same direction as the RP. In this case, the shared tree and the source tree would be considered congruent.

After configuring the sparse mode for the SVI, we now enable IGMP snooping on the switch with this command:

ip igmp snooping vlan vlan-id

Verify IGMP snooping with:

show ip igmp snooping

SDG01-SVRM-CSW-3750-01#show ip igmp snooping
 Global IGMP Snooping configuration:
 -----------------------------------
 IGMP snooping : Enabled
 IGMPv3 snooping (minimal) : Enabled
 Report suppression : Enabled
 TCN solicit query : Disabled
 TCN flood query count : 2
 Last Member Query Interval : 1000
Vlan 1:
 --------
 IGMP snooping : Enabled
 IGMPv2 immediate leave : Disabled
 Explicit host tracking : Enabled
 Multicast router learning mode : pim-dvmrp
 Last Member Query Interval : 1000
 CGMP interoperability mode : IGMP_ONLY

Commands used to verify mDNS on the Cisco WLC:

show mdns profile summary
 show mdns profile detail <profile-name>
 show mdns service summary
 show mdns service detail <service-name>
 show interface det <interface-name>
 show interface group detail <interface-group-name>
 show wlan <wlan-id>
 show client detail <mac-address>
 show network summary
clear mdns service-database <service-name / all>
debug mdns message <enable|disable>
 debug mdns details <enable|disable>
 debug mdns error <enable|disable>
 debug mdns all <enable|disable>

Caveats Noticed

Sometimes I noticed reconnecting to the wifi network fixes any problems with connecting to Bonjour-enabled devices.
For printing, I’ve read that you must use a printer supported by Apple. So far I haven’t been able to get printing done successfully but I am unsure if it’s because I don’t have a printer on Apple’s list. This is after finding that the printer does support Bonjour.

My Thoughts

Cisco has a couple of different guides scattered around. I suggest learning how the Bonjour protocol works, how Cisco handles Bonjour, and learn about multicast.

What I haven’t tried yet is securing Bonjour. An example is not allowing a specific WLAN to see a Bonjour device on another subnet. A real world scenario would be providing a way for teachers to present to an Apple TV without a student interfering by displaying something inappropriate. Following Cisco’s documentation of using the WLC’s ACLs didn’t work for me. I ended up creating ACLs at the switch to control access.

Software that helped me was mDNS browser, AirParrot, and Reflector. All three were used for testing on my Windows 8 laptop and iPhone.

Did this blog post help? Let me know in the comments.

13 thoughts on “Cisco WLC, Bonjour and AirPlay – My Experience

  1. I was just wondering if the Bonjour services that are shown in the image above are the only ones that are required for your Savant system to work? We have the Airplay service added, so it works, but our Savant iPads cannot talk to the host reliably.

      1. Has anyone tried the Remote App? I can Airplay and use Remote App to control a Mac running iTunes, but the AppleTV won’t see the iPhone running remote app.

  2. Hi Kabayan,

    I did all the configuration you have specified above. I am able to detect all the bonjour services across the network and as well as the iPads see as well the Apple TV’s. However when I click on “mirror”, it won’t work and after 30 seconds the Airplay disconnects.

    Any idea?

    Thanks!

  3. Hi! Just read your article about Bonjour configuration and would like to know is the bonjur services also required for http://pc24.de/cisco/air-cap2602i-e-k9.html? I’m not the expert, but I was following the same steps that you described above and I haven’t any results. Maybe there is some problems with my WLC? or maybe I did something wrong? Thanks!

  4. Hi Rowell, have you try it with the new OS version 8.1? It used to work for me on 7.6 but I didn’t manage to make it work on 8.1 yet.

  5. Thank you for all your help. Your service was excellent and very FAST. Many thanks for you kind and efficient service. I have already and will definitely continue to recommend your services to others in the future.

  6. I had this working for the longest time, and now can’t figure out what changed…. maybe some application of one of the front page Cisco WLC Best Practice configs, but that was a long time ago and don’t recall what was changed. From a wireless client connected to a WLC running 8.5 airos I cannot see any wired Airplay devices (on the same VLAN). Wireless clients can see other wireless Airplay destinations.

Leave a Reply

Your email address will not be published. Required fields are marked *