Reply
Established Member
Posts: 1,361
Registered: ‎10-01-2014
Kudos: 674
Solutions: 66
Accepted Solution

Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

[ Edited ]

EDIT: UPDATE, SEE POST 8 BELOW FOR THE INTEGRATED VERSION OF THIS SOLUTION.

So, like many folk who like to segregate our SOHO home networks with VLANs, subnets, etc., I was frustrated at not being able to use iOS apps, Windows drivers etc. to find and use (in my case) a Play-Fi LAN streaming speaker system.

As usual these forums were incredibly helpful and with such a powerful router in the shape of my trusty ERL3 (currently running v1.7.0beta1), I researched the subject until I found a workable solution. This may also work for Sonus and games as well.

First, I was able to use IGMP-PROXY for the standard broadcast protocols across my VLANs, however, although systems (NAS, Printers, etc.) were happily broadcasting, the Phorus/Play-Fi 255.255.255.255:10102 broadcasts weren't reflected across the VLANs, which is actually a good thing in general, but not for my use case.

Here is my LAN equipment configuration:

ERL3 -> ToughSwitch 8-Pro (root switch) -> Cisco SG 200-08

Definitive Technology W9 WiFi/Wired speaker is on my home user network VLAN 5 and is located in my den
Office network is VLAN 6

In order to have devices on VLAN 6 discover and use the W9 on VLAN 5, I needed to rebroadcast 255.255.255.255 on port 10102. I accomplished this, by downloading and compiling Joachim Breitner's brilliant udp-broadcast-relay on my ERL3 and setting up an init.d script to automate it.

YMMV and of course, there is always a risk using any non Ubiquiti approved/test software, but for those of us stuck with equipment that forces a home user paradigm on our networking, this may be the antidote.

A tarball of the binary and init.d and rc.x scripts is attached.

The config file is simple:

root@ubnt# cat udp-daemon
BCAST_PORT=10102
ID=1
IF1=eth0.5
IF2=eth0.6
UDPD_OPTS="${ID} ${BCAST_PRT} ${IF1} ${IF2}"

BCAST_PORT needs to match the discovery broadcast port the devices sends or polls on an ID that must be unique on each network (this allows for more than one daemon, so that other ports can be monitored). IF1 and IF2 are the interfaces that can receive/send broadcasts to each other, you can configure more that 2, so just add IF3, IF4, etc.

You can also just run the binary from the CLI, use the "-f" switch to fork it into the background. Here's the man page:

UDP-BROADCAST-RELAY(8) UDP-BROADCAST-RELAY(8)



NAME
udp-broadcast-relay - Relays UDP-Broadcasts to other local networks

SYNOPSIS
udp-broadcast-relay [-f] [-d] id port eth0 eth1 ...

DESCRIPTION
This manual page documents briefly the udp-broadcast-relay command.


OPTIONS
-f Fork program to background

-d Enable debugging

id Number that has to be uniq in each network

port Port to forward.

eth0 eth1 ...
Interfaces to listen for packets and to forward them to.

AUTHOR
This manual page was written by Joachim Breitner <MAIL>.



September 20, 2003 UDP-BROADCAST-RELAY(8)

Please help the community find useful posts and solutions by using the "Kudos" and "Accept as Solution" buttons!

Accepted Solutions
Established Member
Posts: 1,361
Registered: ‎10-01-2014
Kudos: 674
Solutions: 66

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

[ Edited ]

Update: added ER-X version compiled by @spoon25

Ok, so I took my first stab at integrating udp-daemon with EdgeOs. Here's how to set it up:

 

  1. If you installed the udp-daemon init.d script and binary discussed above, you will need to disable and/or remove it (instructions at the end of this post).
  2. cd /tmp; curl -o ubnt-bcast-relay.tgz http://community.ubnt.com/ubnt/attachments/ubnt/EdgeMAX/67208/1/ubnt-bcast-relay.tgz
  3. Untar the tarball ubnt-bcast-relay.tgz in a directory on your Edge Router with space: e.g. cd /tmp; sudo tar zxvf ubnt-bcast-relay.tgz
  4. cd ubnt-bcast-relay/
  5. sudo chmod 0755 ./install.sh
  6. sudo ./install.sh
  7. Now you can run configure
  8. Here's a config I run on mine so I can find my Play-Fi (Phorus) and then stream music from vlan 5 to vlan 6:
