Answered

Yet Another pfSense+Unifi+Sonos troubleshooting thread

  • 6 April 2018
  • 1 reply
  • 2646 views

I'm looking for a little advanced help on getting my Sonos speakers to work on a weird network configuration.

I have a pfSense gateway, which runs my unifi wifi controller software on top.

My wifi is set up with two networks: a primary network (vlan 4) and a IoT network (vlan 3). I specifically prevent the IoT network from reaching out to the Internet, it is only allowed to reach back to the primary network. So, primary network (VLAN 4) can reach everything with all protocols, and IoT network (vlan 3) can only reach back to VLAN4 on all protocols. I enabled pfSense 'allow ip options' on both interfaces on their main allow flow rules.

I have a single unifi AP, which is connected directly to my pfSense gateway (no switches in the path, to aid in troubleshooting).

I tried using pfSense IGMP Proxy which doesn't seem like it actually does anything. So, I grabbed and compiled udp-broadcast-relay-redux and compiled it for pfsense. This is a little daemon which lets you listen for broadcast and igmp traffic and will relay them between interfaces.

So, I run udp-broadcast-relay-redux on my pfSense router as:

udpbroadcast --id 1 --port 1900 --dev em1.4 --dev em1.3 --multicast 239.255.255.250

This seems to *mostly* work.

When I run sonos.app on macos, I see the following behavior when looking at network traffic on my computer's end:

1) Sonos.app sends out igmp joins to 239.255.255.250 and broadcast traffic to 255.255.255.255 (dst port udp/1900, src port udp/1901)
2) my Sonos speaker replies to my computer correctly (dst port udp/1901)
3) Sonos.app then connects to the Sonos speaker on TCP/1400 and issues some http'ish requests, the first is to GET /xml/device_description.xml . The speaker responds with an xml file.
4) The speaker also reaches back to Sonos.app (destination port TCP/3400 on my computer). The speaker issues NOTIFY /notify request to the computer, with a lengthy XML body.
5) The computer responds with HTTP/1.1 408 Request Timeout to the above NOTIFY request. I'm not sure if that's normal or what might be causing it?
6) The computer continues to make requests to the speaker, mostly SUBSCRIBE verbs (to /SystemProperties uris)
7) The speaker continues to connect to the Sonos.app and make NOTIFY requests for a few seconds, and then all comms stop
😎 Sonos.app displays the "unable to find any speakers" message

So, it seems like my broadcast traffic is being relayed correctly, and that my laptop is able to communicate with the speaker (and vice-versa), but for whatever reason Sonos.app is unwilling to work.

I wonder if there is any additional trick to making comms work? It's driving me a little crazy, as I have three speakers ready to go but really don't want to put on my main network if I can avoid it.
icon

Best answer by Edward R 10 April 2018, 12:04

Hi there, reidmefirst. This is a slightly complicated network. I think it might be best that you get in touch with our support team via telephone. They will be able to look at this with you in greater detail, possibly through a remote session if required.
View original

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.

1 reply

Userlevel 7
Badge +20
Hi there, reidmefirst. This is a slightly complicated network. I think it might be best that you get in touch with our support team via telephone. They will be able to look at this with you in greater detail, possibly through a remote session if required.