Sonos Wireless speakers are popular amongst home users. However, enterprise WiFi systems are not designed for these so usually the default setting do not work with them. Ruckus Unleashed was not an exception. At the end I was able to configure my Sonos system on Ruckus Unleashed either wired or wireless setup, but finding the right information from the Internet took me a while. Even then, I wasn’t sure if I really had to go through all the process. So as a casual network hobbyist with personal network setup policy of “keep it simple, do no harm”, I’ve decided to do step by step testing myself to finding minimum required changes on default setup for Sonos to work on Ruckus Unleashed network.
Situation
I currently have following Sonos speaker setup.
- Sonos One 2nd generation (stand alone)
- Sonos Move 1st generation
- Sonos Arc, Sub 3rd gen, Sonos SL x 2 as 5.2.1 Home theater setup
On my Ruckus Unleashed default WiFi setup, I was able to connect Move, One and Arc, and the app even recognized Sub and SLs. However, I was not able to group home theater setup despite resetting each speakers. None of the speaker is wired.
Background
Sonos are popular wireless WiFi speaker platform. There are two types of setup for Sonos speakers (ref).
- Wired
- Wireless
Wired setup makes those wired speakers as hubs for wireless Sonos speakers. Basically, if we wire at least one Sonos speaker, the remaining Sonos speakers creates their own 2.4 GHz mesh network. This is called, SonosNet.
If all speakers are not wired, then we are using wireless setup. In this setup, each Sonos speaker will connect to your own home WiFi.
Each have their own pros and cons. SonosNet approach allow Sonos speakers to potentially connect beyond your home WiFi range. They can also improve Sonos speaker stability and reliability as they are on their own WiFi network so they don’t have to wait a turn for other WiFi devices.
However, it’s important to note that SonosNet is not interference free, magical wireless network. They are nothing but their own 2.4 GHz WiFi network. So this has the same effect as neighbor having 2.4 GHz WiFi interference in your network. Since it’s within the house, the effect may be more significant. In another word, SonosNet could slow down your other home WiFi if they using the same channel.
With full wireless setup, Sonos speakers will be managed by your own WiFi network. So overall, throughput of the channel can be improved so long as the WiFi system has decent QoS. Given listening music requiring uninterrupted operation, Sonos music quality will depends on home WiFi quality.
One way to view SonosNet setup is it put maximum priority to Sonos speakers even at the cost of other WiFi clients in your home operating on the same channel.
Recently, we are seeing potential company’s decision of moving away from SonosNet. It initially started with mobile speakers Sonos Move and Roam series, and now the latest models, Era 100 and Era 300. They can only be connected to your home WiFi and not joining SonosNet.
Assessment
Officially, Ruckus recommends use of SonosNet setup rather than Wireless setup (ref). In wireless setup, the default setting of Ruckus Unleashed interfere grouping speakers.
Solution
The good news is Ruckus Unleashed supports both SonosNet and wireless setup, but the latter setup requires a bit of more work.
Option 1: Wired (SonosNet) Mode
Option 2: Wireless Mode
Let’s take a look each setups.
Wired (SonosNet)
This is the Ruckus’s recommended mode of operation.
For this, all you need to do is just wire one of Sonos speaker. I have wired my Sonos Arc, and with a minute, my 5.1.2 home theater setup has been restored.
It’s important to note that Sonos says subwoofers and surrounds are not able to act as the first wired product for the SonosNet.
WiFi Mode
After following official site article, and official forum’s moderator comment one step at a time, I was able to get my Sonos WiFi setup function by just disabling SmartMedia QoS on ethernet interfaces. Everything else (on those references) were not necessary for my setup, and I was able to just leave them at default. However, this setting is not accessible through browser GUI. Instead, it requires us to use command line interface (CLI).
The general steps are as followings:
- Log in to SSH interface of the master AP
- Get into ap-mode section
- Disable SmartMedia QoS
- Reconnect Sonos
Step 1: S SH into Master AP
The first step is get into command line interface. Open command line tool of your choice from one of your computer that is wired to the same network as the Master AP. I use Mac, so this is simply from terminal.
Ruckus Unleashed uses rsa authentication method of SSH. So you need to put an extra argument for SSH command (“-oHostKeyAlgorithms=+ssh-rsa”). Otherwise, you will get an error and won’t even get prompted to enter log in information.
% ssh 192.168.100.100
Unable to negotiate with 192.168.100.100 port 22: no matching host key type found. Their offer: ssh-rsa
ssh -oHostKeyAlgorithms=+ssh-rsa [ip address of master AP]
Replace [ip address of master AP] with real IP address e.g. ssh -oHostKeyAlgorithms=+ssh-rsa 192.168.1.10
When prompted, enter user ID and password. These are the same as what you use to log in to browser admin page.
ssh -oHostKeyAlgorithms=+ssh-rsa [ip address of master AP]
Please login: [Unleashed User ID]
Password: [Unleashed Password]
Welcome to Ruckus Unleashed Network Command Line Interface
ruckus>
Step 2: Get into AP Mode
After logging in to the master AP, type “enable”. Then type “ap-mode”.
enable
ap-mode
You should see screen like below.
ruckus> enable
ruckus# ap-mode
You have all rights in this mode.
ruckus(ap-mode)#
The “enable” command enables us to make changes in configuration; otherwise, default login have very limited privilege.
“ap-mode” command will take into the actual AP configuration section.
Step 3: Disable SmartMedia QoS for each interface
The only a pair of commands that actually changes Ruckus AP’s default setting is disabling SmartMedia QOS on both ethernet interfaces. Be sure to run the command on both ethernet 0 (eth0) and ethernet 1 (eth1) interfaces.
set qos eth0 classification disable
set qos eth1 classification disable
ruckus(ap-mode)# set qos eth0 classification disable
QOS processing is Disabled on interface eth0
OK
ruckus(ap-mode)# set qos eth1 classification disable
QOS processing is Disabled on interface eth1
OK
As a confirmation, you can check, these commands have actually turned off Smart QOS.
get qos eth0
get qos eth1
ruckus(ap-mode)# get qos eth0
Ruckus Wireless SmartMedia QOS is disabled for eth0 interface
OK
ruckus(ap-mode)# get qos eth1
Ruckus Wireless SmartMedia QOS is disabled for eth1 interface
OK
To save the changes, you must enter quit command.
ruckus(ap-mode)# quit
Your changes have been saved.
Step 4: Restart Sonos speakers
The last step is to have Sonos speaker reattempt their connection. You can reboot WiFi network, reboot Sonos speakers, reboot APs; however, you like. In my case, the fastest for me was just plug in Sonos Arc to ethernet cable and wait for SonosNet to form. Then disconnect, which triggers these speakers to try joining WiFi network.
Revert back to default
If you want to revert back to the original setting, it’s as simple as following down to step 3. Then rather than disable, use enable.
set qos eth0 classification enable
set qos eth1 classification enable
If you check the change, with get qos [interface] command, you should see below.
ruckus(ap-mode)# get qos eth1
Ruckus Wireless SmartMedia QOS info for eth1 interface
QOS Configuration options:
Classification: Enabled
UDP Heuristic Classification: Disabled
TOS Classification: Enabled
Dot1p Classification: Enabled
VID Voice Classification:
VID Video Classification:
VID BE Classification:
VID BK Classification:
Dot1p Classification VIDs:
Dot1p Marking VIDs:
Directed Multicast: Enabled
IGMP Snooping Mode: Enabled
MLD Snooping Mode: Disabled
Static TOS marking: Disabled (0x0)
Static Dot1p marking: Disabled (0x0)
General Mcast->U Cloned Filters TOS-Mark
Stats 0 4 0/0/0 0/0/0/0
L2 Mcast Packets Unicast Unk-Drop Known-Mcast
UDP Data 5797 4 5784 61253
Heuristics Voice Video
UDP Packets 0 0
IGMP/MLD Clone1/2/3
Errors 0/0/0
No Filters are currently defined on eth1 interface
OK
Make sure to enter quit command to save the change.
Personal Journey
Directed MC/BC Threshold
I originally had Directed MC/BC Threshold set to 0 based on this guide, which is great guide to follow for basic setup by the way.
However, this did not help Sonos grouping.
Turn off directed-multicast
I then followed the official article. It says to run following commands on SSID level.
no qos directed-multicast
qos directed-threshold 0
The latter line is same as admin GUI Directed MC/BC Threshold change. You can confirm this by either changing the value through admin GUI and check it on CLI, or the other way around.
These changes still did not work for me.
Turn off individual device ports
I then came across this post on Ruckus forum, but later I read these are not applicable to Rx50 series. So I didn’t really try these.
Sequence of commands
After reading several other forum posts, nothing really felt worth for me to give a try. I then came across a nuser on Reddit confirming their Sonos worked after applying changes listed here. So I’ve decided to give a try to this for pure curiosity.
In order to arrive the minimal configuration change required for Sonos WiFi setup, I’ve decided to take one step at a time to see if I can find which are really necessary. After each change, I rebooted all APs or Sonos. It was not until the very last step of disabling classification command when Sonos started to work.
So at this point, I have decided to revert back other settings to the default one at a time; other than the last step to see if Sonos will remain working.
At the end, I discovered it’s really the last line command that allowed Sonos to work in WiFi mode. Everything else were able to keep at default including Directed MC/BC Threshold value of 1.
Since my network policy is “keep it simple, do no harm”, I would rather not touch anything that is unnecessary. Hence, I came to my current set up.
Although this worked for me, there are couple things I am not certain about.
- How impactful is turning off SmartMedia QoS?
I was hoping to figure out a way to make change only at the WLAN level so I could still keep other WLANs to their original and not impacted by enabling unlimited broadcast/multicast traffic.
In fact, I had even tried disabling SmartMedia QoS at WLAN level rather than ethernet interface level. However, this did not solve Sonos issue. - What happens when on master AP change?
Although I can confirm the change persists after reboot, I have not tested if master AP changes.
Because when I logged into individual non-master AP, and checked QoS setting, they did not have their SmartMedia QoS disabled.
Final Thought
So Ruckus Unleashed can work well with Sonos. In particular, SonosNet setup is as simple as wiring one speaker. What looked overwhelmingly challenging to get WiFi setup turned out to be achievable by executing only a pair of command that makes actual change to configuration.
Personally, I will stick with SonosNet setup for now. The reason is I am just not sure about the impact of disabling QoS all together. In fact, one of the reason why I thought WiFi setup could be beneficial is to have Ruckus intelligently control traffics including Sonos speakers, and maximizing the network performance. But disabling QoS will take away the intelligence.
As for SonosNet setup, since SonosNet use only 2.4 GHz, I think Ruckus Unleashed should be able to adjust itself with automatic RRM as needed.