Sonos uses non-standard STP path costs, which is problematic for advanced implementations. Request for an update to leapfrog compliant STP path costs and support RSTP.
Hi
Thank you - I've marked this thread as a feature request and it will be seen by the relevant teams for consideration. Keep the ideas coming!
Hi
But! This is a well-documented and long-running problem. Any cursory search of the Internet with the terms RSTP, Sonos, and - very frequently - Ubiquiti, will yield multiple posts that go back years, with no end of technical documentation about workarounds.
If there’s any way for the Sonos staff to put together a statement of yes, it’s coming, or no, it’s not anywhere near, that would be great. And, if it’s not coming, maybe a best practices document for setting up networks would be fantastic.
Thanks, Jeff (frustrated Sonos customer...)
Hi
We rarely comment on the development of upcoming features, nor on their expected availability dates. All I can say is that the request has been noted and someone will consider it - though of course it’s entirely possible that it was considered long ago and there are reasons why it’s not yet implemented. I just don’t know, as I’m not in the loop either.
Regarding STP and RSTP, I can provide the following:
General Cisco Managed Switch Settings
These are settings that were configured for a Cisco SG300-52 managed switch that played the role of the Root Bridge for the Sonos network. Even while the following parameters are derived from the SG300-52 settings, they may be adapted to switch hardware of other vendors, too.
Global Settings:
- Spanning Tree State: Enable
- STP Operation State: Classic STP
- BPDU Handling: Flooding
- Path Cost Default Values: Short
Bridge Settings:
- Priority: 4096
- Hello Time: 2
- Max Age: 20
- Forward Delay: 15
STP Interface Settings:
For each network port with a player being connected, the following settings apply:
- STP: Enable
- Edge Port: Auto
- Root Guard: Disable
- BPDU Guard: Disable
- BPDU Handling: Use Global Settings
- Path Cost: User Defined 10
- Priority: 128
All other network devices that don't participate in the Sonos player spanning tree may be set up like this:
- STP: Enable
- Edge Port: Auto
- Root Guard: Disable
- BPDU Guard: Disable
- BPDU Handling: Use Global Settings
- Path Cost: Use Default
- Priority: 128
Typically "STP: Enable" or "STP: Disable" *do* work for all non Sonos ports.
Cisco does not suggest disabling the STP option on single switch ports because "non-network experienced people" may use those ports and then have difficulty diagnosing loop and broadcast storm issues quickly.
IGMP snooping should be enabled with Multicast filtering enabled, to lower the overall network load.
Multicast Settings:
- Bridge Multicast Filtering Status: Enable VLAN ID: your ID - e.g. 1
- Forwarding method for IPv4/v6: MAC Group Address
- IGMP Snooping Status: Enable
Make sure that your router provides support for Multicast traffic pass through and has implemented an IGMP querier - e.g. IGMP v2 compatible.
You don't have to elect an available IGMP querier by yourself. This will be done by the Multicast handling network devices (router, switches) automatically.
Concerning the Cisco SG300-52 switch hardware it's absolutely essential that you disable (and apply) the "Spanning Tree State" after you've done changes to the "STP Interface Settings" and enable (and apply) "Spanning Tree State" again, or the spanning tree won't be rebuilt and run correctly.
Here are the settings of a CISCO SF-200-24 with almost the same STP Settings:
Global Settings
- Spanning Tree State: Enable
- STP Operation State: Classic STP
- BPDU Handling: Flooding
- Path Cost Default Values: Short
Bridge Settings
- Priority: 4096*
- Hello Time: 2
- Max Age: 20
- Forward Delay: 15
*The Sonos Root Bridge has the Bridge Priority 8000 anything with a lower value as in this example the switch with 4096 will take over the role of the Sonos Root Bridge, this makes sense when more than 50 % of the devices are wired to this switch the default value is 32768
Additional Information:
This Sonos forum post is an excellent supplement to further explain how Sonos devices work with STP configurable switches on a network. https://en.community.sonos.com/troubleshooting-228999/sonos-and-the-spanning-tree-protocol-16973
And regarding Ubiquiti, I can provide the following:
- Log into the UniFi controller
- Click the Settings tab on the left sidebar
- Click WiFi under the Settings page
- Click on the network SSID. Note: if there are multiple SSIDs that the players and controllers connect to, the same will need to be done for each SSID.
- Scroll down to Advanced Configuration and set it to Manual
- Verify and confirm that WiFi Type is set to Standard
- Click on the Apply Changes button at the bottom of the page.
- Click on Settings > Networks and select the network that Sonos is being set on.
- Scroll down to Advanced Configuration and set it to Manual
- Verify and confirm that Network Type is set to Standard and IGMP Snooping is enabled.
- Disable the following options by unchecking the Enable option:
- Multicast and Broadcast Control (blocks all multicast and broadcast for non-listed devices).
- Multicast Enhancement (converts multicast to unicast when possible).
- Client Device Isolation (prevents wireless client on the same AP from communicating with each other).
- Proxy ARP (converts broadcast to unicast when possible).
- Once completed, allow up to a minute for the AP to provision (apply the settings) and restore online connection, then proceed to the connection or setup of the Sonos system.
I hope this helps.
Your Ubiquiti/Unifi instructions are regarding wireless, which is irrelevant to RSTP/STP.
Howerver, the solution for STP broadcast storms and loops on Ubiquiti Unifi switches is really simple. Leave RSTP on but disable STP on every port that sonos equipment is wired to. It’s really that simple.
While the above instructions work, Sonos should really get with the 21st century and support RSTP. RSTP is backwards compatible with STP, so as long as you have engineers who know what they are doing, it should be no big deal. With other network switches where you can’t turn off STP on individual ports (such as Cisco, etc) you have to use a complete STP setup, which is very outdated and has a lot of drawbacks.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.