Skip to main content
Retired Sonos Staff
June 10, 2010

Sonos and the Spanning Tree Protocol

I wanted to post a few clarifications regarding SONOS and Spanning Tree Protocol that have been raised in this thread.

SONOS ZonePlayers use 802.1D Spanning Tree (STP) for loop prevention between wired ZonePlayers and the wireless SonosNet Mesh Network. The Spanning Tree running on ZonePlayers is compliant with IEEE 802.1D and can inter-operate with other IEEE 802.1D and IEEE 802.1w compliant devices. Note: IEEE 802.1w is an updated version of the Spanning Tree protocol called Rapid Spanning Tree. The two types of STP protocols are compatible and 802.1w should revert to inter-operate with 802.1D devices (such as Sonos). Therefore, 802.1w Ethernet switches will work with Sonos ZonePlayers.

SONOS ZonePlayers CAN be connected to Ethernet switches that do NOT support Spanning Tree as long as the Ethernet switches do not interfere with the STP BPDU packets transmitted between ZonePlayers. This is typically never the case and these switches pass the BPDU packets like any other packet.

If the Ethernet switches that Sonos ZonePlayers are wired to DOES support Spanning Tree, the Spanning Tree on those switches must be configured properly. Ethernet switches that support Spanning Tree typically have their STP settings disabled. This also typically means that these switches will block/discard the BPDUs coming from the ZonePlayers. When the ZonePlayers are not able to see BPDUs, they cannot detect there is a shared transmission medium between the Zones and this will typically result in loops in the network. The solution to allow the use of these switches with Sonos is to enable and configure the Spanning Tree on the Ethernet switches. The configuration settings on each switch are different and the appropriate documentation for those products should be consulted. Note: Some switches have a setting that is called Pass BPDUs or equivalent. This setting when present allows the BPDUs between the ZonePlayers to pass freely through the switch without actually enabling STP on the the switch. Typically, setting this function also works, but again please review the switches product documentation.

A good guideline for Ethernet switches is if the switch says it supports Spanning Tree, either 802.1D or 802.1w, then its configuration settings and user documentation should be examined before wiring multiple ZonePlayers to the switch. If the switch does not state it supports Spanning Tree, 802.1D, or 802.1w, it will probably work fine with Sonos.

SONOS ZonePlayers do NOT require a connection to the same Ethernet switch. Different ZonePlayers can be connected to different Ethernet switches which are in turn connected to each other. The only requirement is that Sonos ZonePlayers must be able to actively participate in 802.1D Spanning Tree and not have BPDU transmission blocked between them. There is no Sonos limitation that prevents wiring multiple ZonePlayers to multiple Ethernet switches.

IEEE 802.1D has a recommended bridge span limitation of 7 bridges. This means that the total number of connected bridges from one end of the network to the other should not exceed 7 bridges. This typically only comes into play when daisy chaining Sonos ZonePlayers together by wiring one ZonePlayer to the next. In this case, the guidelines is when daisy chaining ZonePlayers, do not exceed 7 ZonePlayers wired together. If wiring multiple ZonePlayer to a single Ethernet switch, typically the number of spans will only be 3 or 4 (I.e. much less than 7). Except in the daisy-chain configuration, this limit of 7 bridges/7 ZonePlayers, is rarely ever hit.

A number of comments have used the term router and switch interchangeably in regards to this topic. Sonos ZonePlayers in the same HouseHold MUST be connected to the same routed network. A Spanning Tree cannot span two or more routed networks. In addition all Sonos ZonePlayers and Controllers must be on the same routed IP network in order to properly communicate and function. Typically, two or more routed networks are not seen in the household environment except by accident (Example. A carrier provides a new router in a network that already had a router and the original router was not removed).

Hopefully this information has clarified a number of items and not added additional confusion.

Regards, Todd
This topic has been closed for further comments. You can use the search bar to find a similar topic, or create a new one by clicking Create Topic at the top of the page.

53 replies

Headliner II
January 7, 2015
After many years of troubles and endless hours of trying to reconfigure my switches and numerous fine updates on the SONOS software providing good features to us customers, I still wonder why SONOS never provided a feature allowing to switch from the very old IEEE 802.1D-1990 standard (the one proposing the cost to be 19 for 100MB link) to the more recent version of 1998 which would be more in line of nowadays default settings off the shelf switches are using.
Is there a reason why?


My guess is that this is just a legacy, but requires big changes to work as expected. The players calculates a dynamic path cost depending on the wireless signal quality, and to "adjust" this according to 802.1W standards is probably not as straight forward as one would expect.

Changing this would also break all current installations, as well as breaking backward compatibility with 802.1d-only switches (although, I would guess that these are rare today). Best option would be to make this configurable, but that is another complexity added to a system that strives for simplicity. There's probably a reason that most modern switches has a "classic" mode available too, maybe because there is still a big need for it.