set service bcast-relay id 1 description 'Play-Fi listener'
set service bcast-relay id 1 interface eth0.5
set service bcast-relay id 1 interface eth0.6
set service bcast-relay id 1 port 10102

 

The resulting config looks like this in show configuration:

 

service {
    bcast-relay {
        id 1 {
            description "Play-Fi listener"
            interface eth0.5
            interface eth0.6
            port 10102
        }
    }

Note, you can set up more than one listener instance using a different id #. You must have at least 2 interfaces (more than 2 are supported). You can also add an ipv4 address that will set the source IP of forwarded packets; normally  the original sender's address is used.

 

To uninstall:

  1. Run configure
  2. delete service bcast-relay
  3. commit
  4. sudo <base directory you extracted the tar>/ubnt-bcast-relay/uninstall.sh

=========================================================

For anyone who previously installed udp-daemon, it will need to be disabled and/or removed, as it isn't used in the above method. Here's how:

 

  1. sudo service udp-daemon stop
  2. sudo update-rc.d -f udp-daemon remove
  3. Optional: sudo rm /etc/init.d/udp-daemon /etc/default/ /usr/sbin/udp-daemon

Please provide feedback on how this works/bugs etc.

Please help the community find useful posts and solutions by using the "Kudos" and "Accept as Solution" buttons!

View solution in original post

Attachment
Attachment
Emerging Member
Posts: 62
Registered: ‎10-03-2016
Kudos: 64
Solutions: 5

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

I boiled this long thread down to this small instruction that works for chromecast:

http://www.cron.dk/edgerouter-and-chromecast/

 

Best regards,

   Alex

View solution in original post

New Member
Posts: 24
Registered: ‎12-30-2016
Kudos: 2
Solutions: 1

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

Got it all it took was the following commands:

1) ssh into the USG and
2) configure
3) set service mdns reflector
4) commit
5) save.

 

Got the commands from this post: https://community.ubnt.com/t5/UniFi-Routing-Switching/Airplay-and-Airprint-Firewall-Rules/td-p/17903...

View solution in original post

Established Member
Posts: 1,361
Registered: ‎10-01-2014
Kudos: 674
Solutions: 66

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

[ Edited ]

@pvklink, avahi-daemon can be shutdown by:

delete service mdns reflector

 Also, disable UPNP:

delete service upnp
delete service upnp2

 

Please help the community find useful posts and solutions by using the "Kudos" and "Accept as Solution" buttons!

View solution in original post

Established Member
Posts: 1,361
Registered: ‎10-01-2014
Kudos: 674
Solutions: 66

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

@pvklink, that's expected since "udp-bcast-relay" is running in the foreground and won't give back control to the shell.

 

Now you've cleaned up your network listeners, run each of your "sudo /opt/vyatta/sbin/udp-bcast-relay" with the "-d" debug switch in turn this way:

sudo /opt/vyatta/sbin/udp-bcast-relay -d <ENTER or RETURN>
<CTRL z> bg <ENTER or RETURN>

 

"CTRL z" is the executed by holding down your Control key and typing "z", then type "bg" followed by the "ENTER" or "RETURN" key.

 

This will background each "udp-bcast-relay" and will reveal if any of them are blocking the next instance. Once you're satisfied they can all run together (no debug errors), then use:

sudo pkill udp-bcast-relay

Then you can reboot your router if you didn't change the bcast-relay configuration

Please help the community find useful posts and solutions by using the "Kudos" and "Accept as Solution" buttons!

View solution in original post


All Replies
Previous Employee
Posts: 13,551
Registered: ‎06-10-2011
Kudos: 5453
Solutions: 1656
Contributions: 2

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

Thanks for looking into this and sharing the details! If people can help test this, maybe we could consider adding it in the system.

New Member
Posts: 20
Registered: ‎01-09-2015
Kudos: 4

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

When I get around to it, I am going to test this method to try and use ChromeCast across two subnets (eg 192.168.1.xxx, 192.168.2.xxx) using the ERL. I will probably need to some assistance compiling as I am new to that aspect. I cannot PM yet, so will be posting in this thread. Thanks for finding a solution that will hopefully work for this. Man Happy

 

 

