In this article I will describe how to setup a Cisco WLC 5508 to work with Apple's Bonjour protocol across VLANs. I will also discuss using screen mirroring and Airplay on an AppleTV v3. This article covers the wireless network only and requires multicast to be functional on your wired network.
As Bonjour is a link local protocol (it's TTL is set to 0) it will not cross layer 3 boundaries on a network even if multicast routing is configured. To get around this problem and traverse VLANs/Subnets we will configure an AVAHI Gateway on Ubuntu Server.
From wikipedia we find a good Definition
"Bonjour is Apple's implementation of Zero configuration networking (Zeroconf), a group of technologies that includes service discovery, address assignment, and hostname resolution. Bonjour locates devices such as printers, other computers, and the services that those devices offer on a local network using multicast Domain Name System (mDNS) service records."
1. Cisco WLC
2. WLAN setup able to communicate with wired network
3. Virtual or Physical Ubuntu Server
4. Multicast functioning on wired network
5. APs NOT
running in FlexConnect mode
1. WLC 5508 with 22.214.171.124 firmware
2. VLAN 10 - Wired Network 1
3. VLAN 20 - Wired Network 2
4. VLAN 12 - Wireless Network 1
5. VLAN 22 - Wireless Network 2
6. Ubuntu Server 12.10
7. AppleTV v3
1. Configure Multicast on WLC 5508
1a. Login to web interface for WLC
1b. Click Controller at the top then Multicast in the left pane
1c. Check "Enable Global Multicast Mode"
1d. Check "Enable IGMP Snooping"
1e. Click Apply
2. Configure Multicast Distribution Mode to APs
(We will configure Multicast-Multicast mode rather than Multicast-Unicast mode to reduce the load on the controller and wired networks.)
2a. Click Controller at the top then General in the left pane
2b. Set "AP Multicast Mode" to "Multicast"
2c. Enter 126.96.36.199 as the Multicast Group Address (Per Cisco, do not use 224.x.x.x, 239.0.0.x, or 239.128.0.x address ranges)
2d. Click Apply
3. Verify Bonjour Is Being Snooped
3a. Click Monitor at the top then Multicast in the left pane
3b. Verify the address 188.8.131.52 is visable
4. Configure Ubuntu to run AVAHI Gateway
(**If you are not traversing VLANs with Bonjour (mDNS) skip to step 5)
4a. Configure Ubuntu's Switch port as trunk with native vlan 10
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk native vlan 10
4b. Install required packages in Ubuntu
sudo apt-get install vlan avahi-daemon avahi-utils
4c. Edit Avahi configuration file to enable reflector
4c1. sudo nano /etc/avahi/avahi-daemon.conf
4c2. look for line that reads #enable-reflector=no and change it to
4c3. Ctrl + O to save
4c4. Ctrl + X to exit nano
4d. Add interfaces for VLAN 12, 20, and 22 (vlan 10 is our trunk native vlan)
4d1. sudo vconfig add eth0 12 (WARNING: Could not open /proc/net/vlan/config can be safely ignored)
4d2. sudo dhclient eth0.12
4d3. Repeat steps 4d1 and 4d2 for remaining VLANs (20 and 22)
4d4. Restart AVAHI daemon - sudo /etc/init.d/avahi-daemon restart
4e. Verify AVAHI can see devices on the network by issuing the command
avahi-browse -all -t
5. Setup AppleTV
5a. Connect the AppleTV to the wired or wireless network (I suggest wired)
5b. Check Settings, Airplay menu to ensure Airplay is enabled
5c. On iOS device double tap the home button
5d. Swipe left to right once or twice to reveal the airplay menu
5e. Tap AirPlay icon, Select Apple TV, and turn Mirroring On.