UDP Broadcast Relay
-
Thanks everyone for contributing to the community. This thread is aimed to develop and test the pfSense version of UDP Broadcast Relay.
UDP Broadcast Relay is a program listens for packets on a specified UDP broadcast port. When a packet is received, it sends that packet to all specified interfaces but the one it came from as though it originated from the original sender.
The primary purpose of this is to allow devices or game servers on separated local networks (Ethernet, WLAN, VLAN) that use UDP broadcasts to find each other to do so.
Typical use-cases include cross-lan or cross-VLAN broadcasting of:
- mDNS / Multicast DNS (Chromecast Discovery + Bonjour + More)
- SSDP (Roku Discovery, DLNA Media, Sonos, UPnP + More)
- Lifx Bulb Discovery
- Broadlink IR Emitter Discovery
- Warcraft 3 Server Discovery
- Windows Network Neighborhood Discovery
- Syncthing Discovery
- Raknet Discovery (Minecraft)
For more information check-out the original package: https://github.com/marjohn56/udpbroadcastrelay
This pfSense package is wrapping the generic udpbroadcastrelay package into the pfSense interface for easier administration. It has basic functionality to setup and configure the relay functionality.
It allows for multiple instances that enable relaying multiple ports across interfaces.
This version is the MVP and I'm looking for collaborators to develop and test. You can find the repository in this fork https://github.com/djonk/FreeBSD-ports/tree/devel/net/pfSense-pkg-udpbroadcastrelay
-
Coincidentally I've been working on this as well and already have a pull request internally for both 2.6/2.7. I've moved the 2.7 pull request to the public repo. Please feel free to give any feedback here:
https://github.com/pfsense/FreeBSD-ports/pull/1189Reference: https://redmine.pfsense.org/issues/10818#note-16
-
Dear all,
Many thanks for investing time to have wrapped this great program with a UI. I can't wait to have it installed in my PfSense! I hope you'll somewhat find a solution for this double implementation situation.
@marcosm Assuming your PR is selected, can we expect to have this package in the next release of PfSense?
Thanks for your work!
-
Removed my original package in favor of the new one posted by @marcosm to prevent duplication.
-
@keterna said in UDP Broadcast Relay:
@marcosm Assuming your PR is selected, can we expect to have this package in the next release of PfSense?
I don't have an ETA. You may use the package included in the redmine in the meantime if you wish.
-
@marcosm
I'm new to pfsense so apologies for this quite lame question but how do I install the pkg file from readmine attachment to my pfsense? -
@gzesku run
pkg install /pathtofile
-
@marcosm
Thank you sir!
Would you mind to advise what's the settings equivalent of the original command:
./udpbroadcastrelay --id 1 --port 5353 --dev eth0 --dev eth1 --multicast 224.0.0.251 -s 1.1.1.1How do I enter value of -s parameter in your GUI?
Is this sufficient?
Also - this solution still doesn't seem to work for me. Am I missing any firewall rules? I think they are quite broad anyway (for the testing purposes) Trying to force this on regular LAN and VLAN (for IoT)
-
@gzesku That spoofs both the address and port, so select the respective option from the drop down.
The package doesn't touch firewall rules, so you will need to make sure the traffic is allowed. Screenshot looks as if it should allow it.
-
@marcosm I'm so happy to finally see a gui for this. Thank you for that. There always room for some improvements, though.
Anyway, my pfSense reports that this add-on crashes. The log looks like this:Crash report begins. Anonymous machine information: amd64 12.3-STABLE FreeBSD 12.3-STABLE devel-12-n227387-7d2e2bbdf4a pfSense Crash report details: PHP Errors: [22-Sep-2022 09:38:25 Europe/Oslo] PHP Warning: Invalid argument supplied for foreach() in /usr/local/pkg/udpbroadcastrelay/udpbroadcastrelay.inc on line 42 [22-Sep-2022 17:18:46 Europe/Oslo] PHP Warning: Invalid argument supplied for foreach() in /usr/local/pkg/udpbroadcastrelay/udpbroadcastrelay.inc on line 42 [22-Sep-2022 17:18:49 Europe/Oslo] PHP Warning: Invalid argument supplied for foreach() in /usr/local/pkg/udpbroadcastrelay/udpbroadcastrelay.inc on line 42 [22-Sep-2022 17:18:49 Europe/Oslo] PHP Warning: Invalid argument supplied for foreach() in /usr/local/pkg/udpbroadcastrelay/udpbroadcastrelay.inc on line 42 [22-Sep-2022 17:18:57 Europe/Oslo] PHP Warning: Invalid argument supplied for foreach() in /usr/local/pkg/udpbroadcastrelay/udpbroadcastrelay.inc on line 42 [22-Sep-2022 17:20:15 Europe/Oslo] PHP Warning: Invalid argument supplied for foreach() in /usr/local/pkg/udpbroadcastrelay/udpbroadcastrelay.inc on line 42 No FreeBSD crash data found.
I am running this version of pfSense CE:
2.7.0-DEVELOPMENT (amd64)
built on Fri Aug 12 00:02:48 UTC 2022
FreeBSD 12.3-STABLEAlso; does anyone have a working entry for Google (Nest) Home Devices?
Thanks agaion
-
@dal-0 Thanks for testing! Make sure you're using the latest one on the redmine. That error doesn't line up with the current code.
-
@marcosm
Hmm, I ran pkg info udpbroadcastrelay and I do indeed have the wrong version installed. Or rather, it seems that I ran 2 versions at the same time:pkg info udpbroadcastrelay udpbroadcastrelay-0.3.b Name : udpbroadcastrelay Version : 0.3.b Installed on : Fri Sep 16 14:09:23 2022 CEST Origin : net/udpbroadcastrelay Architecture : FreeBSD:12: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: 1203506 build_timestamp: 2022-08-03T17:06:16+0000 built_by : poudriere-git-3.3.99.20220713 port_checkout_unclean: no port_git_hash : cf118ccf8755 ports_top_checkout_unclean: yes ports_top_git_hash: 1fd0a3eecbfc repo_type : binary repository : pfSense Flat size : 38.8KiB 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.
So I ran an uninstall using pkg delete udpbroadcastrelay, and this pops up:
Installed packages to be REMOVED: pfSense-pkg-udpbroadcastrelay: 0.1_4 udpbroadcastrelay: 0.3.b Number of packages to be removed: 2
So I removed them both to be sure.
But when I try to install the new package I got from here, I get this error:pkg install /tmp/pfSense-pkg-udpbroadcastrelay-0.1_4.pkg Updating pfSense-core repository catalogue... Fetching meta.conf: 100% 163 B 0.2kB/s 00:01 Fetching packagesite.pkg: 100% 2 KiB 1.8kB/s 00:01 Processing entries: 0% pkg: wrong architecture: FreeBSD:14:amd64 instead of FreeBSD:12:amd64 pkg: repository pfSense-core contains packages with wrong ABI: FreeBSD:14:amd64 Processing entries: 100% Unable to update repository pfSense-core Updating pfSense repository catalogue... Fetching meta.conf: 100% 163 B 0.2kB/s 00:01 Fetching packagesite.pkg: 100% 149 KiB 152.4kB/s 00:01 Processing entries: 0% pkg: wrong architecture: FreeBSD:14:amd64 instead of FreeBSD:12:amd64 pkg: repository pfSense contains packages with wrong ABI: FreeBSD:14:amd64 Processing entries: 100% Unable to update repository pfSense Error updating repositories!
Nothing is easy in my world
Thanks again. -
@dal-0 There's supposed to be two packages. One is the GUI, and the other is the actual application. The second issue is unrelated - change to the dev branch and back to fix it.
-
@marcosm
Would you mind checking pkg 1.0 posted on redmine recently? Can't install it as receive "Unrecognized archive format" error. File 0.1_5 can be installed with no issues :)Thanks
-
@gzesku 1.0 is only for dev builds.
-