Cisco Wireless Controller and various consumer range products does not work well together just out of the box, and the Sonos Sound System is no exception to that statement. The following describe the configurations needed to make Sonos and various other things like Chromecast work on a Cisco WLC solution.
Sonos among other solutions utilizes the Simple Service Discovery Protocol (SSDP) to discover devices on the network. SSDP uses the site-local multicast address 22.214.171.124 and UDP/1900 for IPv4. The Sonos controller software discovers the Sonos players by joining the multicast group 126.96.36.199 thus the network needs to support and forward multicast. This is different to Apple AirPlay which uses mDNS/Bonjour for advertisement of available services, hence multicast forwarding is not needed in that case.
As of this writing, my network topology is as follows
Cisco Catalyst 3560CG as the L3 device for the LAN network, a HP J9562A Switch 2915-8G-PoE that connects to the Wireless Access Points, Cisco AIR-2702i-E-K9 access points and a WLC2504 controller. The WLC has management and Dynamic AP Management on VLAN 30, the WAP is located on VLAN 100, Wired clients on VLAN 10 and wireless clients on VLAN 11.
WLC is running 188.8.131.52 software
The goal is to make both wired and wireless devices (Sonos players and Sonos controllers) work flawless. In order to make this happen, full end-to-end multicast routing and forwarding between the wired and wireless network is needed. The needed configuration is shown in the following sections
Configuration of Multicast for Sonos
Set the AP Multicast mode and group in the Controller –> General tab. Enter a valid Multicast group that is not used in the current network – i.e. 184.108.40.206. For the WLC2504 only Multicast mode is available, but on higher end controllers unicast is also available if desired (the WLC unicasts the multicast packets to every WAP joined to the controller – useful when native multicast between controller and APs is not possible).
Make sure P2P Blocking is disabled on the SSID intended for Sonos, as the devices need direct communication on the wireless network.
For multicast to work, we need an IGMP Querier on every segment/vlan that needs to identify IGMP Group, and we need multicast routing between the vlans.
Enable multicast routing
Globally enable mcast routing on the devices
ip multicast-routing distributed
Next, enable mcast routing on the SVI (switched virtual interface/Vlan interfaces)
interface Vlan10 ip pim passive ! interface Vlan11 ip pim passive ! interface Vlan30 ip pim passive ! interface Vlan100 ip pim passive !
The command “ip pim passive” enables PIM (Protocol Independent Multicast) on the interface. This has 2 purposes in this case – first it makes the device be a candidate for IGMP Querier and second it enables multicast routing on the interface. We need an IGMP Querier to manage the multicast tree on the different interfaces (in this case vlans) and we need multicast routing on the interface to make multicast connectivity end-to-end.
Next we need to configure a rendezvous point address (RP-address) for PIM to work in sparse mode. I my network the only L3 device running multicast is my 3560, so the RP-address is just pointing to a local loopback address.
ip pim rp-address 10.1.0.1
Downstream L2 switch
Since my access points are connected to a downstream Layer 2 switch, I would verify it runs IGMP to contain the multicast to the ports and devices wanting the traffic. IGMP Snooping is enabled by default on Cisco switches, but this is not the case for my HP 2915-8G-PoE.
To enable IGMP snooping on the HP ProCurve switch, the following commands are entered
vlan 100 ip igmp auto [PORTS]
Following are some verifications steps to ensure proper functionallity.
View multicast routing table
Show which ports have joined which groups
IGMP Group memberships and last reporter for the group
Notice the 220.127.116.11 is the SSDP group address for Sonos (and other devices) to discover each other, and the 18.104.22.168 is the group for WLC to AP multicast traffic. AP to WLC multicast is unicasted through the CAPWAP tunnel.
HP Layer 2 switch
Show the IGMP status of particular VLAN
Show Layer 3 Multicast groups
That’s about it… Enjoy… 🙂