Rebroadcast on IP address - 239.255.255.250 and port 1900

per http://www.cisco.com/c/en/us/td/docs/wireless/controller/technotes/7-6/chromecastDG76/ChromecastDG76...

 

New Member
Posts: 20
Registered: ‎01-09-2015
Kudos: 4

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

I noticed that I do not need to do the compiling since you provided the tarball binary "udp-daemon.tgz".  But here is where I get a bit stuck as I am new to the linux platform. I extracted the file above using 7zip to a "upd-daemon.tar". Now do I take that .tar file and transfer it to the ERL using SCP to /usr/bin or do I take the contents of the upd-daemon.tar which are two folders etc and usr containing various files/folders to a different location on the ERL. I did some searching on how to extract .tar or tar.gz to a linux platform but I am afraid to try something as I don't want to screw up the router somehow.  

Established Member
Posts: 1,361
Registered: ‎10-01-2014
Kudos: 674
Solutions: 66

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

[ Edited ]
EDIT: see post 8 for integrated version.

Tedz,

You can scp the tar file to your ERL's /tmp directory and then untar it as sudo in /tmp. I updated the init.d script to be LSB Init compliant and have included it in the new tarball with this post. After it has been unpacked, double check the init.d settings with sudo update-rc.d -n -f udp-daemon defaults (-n tells update-rc.d not to do anything) - it should come back with: "System start/stop links for /etc/init.d/udp-daemon already exist."

Now edit /etc/default/udp-daemon and configure it for your set up.
Please help the community find useful posts and solutions by using the "Kudos" and "Accept as Solution" buttons!
Established Member
Posts: 1,361
Registered: ‎10-01-2014
Kudos: 674
Solutions: 66

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

Tedz, FYI, you didn't need to use 7zip on it as the ERL tar version can handle compressed tar files. It doesn't matter though, since it's not a big a file and will scp nearly as quickly. 

Please help the community find useful posts and solutions by using the "Kudos" and "Accept as Solution" buttons!
New Member
Posts: 20
Registered: ‎01-09-2015
Kudos: 4

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

[ Edited ]

Thanks for the response britannic

 

Ok here is where I am getting step by step

 

I downloaded the lastest udp-daemon.tgz and WINSCP to location /tmp

 

Then I run the follow

Admin@TedzRouter:~$ sudo tar xzvf /tmp/udp-daemon.tgz
./etc/default/udp-daemon
./etc/init.d/._udp-daemon
./etc/init.d/udp-daemon
./etc/rc0.d/K20udp-daemon
./etc/rc1.d/K20udp-daemon
./etc/rc2.d/S20udp-daemon
./etc/rc3.d/S20udp-daemon
./etc/rc4.d/S20udp-daemon
./etc/rc5.d/S20udp-daemon
./etc/rc6.d/K20udp-daemon
./usr/sbin/udp-daemon
Admin@TedzRouter:~$ sudo update-rc.d -n -f udp-daemon defaults
update-rc.d: /etc/init.d/udp-daemon: file does not exist

I browse through the file system using WINSCP in the directories it says above and I see no files correlating to anything "udp-daemon" under /etc/init.d or any other of the folders in the root directory. As I did some more searching I am seeing the files/folders extracted above under /home/Admin/etc, is that where I want them?

 

*Edit

 

Just noticed what I think might have been my error I need to change my tar statement to read

sudo tar xzvf /tmp/udp-daemon.tgz -C /

 

Thanks for helping

Established Member
Posts: 1,361
Registered: ‎10-01-2014
Kudos: 674
Solutions: 66

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

[ Edited ]

Update: added ER-X version compiled by @spoon25