Another reason could be that the linux kernel only seem to support 802.1d, and 802.1w seems to be available as a separate daemon. This might not integrate well with how the Sonos player operates, or add to much memory footprint to be usable in these limited devices, who knows.

Now, I only use 1 switch, and didn't have an issue reconfiguring it to work well with Sonos. It simplifies it a bit if you can isolate all your Sonos gear to 1 switch, but you should be able to correctly configure multiple switches as well, as long as you can lower the path cost for uplinks as well.
Avid Contributor I
April 26, 2015
I've actually taken some notes on the GS108T (although my notes are for the -200)

While it shouldn't necessarily require the RSTP step, it does seem to require the IGMP Snooping set to enabled.
STP
Basic
STP Configuration
Spanning Tree State: Disable
STP Operation Mode: RSTP
BPDU: Enable
Multicast
IGMP Snooping
IGMP Snooping Configuration
IGMP Snooping Status: Enabled

Let me know


Well, had my network go down today with a storm. Was working fine but I noticed that the Playbar network cable was unplugged. Plugged it in and down it went (I have another unit plugged in).

Now I had three gs108tv2's in a chain, all with stp enabled, however this did not seem to work. Set them up as shown above and now it's working perfectly again ! Cheers.
Collaborator II
November 29, 2015
Sorry for resurrecting an old thread, but these ancient path costs used by Sonos has resulted in me having to disable WiFi on the new CONNECT I just added to my system (like I've had to do on other Sonos units). Without doing so, the Sonos desperately wants to use the crappy wireless link (minimum 60% duty cycle on all 2.4Ghz channels due to urban density) to the nearest neighbor instead of the wired Ethernet available to it. And since my topology is root switch distribution switch Sonos, it's not a simple matter to fudge the port cost on the distribution switch, since the cost of the link from root to distribution still dwarfs the cost Sonos applies to the wireless interference. (Sonos is showing 802.1W costs received from its wired neighbor (which does RSPT) and not even trying to scale that down to 802.1D much less the ancient 802.1D values it is using.)

Basically, I have one wired Sonos device with WiFi enabled to feed the one wireless PLAY:3 unit I have and then the rest of the wired devices I've had to disable WiFi because of the broken STP costs. The current STP costs are used by pretty much all switches at this point, and have been for years. Sonos really needs to get with the times on this one. And it won't cause backwards compatibility issues, since the modern costs are higher than the ancient STP costs Sonos uses. And since Sonos requires all devices to be on the same firmware level, they'd calculate equally as they do today, even if you had a really old wired switch topology in between them using the lower costs.
Lyricist III
March 14, 2016
Hello I really need your Help because you seem the best on SONOS products in the world.
If you could read the poor french forums and all the people crying for what I know now to be a broadcast storm !
I am so happy to finaly be able to put a name on my problem.
Anyway now I need you help to solve it because I don't have a managable switch with STP. Is there a quick and easy solution on the config menus of the players ?
Do i have to disable WIFI to all my RJ45 wired SONOS players ? Would it help or my only solution is to buy new switches with stp manageable ?

Excuse my english and thx for you help
Regards
Charles
MikeV
March 14, 2016
Charlie, what is the model of network switch that you have? There are some unmanaged switches that block STP, though they are not common.

Deactivating the wireless on your wired Sonos players might also work, but leave it enabled on only one of them, so any wireless players can still connect.
----------
French Translation from Google... Hopefully it's accurate. :)

Charlie, ce qui est le modèle de commutateur de réseau que vous avez? Il y a des commutateurs non administrables qui bloquent STP, si elles ne sont pas communs.

Désactiver le sans fil sur vos lecteurs Sonos câblé pourrait également fonctionner, mais le laisser activé sur un seul d'entre eux, de sorte que tous les joueurs sans fil peuvent toujours se connecter.
The S in IOT stands for Security.
Contributor I
March 15, 2016
Hey MikeV what's the chances of improving SonosNet to understand the STP path metrics the rest of the world has moved onto?

I've been buying Sonos gear for 10 years and am up to 9 zones in my house and love it; you make seriously the best working and least troublesome consumer electronics in the entire market. There are other companies with a reputation for "it just works" but they can't hold a candle to Sonos. EXCEPT for this dratted STP issue which has cost me hours of troubleshooting on multiple occasions. I used to have dumb switches and they work fine because there was no other STP in the mix and I didn't know what STP was and didn't have to. I upgraded my network to a low-end Cisco switch and everything broke, after quite a bit of troubleshooting I realized this was the cause and there was a way to tell the Cisco switch to use the old path costs, problem solved. Except this year I upgraded my network to an overall much nicer Ubiquiti Unifi switch, and the problems were a lot more subtle which meant they were a lot harder to track down but once again it turns out to be my good friend, conflicting STP path costs.

So now I have this fancy switch (Unifi) and this fancy self-configuring mesh network (Sonos) and they have incompatible STP implementations and neither one can be configured because in the modern world you're not supposed to configure things.

Well. So now I get to either unplug ethernet from all but 1 of my Sonos zones so SonosNet has no loops back onto my wired LAN (but then I might be subject to wireless interference), or unplug ethernet from ALL of my Sonos zones so they join my normal WiFi network, or play around with selectively disabling wireless on only some Sonos zones (all of these leave me more exposed to the vagaries of WiFi than I want to be), or figure out how to disable STP entirely on the Unifi switch, which is apparently possible but not easy.

It would be really really nice if Sonos STP played nice with the rest of the modern world, though, pretty please?
ratty
March 15, 2016
I guess there's nothing to stop Sonos factoring all path costs -- wired and wireless -- by 20000, unless there's a 16-bit/65k limit in there somewhere. Given their redoubled focus on new, streaming customers -- most presumably connected via WiFi ('Standard Setup') -- in order to remain profitable, they might not feel that such tweaks are of the highest priority.
Lyricist III
March 16, 2016
Charlie, what is the model of network switch that you have? There are some unmanaged switches that block STP, though they are not common.

Deactivating the wireless on your wired Sonos players might also work, but leave it enabled on only one of them, so any wireless players can still connect.
----------
French Translation from Google... Hopefully it's accurate. :)

Charlie, ce qui est le modèle de commutateur de réseau que vous avez? Il y a des commutateurs non administrables qui bloquent STP, si elles ne sont pas communs.

Désactiver le sans fil sur vos lecteurs Sonos câblé pourrait également fonctionner, mais le laisser activé sur un seul d'entre eux, de sorte que tous les joueurs sans fil peuvent toujours se connecter.


Hey Mike thank's for your french !
The switch is a TL-SG108 from TP-LINK.
Actually I have the ORANGE livebox fiber modem and router. Than My NAS connected directly to the modem router, than the TL-SG108 (8 ports) to the router and another 5 ports Switch from TP link (the same as the 8 one).
my Imac connected to the router directly too.

Connected to the 8 ports I have 2 player 5, and 1 player 3 (and direct to one of the player five a Samsung connected TV in the dinnig room)
Connected to the 5 ports I have 1 connected samsung TV in the living room, 1 TV box from ORANGE, 1 sonos connect
Connected to the wifi I have a player 1 and ipad, macbook, etc....

As an example of my problem yestarday when I wanted to cast a movie from my NAS to my TV in the living room, I couldn't see the DNLA TVMOBILI that I use .
So I had to unplug the RJ45 connected to the swtich 5 ports and plug it again and it suddently found the network and the DNLA on the TV.
But this morning 0 SONOS woke me up and they are supposed to wake us up;
So I shut down the PLayer in the dinnig room and put it on again and all rooms where available again on the controler of the Ipad.

So everything is working but barely never all together. I alaways have to unpluged, reboot, plug again in order to make work the needed device.

Nothing is stable.

Merci for you help.

If you visit PARIS you are more than welcome for a drink !

Charles
Collaborator II
March 16, 2016
Until Sonos brings their STP up to modern standards, the only thing you can really do is disable wireless on nodes connected via Ethernet. Use the network monitor to determine which of your wired nodes has the best wireless coverage to your wireless Sonos devices, and leave wireless enabled on that one device. If it ever has problems, you'll lose all your wireless Sonos devices, but you will know where to look to trouble-shoot.

(This is the approach I have had to take, since Sonos's STP doesn't play nice with the modern STP on my Cisco switches. Only my Playbar has wireless enabled to feed a Play3 that I cannot easily hardwire. The rest of my Sonos devices are connected via Ethernet and have had wireless disabled to get them to work properly.) Disabling wireless also saves a couple watts of power when the unit is 'standby' mode.

Info on disabling wireless here: https://bsteiner.info/articles/disabling-sonos-wifi
Lyricist III
March 16, 2016
Until Sonos brings their STP up to modern standards, the only thing you can really do is disable wireless on nodes connected via Ethernet. Use the network monitor to determine which of your wired nodes has the best wireless coverage to your wireless Sonos devices, and leave wireless enabled on that one device. If it ever has problems, you'll lose all your wireless Sonos devices, but you will know where to look to trouble-shoot.

(This is the approach I have had to take, since Sonos's STP doesn't play nice with the modern STP on my Cisco switches. Only my Playbar has wireless enabled to feed a Play3 that I cannot easily hardwire. The rest of my Sonos devices are connected via Ethernet and have had wireless disabled to get them to work properly.) Disabling wireless also saves a couple watts of power when the unit is 'standby' mode.

Info on disabling wireless here: https://bsteiner.info/articles/disabling-sonos-wifi


Thks but I have only 1 zone with no ethernet so can I let only this Player with wifi and the others disabled ? Would I still be able to manage all the players with the IPAD ?
I am pretty sure that my only player connected to the wifi is connected direclty to the router it is quite close enough
What do you think ?