Feature #10818
closedUDP Broadcast Relay
0%
Description
Current packages like Avahi and PIMD can help users cast across VLANs, which is great for HOME/GUEST to IOT type scenarios, but it doesn't seem to address everything and IGMP proxies, snooping, etc. don't either. Google Home, for example, won't list speaker groups which involve the devices on the downstream VLAN. Apparently Chromecasts do some interesting things like changing source/destinations as Chromecast requires broadcasts to originate from an address on its subnet.
I found this package that runs a UDP relay daemon. [[https://github.com/marjohn56/udpbroadcastrelay]]
It's an updated version of a UDP relay from a few years back and it is working perfectly in identifying my Chromecast speaker groups on my IOT VLAN (while I remain on GUEST). It appears to be effective at all of these things:- mDNS / Multicast DNS (Chromecast Discovery + Bonjour + More)
- SSDP (Roku Discovery, DLNA Media, Sonos, UPnP + More)
- ifx Bulb Discovery
- Broadlink IR Emitter Discovery
- Warcraft 3 Server Discovery
- Windows Network Neighborhood Discovery
- Syncthing Discovery
- Raknet Discovery (Minecraft)
This would be a great addition as a package in pfSense. As it stands, it is a bit tricky to run as a daemon (it hangs other services if not handled properly) and it would be nice to have an indicator on the dashboard with the other services when it is started and stopped.
Files
Updated by Garth Kirkwood almost 4 years ago
- File UDPBroadcastRelay.JPG UDPBroadcastRelay.JPG added
I have found this tool really handy for me so I want to help to make it happen, unfortunately I don't have the programming skills to do any of the behind the scenes nuts and bolts stuff, but what I can do is front-end stuff and help develop the logic so that a programmer can simply follow that.
To show my genuine interest I have made a package panel and am wondering if it is worth perusing any further, i.e. developing the underlying logic etc? Here is what it looks like:
Updated by Chetan Rao almost 4 years ago
I just came here to say the same, and saw your post Garth. I'm a programmer by profession, but have never built any PfSense packages. However, I'm strongly motivated, since this tool solved a nagging problem that I've had.
In case you're unaware, there's a thread for this tool here: https://forum.netgate.com/topic/155698/how-can-i-get-this-udp-relay-package-for-casting-across-vlans
If you'd like, please post your screenshot there, and we can collaborate and see where it goes.
Thanks.
Updated by Kevin L almost 4 years ago
Would absolutely love to see this becoming a pfSense package. Thank you Chetan and Garth for taking a shot at this.
Updated by Steve Wheeler over 3 years ago
This is now a FreeBSD port: https://www.freshports.org/net/udpbroadcastrelay/
Updated by Carl Schmitz over 3 years ago
Would also like to this this as pfSense package with GUI.
Updated by MILO MEDIN almost 3 years ago
Is there any work going on to integrate this? I have a problem with chromecast audio groups that this would fix (that avahi doesn't).
Updated by Axel Taferner almost 3 years ago
MILO MEDIN wrote in #note-7:
Is there any work going on to integrate this? I have a problem with chromecast audio groups that this would fix (that avahi doesn't).
I can't answer your question but you can already fix your problem by manually setting this up by following the instructions from the forums linked above in the reply from Chetan Rao.
Updated by Viktor Gurov almost 3 years ago
Updated by James M almost 3 years ago
Hello Viktor Gurov, is there any ETA for this package to be merged into pfSense? It seems the GitLab linked does not resolve (maybe an internal link?). Thanks and Cheers!
Updated by Øystein Gåsdal over 2 years ago
Hi.
Any news on this?
Eagerly awaiting this one
Updated by Marcos M over 2 years ago
There's no GUI for it, but it can be installed on 22.05/2.7:
[22.05-BETA][root@gw]/root: pkg search udp udpbroadcastrelay-0.3.b UDP multicast/unicast relayer
If @Garth Kirkwood is still interested, they should be able to start building a package for it.
Updated by Øystein Gåsdal over 2 years ago
Thank you for the information.
Let's hope @Garth Kirkwood sees this then
Updated by Garth Kirkwood over 2 years ago
Hey guys thanks for the shout out, but I have NO clue how to make this a package.
All I was able to do was build a webpage that could be used to manage it, and again there is no smarts behind this webpage, it is simply a webpage.
I am happy to help someone who can do the backend stuff.
Updated by Djon K about 2 years ago
Thanks for the interest in this package. I took some time this weekend to create an initial version of a pfSense package around the udpbroadcastrelay solution. It is indeed based on the already existing port in the latest development branch.
If you are still interested in the package, it would be great to get some support in further developing and testing. Please find more info and the link to the repo (added a ready to go .pkg file as well) here: [[https://forum.netgate.com/topic/174725/udp-broadcast-relay]]
Updated by Marcos M about 2 years ago
- File pfSense-pkg-udpbroadcastrelay-0.1_4.pkg added
- Assignee set to Marcos M
There's currently pull requests open to add the package on both 2.6 and 2.7 (PHP8). These include added functionality that I'm not seeing in yours. I'll move the PHP8 MR to the public github repo since it should be ready to use from the testing I've done so far. Here's a pkg that can be added (in 2.6) for anyone that wants to test.
Add attached package with pkg install -fy /path_to_file
- for 2.7/23.01 only.
https://gitlab.netgate.com/pfSense/FreeBSD-ports/-/merge_requests/280
Updated by Marcos M about 2 years ago
- Status changed from New to Pull Request Review
Updated by Djon K about 2 years ago
That's a coincidence! Saw the pull request you created this morning. Looking at the code, it seems you took a very similar approach. Let's consolidate efforts here. Thanks.
Updated by Marcos M about 2 years ago
- File deleted (
pfSense-pkg-udpbroadcastrelay-0.1_4.pkg)
Updated by Marcos M about 2 years ago
- File pfSense-pkg-udpbroadcastrelay-0.1_4.pkg added
Updated by Marcos M about 2 years ago
- File deleted (
pfSense-pkg-udpbroadcastrelay-0.1_4.pkg)
Updated by Marcos M about 2 years ago
- File pfSense-pkg-udpbroadcastrelay-0.1_4.pkg added
Updated by Marcos M about 2 years ago
- File deleted (
pfSense-pkg-udpbroadcastrelay-0.1_4.pkg)
Updated by Marcos M about 2 years ago
- File pfSense-pkg-udpbroadcastrelay-0.1_5.pkg added
Updated by Marcos M about 2 years ago
- File deleted (
pfSense-pkg-udpbroadcastrelay-0.1_5.pkg)
Updated by Marcos M about 2 years ago
- File pfSense-pkg-udpbroadcastrelay-0.1_5.pkg added
Updated by Marcos M about 2 years ago
- File pfSense-pkg-udpbroadcastrelay-1.0.pkg added
Updated by Marcos M about 2 years ago
- File deleted (
pfSense-pkg-udpbroadcastrelay-1.0.pkg)
Updated by Marcos M about 2 years ago
- File pfSense-pkg-udpbroadcastrelay-1.0.pkg added
Updated by Marcos M about 2 years ago
- File deleted (
pfSense-pkg-udpbroadcastrelay-0.1_5.pkg)
Updated by Marcos M about 2 years ago
- File deleted (
pfSense-pkg-udpbroadcastrelay-1.0.pkg)
Updated by Marcos M about 2 years ago
- File pfSense-pkg-udpbroadcastrelay-0.1_6.pkg added
- File pfSense-pkg-udpbroadcastrelay-1.0.pkg added
Updated by gen hwe about 2 years ago
So glad you sirs are developing this. Thank you very much.
However, my only issue right now is I cant add wireguard interface. Any solution to this?
Updated by Marcos M about 2 years ago
Wireguard interfaces are point-to-point interfaces and do not support the broadcast flag, hence cannot be used.
Updated by James M about 2 years ago
Hello Marcos M, many thanks for your great work. This package will definitely be interesting for a lot of people! Since udpbroadcastrelay will be available on 22.05/2.7, do you think it would be feasible to add it to the roadmap for the 2.7 release (https://redmine.pfsense.org/versions/70)?
Many thanks!
Updated by Marcos M about 2 years ago
I believe it's in a good enough state where it can at least be added to the dev branch, but if/when it's merged is up to the devs and their time so I don't know when it will be available.
Updated by Dean Arnold almost 2 years ago
I've successfully installed the 1.0 package on the 2.7.0 snapshots and was able to configure mDNS (5353/224.0.0.251) and SSDP (1900/239.255.255.250) for Sonos & AppleTV/Airplay, this is something I was not able to achieve with Avahi/PIMD/IGMP-Proxy.
Thank you for developing this package. I hope to see it offered in the official packages soon.
Updated by John Stafford almost 2 years ago
I installed pfSense-pkg-udpbroadcastrelay-0.1_6.pkg on my 2.6 install, but am unable to start the service...
Suggestions?
Updated by Øystein Gåsdal almost 2 years ago
Sadly it doesn't seem to IPv6.
I have set up mDNS (5353/224.0.0.251) and SSDP (1900/239.255.255.250), only with IPv6 equivalents, but it doesn't seem to work
Updated by Djon K almost 2 years ago
The underlying package (https://github.com/marjohn56/udpbroadcastrelay) does not support IPv6 (https://github.com/marjohn56/udpbroadcastrelay/issues/5). I'm sure it will be added over time and the pfSense package can follow.
I've been running the package successfully for months. Think we got the interface to a stable point that is very usable for a wide group of folks. Would love to see it integrated into the main package repository and was hoping for 2.7.0.
What is the path forward?
Updated by Joe Lippa almost 2 years ago
Very nice job @Marcos M, thank you to you and everyone else that has contributed to the creation of this package.
I'm currently using pfSense-pkg-udpbroadcastrelay-0.1_6.pkg with psSense 2.6 and it's working perfectly for my use-case but I agree with @John Stafford and the issue that he identified above, a UI bug of sorts exists.
In my experience the underlying udpbroadcastrelay process/service is running and working fine but /status_services.php reports that the service is stopped as shown in the screenshot above.
It's not a showstopper but is probably something that wants to be ironed out before this package gets picked up for merge into 2.7
Updated by Marcos M almost 2 years ago
Check Diagnostics / System Activity and make sure that the process is actually running. There are some errors which are not captured in logs which would prevent the process from starting (and hence show stopped in services).
Edit: Additional logging has been added (under System Logs) which includes startup errors. I'm only providing a pre-built package for 2.7/23.01.
Updated by Marcos M almost 2 years ago
- File deleted (
pfSense-pkg-udpbroadcastrelay-0.1_6.pkg)
Updated by Marcos M almost 2 years ago
- File deleted (
pfSense-pkg-udpbroadcastrelay-1.0.pkg)
Updated by Marcos M almost 2 years ago
- File pfSense-pkg-udpbroadcastrelay-1.0.pkg added
Updated by M J almost 2 years ago
Is there any way to install 1.0 package in pfSense 2.6? Installation failed, see below. Or do I have to use the older 0.1_6 package?
Updated by James R almost 2 years ago
I've installed 23.01 RC and pfSense-pkg-udpbroadcastrelay-1.0.pkg installs without issue.
Updated by D. I. almost 2 years ago
I'm seeing a lot of talk about a package for pfSense 2.6. However, the package seems to be removed from this page (and the Netgate GitLab is unreachable). Is this just me?
Updated by James R almost 2 years ago
D. I. wrote in #note-48:
I'm seeing a lot of talk about a package for pfSense 2.6. However, the package seems to be removed from this page (and the Netgate GitLab is unreachable). Is this just me?
23.01 had reached RC so a release is imminent. Author removed 0.1_6 as they likely do not want to support different versions of the package.
Updated by D. I. almost 2 years ago
James R wrote in #note-49:
D. I. wrote in #note-48:
I'm seeing a lot of talk about a package for pfSense 2.6. However, the package seems to be removed from this page (and the Netgate GitLab is unreachable). Is this just me?
23.01 had reached RC so a release is imminent. Author removed 0.1_6 as they likely do not want to support different versions of the package.
Got it, thanks! Hopefully 23.01 releases soon, I can't wait to use this package!
Updated by Marcos M over 1 year ago
- Status changed from Pull Request Review to Feedback
The package is now available for dev snapshots (currently 23.05/2.7).
Updated by James G over 1 year ago
The upstream was updated to add additional features to include options such as --allowcidr and --blockcidr:
https://github.com/marjohn56/udpbroadcastrelay/commit/928a6ad4f790491b5f0c53a37ac978bff2028a18
However, they are not present in this package. Would it be feasible for this package to be updated to reflect the upstream please?
[23.01-RELEASE][blah@blah]/root/udpbroadcastrelay: pkg info udpbroadcastrelay udpbroadcastrelay-0.3.b Name : udpbroadcastrelay Version : 0.3.b Installed on : Thu Mar 9 19:52:48 2023 AEDT Origin : net/udpbroadcastrelay Architecture : FreeBSD:14:amd64 Prefix : /usr/local Categories : net Licenses : GPLv2 Maintainer : m.muenz@gmail.com WWW : https://github.com/marjohn56/udpbroadcastrelay Comment : UDP multicast/unicast relayer Annotations : FreeBSD_version: 1400073 build_timestamp: 2023-02-17T16:20:47+0000 built_by : poudriere-git-3.3.99.20220831 port_checkout_unclean: no port_git_hash : c265aeb485a2 ports_top_checkout_unclean: yes ports_top_git_hash: 2af75af3449a repo_type : binary repository : pfSense Flat size : 38.7KiB Description : udpbroadcastrelay is a UDP multicast relayer. Its intended use is to rebroadbcast udp packets on a specific port across interfaces, be those interfaces physical or VLAN. It is used where devices such as Sonos or Sky are spread accross different subnets and are not able to detect the servers or devices. WWW: https://github.com/marjohn56/udpbroadcastrelay
[23.01-RELEASE][blah@blah]/root: /usr/local/sbin/udpbroadcastrelay --id 2 --port 5353 --dev igb1 --dev igb1.50 --multicast 224.0.0.251 -s 1.1.1.1 --allowcidr 192.168.1.0/24 --allowcidr 192.168.50.0/24 --blockcidr 192.168.50.163/32 -d ID set to 2 Port set to 5353 Outgoing source IP set to 1.1.1.1 Unknown arg: --allowcidr [23.01-RELEASE][blah@blah]/root: /usr/local/sbin/udpbroadcastrelay --id 2 --port 5353 --dev igb1 --dev igb1.50 --multicast 224.0.0.251 -s 1.1.1.1 --blockcidr 192.168.50.163/32 -d ID set to 2 Port set to 5353 Outgoing source IP set to 1.1.1.1 Unknown arg: --blockcidr
Updated by Marcos M over 1 year ago
Idealy the port would be updated upstream in FreeBSD rather than having to run a pfSense-specific build.
For those allow/block parameters, it seems to me that simple firewall rules will work. The real benefit will come if/when https://github.com/marjohn56/udpbroadcastrelay/issues/13 is implemented.
Updated by I W over 1 year ago
I can verify that pkg install pfSense-pkg-udpbroadcastrelay-1.0.pkg doesn't work on pfSense 2.6
It would be nice if pfSense-pkg-udpbroadcastrelay-0.1_6.pkg were still available for those of us waiting on pfsense 2.7 stable.
amd64
12.3-STABLE
FreeBSD 12.3-STABLE RELENG_2_6_0-n226742-1285d6d205f pfSense
Crash report details:
PHP Errors:
[04-May-2023 23:15:54 America/New_York] PHP Fatal error: Uncaught Error: Call to undefined function config_get_path() in /usr/local/pkg/udpbroadcastrelay/udpbroadcastrelay.inc:458
Stack trace:
#0 /usr/local/pkg/udpbroadcastrelay/udpbroadcastrelay.inc(202): udpbr_get_settings(true)
#1 /etc/inc/pkg-utils.inc(802) : eval()'d code(1): udpbr_resync()
#2 /etc/inc/pkg-utils.inc(802): eval()
#3 /etc/inc/pkg-utils.inc(928): eval_once('udpbr_resync();')
#4 /etc/rc.packages(76): install_package_xml('udpbroadcastrel...')
#5 {main}
thrown in /usr/local/pkg/udpbroadcastrelay/udpbroadcastrelay.inc on line 458
Updated by Alhusein Zawi over 1 year ago
- File clipboard-202306031301-l9do0.png clipboard-202306031301-l9do0.png added
- File udprelay.png udprelay.png added
installed the package on 2.7 and the service is working
2.7.0-DEVELOPMENT (amd64)
built on Fri May 26 06:04:59 UTC 2023
FreeBSD 14.0-CURRENT
Updated by Marcos M over 1 year ago
- File deleted (
pfSense-pkg-udpbroadcastrelay-1.0.pkg)