Quote from: train_wreck on November 18, 2023, 10:59:54 AMJust curious: have you set up firewall rules such that source:port (which should be unicast, IMHO) of those packets can be reached accross the networks?
Then, to get the TV working I have to run:Code Selectudpbroadcastrelay --id 1 --port 1900 --dev lan.20 --dev lan.30 --multicast 239.255.255.250 --msearch dial -d -s 1.1.1.2
Quote
To get the Roku to work I have to run:Code Selectudpbroadcastrelay --id 1 --port 1900 --dev lan.20 --dev lan.30 --multicast 239.255.255.250 -d
I tried running both commands with a different ID number but this caused a multicast flood.
When running both commands with different IDs, both instances receive all the the traffic to 230.355.255.250:1900. This includes traffic from the other instance, respectively. Thus, packets sent by one instance are received by the other instance and will be re-sent on all configured interfaces by the other instance (if not filtered by --msearch). This results in the two instances playing ping-pong with packets containing the --msearch string, effectively flooding the networks.
The clean way to get this working would be to have only one instance and let the result of --msearch decide whether source address/port is to be preserved or replaced instead of completely discard the packet.
I just digged through this thread, and found more contradicting suggestions:
Code Select
mDNS (Chromecast/Apple Bonjour)
224.0.0.251:5353 -s1.1.1.1
224.0.0.251:5353 224.0.0.51:5353 -s1.1.1.1
224.0.0.251:5353
224.0.0.1:5353
SSDP (UPnp/DLNA Media)
239.255.255.250:1900
239.255.255.250:1900 -s1.1.1.1
So it seems you are not the only one having this problem. You're just the first one who did a systematic analysis of the problem.
PS:
To be honest, I have a hard time to understand what this 1.1.1.1/1.1.1.2 is good for and how it is supposed to get things working.
Without this mangling, the receiver will respond to the original unicast address:port. As long as receiver can do unicast with the original address:port (check firewall rules), communication should work, IMHO. All is good.
OTOH: having this -s mangling in place, UDPBR would put its own interface-address (which would be UNICAST) (and port with 1.1.1.1) into the packet. Unless it also listens to this address:port and remembers to forward traffic to the address:port which were sitting in the original packet, I don't see how this is supposed to work. Have just done a quick glance on the source and I don't think UDPBR is currently doing this forwarding.
So, if I understand things correctly, this -s option is only good for breaking things. Please correct me if I am wrong.
Please double-check that both sides can properly do unicast-communication for the ports/protocols they need to the other side.