Ok, so I took my first stab at integrating udp-daemon with EdgeOs. Here's how to set it up:

 

  1. If you installed the udp-daemon init.d script and binary discussed above, you will need to disable and/or remove it (instructions at the end of this post).
  2. cd /tmp; curl -o ubnt-bcast-relay.tgz http://community.ubnt.com/ubnt/attachments/ubnt/EdgeMAX/67208/1/ubnt-bcast-relay.tgz
  3. Untar the tarball ubnt-bcast-relay.tgz in a directory on your Edge Router with space: e.g. cd /tmp; sudo tar zxvf ubnt-bcast-relay.tgz
  4. cd ubnt-bcast-relay/
  5. sudo chmod 0755 ./install.sh
  6. sudo ./install.sh
  7. Now you can run configure
  8. Here's a config I run on mine so I can find my Play-Fi (Phorus) and then stream music from vlan 5 to vlan 6:
set service bcast-relay id 1 description 'Play-Fi listener'
set service bcast-relay id 1 interface eth0.5
set service bcast-relay id 1 interface eth0.6
set service bcast-relay id 1 port 10102

 

The resulting config looks like this in show configuration:

 

service {
    bcast-relay {
        id 1 {
            description "Play-Fi listener"
            interface eth0.5
            interface eth0.6
            port 10102
        }
    }

Note, you can set up more than one listener instance using a different id #. You must have at least 2 interfaces (more than 2 are supported). You can also add an ipv4 address that will set the source IP of forwarded packets; normally  the original sender's address is used.

 

To uninstall:

  1. Run configure
  2. delete service bcast-relay
  3. commit
  4. sudo <base directory you extracted the tar>/ubnt-bcast-relay/uninstall.sh

=========================================================

For anyone who previously installed udp-daemon, it will need to be disabled and/or removed, as it isn't used in the above method. Here's how:

 

  1. sudo service udp-daemon stop
  2. sudo update-rc.d -f udp-daemon remove
  3. Optional: sudo rm /etc/init.d/udp-daemon /etc/default/ /usr/sbin/udp-daemon

Please provide feedback on how this works/bugs etc.

Please help the community find useful posts and solutions by using the "Kudos" and "Accept as Solution" buttons!
Attachment
Attachment
New Member
Posts: 20
Registered: ‎01-09-2015
Kudos: 4

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

Thanks for the great instructions and help with this Britannic but unfortunately I cannot get my chromecast to see other devices on a different subnet. Maybe someone with a bit more knowledge will take a crack at it, but I will toss in my white flag on this for the time being and maybe revist it when/if I need to. Once again appreciate the help and instructions.

service {
    bcast-relay {
        id 1 {
            description "Chromecast Proxy"
            interface eth1
            interface eth2
            port 1900
        }
    }
Established Member
Posts: 1,361
Registered: ‎10-01-2014
Kudos: 674
Solutions: 66

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

Tedz,

 

I'm sure your research has been exhaustive, but I did some digging just in case there is something extra that might be useful.

 

Since ChromeCast implements UPnP/SSDP a little bit differently, it needs some additional tweaks to get it working.

 

Browsers searching for ChromeCast devices send multicast UDP packets from their local IP and ra andom source port to 239.255.255.250 port 1900. The ChromeCast responds with a unicast UDP packet from it's IP and a random port to the source IP/port of the multicast packet. Random (ephemeral) ports are usually in the 32768-61000 range.

 

After the ChromeCast device has been discovered (each time the browser starts), the browser will control it using TCP (HTTP) connections to port 8008.

 

Although I don't have ChromeCast, I do have airplay devices that have similar requirements and for those, Instead of bcast relay, I used mDNS repeater and igmp-proxy - lucasec did some great work integrating it with EdgeOS. 

 

 

 mdns {
     repeater {
         interface eth0.5
         interface eth0.6
         interface eth0
     }
 }

 igmp-proxy {
     interface eth0 {
         role downstream
         threshold 1
     }
     interface eth0.5 {
         role upstream
         threshold 1
     }
     interface eth0.6 {
         role downstream
         threshold 1
     }
 }

 

 

 In my configuration, eth0.5 and eth0.6 vlans are isolated using this zone-policy zone rule set:

 

 

firewall {
    all-ping enable
    broadcast-ping disable
    group {
        address-group media {
            address 192.168.10.30-192.168.10.60
            address 192.168.4.255
            address 224.0.0.251
            address 239.255.255.250 
            address 255.255.255.255
        }
        port-group email {
            port imap2
            port imaps
            port smtp
            port ssmtp
        }
        port-group ssdp {
            port mdns
            port 1900
        }
        port-group vpn {
            port isakmp
            port openvpn
            port l2tp
            port 4500
        }
    }
    name gst-int {
        default-action drop
        rule 1 {
            action accept
            description "Allow established connections"
            state {
                established enable
                related enable
            }
        }
        rule 2 {
            action drop
            description "Drop invalid packets"
            state {
                invalid enable
            }
        }
        rule 40 {
            action accept
            description "Allow gst to access printers, MDNS, DNLA and Play-Fi"
            destination {
                group {
                    address-group media
                }
            }
        }
        rule 160 {
            action accept
            description "Allow MDNS access"
            destination {
                group {
                    port-group ssdp
                }
            }
            protocol udp
        }
        rule 9999 {
            action drop
            description "Log and drop anything that does not match"
            log enable
        }
    }
    name gst-local {
        default-action drop
        rule 1 {
            action accept
            description "Allow established connections"
            state {
                established enable
                related enable
            }
        }
        rule 2 {
            action drop
            description "Drop invalid packets"
            state {
                invalid enable
            }
        }
        rule 40 {
            action accept
            description "Allow gst to access printers, MDNS, DNLA and Play-Fi"
            destination {
                group {
                    address-group media
                }
            }
        }
        rule 50 {
            action accept
            description "Allow ICMP"
            protocol icmp
        }
        rule 100 {
            action accept
            description "Permit access to local DNS"
            destination {
                port domain
            }
            protocol tcp_udp
        }
        rule 160 {
            action accept
            description "Allow MDNS access"
            destination {
                group {
                    port-group ssdp
                }
            }
            protocol udp
        }
        rule 700 {
            action accept
            description "Allow DHCP responses from DMZ to Local"
            destination {
                port bootps
            }
            protocol udp
            source {
                port bootpc
            }
        }
        rule 9999 {
            action drop
            description "Log and drop anything that does not match"
            log enable
        }
    }
zone-policy {
    zone gst {
        default-action drop
        from int {
            firewall {
                name int-gst
            }
        }
        from local {
            firewall {
                name local-gst
            }
        }
        interface eth0.6
    }

 

 

I used "show log tail", tcpdump and wireshark to figure out which rules and broadcast addresses were needed in my use case.

 

 

Please help the community find useful posts and solutions by using the "Kudos" and "Accept as Solution" buttons!
New Member
Posts: 20
Registered: ‎01-09-2015
Kudos: 4

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

Success!Willy Nilly I did not know about the MDNS Repeater I installed that and set it up and I was able to see chromecasts from my other subnet and succesfully cast. Thanks so much for the tip on that! I still need to do some testing to see if my PS4 remote play/app  see/works across subnets as well, but this was a major hurdle crossed. Now I can finally split up my wired/wireless/vlans the way I want and still be able to cast.

 

Thanks again

New Member
Posts: 3
Registered: ‎08-17-2015
Kudos: 2

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

Just wanted to reply to this thread to offer another (successful) data point.

 

I just switched to an Edge Router POE to power three access points. (two Unifi AP's and one Unifi Outdoor+)

 

I have eth1 as my WAN port, eth0 for wired LAN1, and the wireless AP's on LAN2 via eth2, eth3 & eth4 (switch0). No bridging, two separate subnets. Running the latest 1.7 release.

 

The general setup went pretty smooth. The only issue I noticed was with my Sonos setup. I couldn't control any of my Sonos devices from the wireless clients.

 

Using the instructions in post #8 of this thread I was able to get things working pretty easily. The one difference I had is that I needed to use port 1900, not 10102.

 

Here is my config:

 

    bcast-relay {
        id 1 {
            description "Sonos Listener"
            interface eth0
            interface switch0
            port 1900
        }

Thanks for providing the solution Britannic!

 

New Member
Posts: 2
Registered: ‎08-26-2015

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

I have an EdgeRouter POE as well, but the configuration is a bit difference, on switch0 is:

 

  • eth2 - Xi-3 Wireless AP
  • eth3 - Sonos Bridge
  • eth4 - uplink to wired network

The Sonos players are on the bridge wireless. I can see them from a wired connection, but not the wireless - none of my mobile devices can see the Sonos players on WiFi. Given that the ERPOE ports are configured as a single switch, would the broadcast relay resolve the multicast issue?

New Member
Posts: 20
Registered: ‎01-09-2015
Kudos: 4

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

From my understanding which is very beginner, the broadcast repeater is to repeat broadcasts across networks eg: 192.168.1.100/24 --> 192.168.2.100/24, your switch0 is on the same network so I don't believe the relay would solve this issue, it is probably somewhere else.

Established Member
Posts: 1,361
Registered: ‎10-01-2014
Kudos: 674
Solutions: 66

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

@colinbowern: Did you try it?
Please help the community find useful posts and solutions by using the "Kudos" and "Accept as Solution" buttons!
New Member
Posts: 2
Registered: ‎08-26-2015

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

@Tedz @britannic turned out to be Client Isolation enabled on the Xclaim Wireless Xi-3 APs. Once I flipped that everything worked.

 

The clue came from pinging around the network and noticing that on wireless I could only ping the router. None of the wired devices or other wireless devices were pingable. Disabled client isolation and everything worked.

New Member
Posts: 13
Registered: ‎02-23-2016

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

[ Edited ]

This is regarding an ERLite3 running 1.7

This thread has gotten me further along my goal of setting up sonos with the erlite but i am still a little ways away from fully working. I have a Play 1 on eth0 and eth1 is connected to my company LAN. I want to enable a select few in the company to change the current playing track on sonos using controllers on the LAN.

 

Before going through the process for bcast-relay I would get to the step where it would discover my speakers and then ask to press the button on tthe bridge or boost. In other words it couldn't find the actual speaker. I went through the setup and now see that it sees a play:1 speaker and wants me to click the button there. AWESOME.

 

But I click the button on the speaker and nothing happens. It seems the controller knows where to go, but is being blocked from talking to it. I am fumbling about here so this could be a stupid rookie mistake.... here is my config:

 

 firewall {
     all-ping enable
     broadcast-ping disable
     ipv6-receive-redirects disable
     ipv6-src-route disable
     ip-src-route disable
     log-martians enable
     name SonosIN {
         default-action accept
         description ""
         rule 1 {
             action accept
             description LetEverythingOut
             log disable
             protocol all
             state {
                 established enable
                 invalid enable
                 new enable
                 related enable
             }
         }
     }
     name WAN_IN {
         default-action drop
         description "WAN to internal"
         rule 1 {
             action accept
             description "Allow MattW"
             log disable
             protocol all
             source {
                 mac-address a4:5e:60:e4:e2:01
             }
             state {
                 established enable
                 invalid enable
                 new enable
                 related enable
             }
         }
         rule 2 {
             action accept
             description "Allow established/related"
             log enable
             protocol all
             state {
                 established enable
                 related enable
             }
         }
         rule 3 {
             action drop
             description "Drop invalid state"
             state {
                 invalid enable
             }
         }
     }
     name WAN_LOCAL {
         default-action drop
         description "WAN to router"
         rule 10 {
             action accept
             description "Allow established/related"
             state {
                 established enable
                 related enable
             }
         }
         rule 20 {
             action drop
             description "Drop invalid state"
             state {
                 invalid enable
             }
         }
         rule 21 {
             action accept
             description "allow matt"
             log disable
             protocol all
             source {
                 mac-address a4:5e:60:e4:e2:01
             }
             state {
                 established enable
                 invalid enable
                 new enable
                 related enable
             }
         }
     }
     receive-redirects disable
     send-redirects enable
     source-validation disable
     syn-cookies enable
 }
 interfaces {
     ethernet eth0 {
         address 192.168.1.1/24
         description Sonos
         duplex auto
         firewall {
             in {
                 name SonosIN
             }
         }
         speed auto
     }
     ethernet eth1 {
         address 192.168.0.22/24
         description Terrier
         duplex auto
         firewall {
             in {
                 name WAN_IN
             }
             local {
                 name WAN_LOCAL
             }
             out {
                 name SonosIN
             }
         }
         speed auto
     }
     ethernet eth2 {
         address 192.168.2.1/24
         description "Local 2"
         duplex auto
         speed auto
     }
     loopback lo {
     }
 }
 port-forward {
     auto-firewall enable
     hairpin-nat enable
     lan-interface eth0
     rule 1 {
         description "PC Controller"
         forward-to {
             address 192.168.1.10
         }
         original-port 3400
         protocol tcp_udp
     }
     rule 2 {
         description "IOS Controller"
         forward-to {
             address 192.168.1.10
         }
         original-port 3401
         protocol tcp_udp
     }
     rule 3 {
         description Update
         forward-to {
             address 192.168.1.10
         }
         original-port 4444
         protocol tcp_udp
     }
     rule 4 {
         description NetBIOS
         forward-to {
             address 192.168.1.10
         }
         original-port 136-139
         protocol tcp_udp
     }
     rule 5 {
         description "UPnP Events"
         forward-to {
             address 192.168.1.10
         }
         original-port 1900
         protocol tcp_udp
     }
     rule 6 {
         description "UPnP Responses"
         forward-to {
             address 192.168.1.10
         }
         original-port 1901
         protocol tcp_udp
     }
     rule 7 {
         description "Initial Config"
         forward-to {
             address 192.168.1.10
         }
         original-port 6969
         protocol tcp_udp
     }
     rule 8 {
         description cifs
         forward-to {
             address 192.168.1.10
         }
         original-port 445
         protocol tcp_udp
     }
     rule 9 {
         description ""
         forward-to {
             address 192.168.1.10
         }
         original-port 1400
         protocol tcp_udp
     }
     rule 10 {
         description ""
         forward-to {
             address 192.168.1.10
         }
         original-port 1401
         protocol tcp_udp
     }
     wan-interface eth1
 }
 service {
     bcast-relay {
         id 1 {
             description "Sonos Listener"
             interface eth0
             interface eth1
>            port 1900
         }
     }
     dhcp-server {
         disabled false
         hostfile-update disable
         shared-network-name LAN1 {
             authoritative disable
             subnet 192.168.1.0/24 {
                 default-router 192.168.1.1
                 dns-server 8.8.8.8
                 dns-server 8.8.4.4
                 domain-name sns.local
                 lease 86400
                 start 192.168.1.21 {
                     stop 192.168.1.100
                 }
                 static-mapping Loaners-Air {
                     ip-address 192.168.1.5
                     mac-address 38:c9:86:08:0e:be
                 }
                 static-mapping SonosZP {
                     ip-address 192.168.1.10
                     mac-address b8:e9:37:e5:96:06
                 }
             }
         }
     }
     dns {
     }
     gui {
         https-port 443
     }
     nat {
         rule 5010 {
             log enable
             outbound-interface eth1
             outside-address {
             }
             protocol all
             source {
             }
             type masquerade
         }
     }
     ssh {
         port 22
         protocol-version v2
     }
 }
 system {
     gateway-address 192.168.0.1
     host-name ubnt
     login {
         user ubnt {
             authentication {
                 encrypted-password $1$zKNoUbAo$gomzUbYvgyUMcD436Wo66.
             }
             level admin
         }
     }
     ntp {
         server 0.ubnt.pool.ntp.org {
         }
         server 1.ubnt.pool.ntp.org {
         }
         server 2.ubnt.pool.ntp.org {
         }
         server 3.ubnt.pool.ntp.org {
         }
     }
     syslog {
         global {
             facility all {
                 level notice
             }
             facility protocols {
                 level debug
             }
         }
     }
     time-zone UTC
 }  

 

New Member
Posts: 20
Registered: ‎05-06-2016
Kudos: 5

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

1) This is fantastic!!!!

2) When can the devs get this integrated into the standard Ubiquiti build?

New Member
Posts: 20
Registered: ‎05-06-2016
Kudos: 5

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

Sorry, I was just so excited. After struggling for hours with firewall rules, the IGMP proxy solution on the support site, IGMP snooping configurations, it all didnt matter! This works in only a few commands!

Established Member
Posts: 1,361
Registered: ‎10-01-2014
Kudos: 674
Solutions: 66

Re: Multicast, Sonos, Phorus & Play-Fi Broadcast 255.255.255.255:<port> Discovery Solution

Glad it worked out for you!

Please help the community find useful posts and solutions by using the "Kudos" and "Accept as Solution" buttons!
Reply