Open fherreror opened 7 months ago
Try asking it to relay 255.255.255.255:15600 ?
Try asking it to relay 255.255.255.255:15600 ?
It didn't worked. However, I've been looking into it, and I have found that it may be a Samsung problem, that the TV don't allow web sockets across bland.
@fherreror I'm having the same issue with my Samsung TVs. My other devices on the IoT VLAN show up using the Youtube app (Chromecast, Roku), except the Samsung TVs.
It didn't worked. However, I've been looking into it, and I have found that it may be a Samsung problem, that the TV don't allow web sockets across bland.
Samsung TVs will reject any requests coming from another network (Has to be the same subnet as the TV). So using masquerading or rewriting the source IP is a possible solution.
However, I don't think that that's the reason why they fail to show up in the list of cast devices (eg. with the Youtube app) when using multicast-relay. Many of the solutions like these seem to fix connectivity issues and not network discovery issues: https://www.home-assistant.io/integrations/samsungtv/#subnetvlan https://realmenweardress.es/2022/04/vlans-and-samsung-tvs/ https://github.com/home-assistant/core/issues/35049#issuecomment-893194912
Fix for Xiaomi devices, but same issue: https://github.com/rytilahti/python-miio/issues/422#issuecomment-1234604466 https://github.com/rytilahti/python-miio/issues/422#issuecomment-980836257
By monitoring my network traffic I've noticed just as you have, a broadcast being sent to .255 on the local subnet port 15600 (in my case it's 10.0.10.255) (Correction: 10.10.0.255).
I don't know if you've been able to solve your issues @fherreror since. I've enabled masquerading across VLANs but still discovery hasn't worked when using multicast-relay.
The only difference is that I have not tried adding 224.0.0.7:8001 as you have. I will try adding it later today and get back.
This commit https://github.com/alsmith/multicast-relay/commit/461d1c97f3aaf0ab9f8996e1a8f24c6b8204d6b4 is supposed to fix broadcasts using the local subnet .255 ?
Unfortunately I have not gotten it to work. Here's my setup using OpenWrt and multicast-relay:
br-lan.10 (10.10.0.0/24) (lan) br-lan.20 (10.20.0.0/24) (iot)
samsung tvs: 10.20.0.103, 10.20.0.105
I used this suggestion to enable SNAT rewrites: https://github.com/rytilahti/python-miio/issues/422#issuecomment-1234604466 And also this suggestion to enable masquerading across VLANs: https://www.reddit.com/r/openwrt/comments/jliml3/comment/gapdtha/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
Both didn't work.
tcpdump:
# tcpdump -tnp -i eth1 -c 20 '((ether broad
cast) or (ether multicast))'
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
IP 10.20.0.103.8001 > 224.0.0.7.8001: UDP, length 196
IP 10.20.0.103.53393 > 10.20.0.255.15600: UDP, length 35
IP 10.20.0.105.37754 > 239.255.255.250.15600: UDP, length 35
IP 10.20.0.105.8001 > 224.0.0.7.8001: UDP, length 196
IP 10.20.0.103.8001 > 224.0.0.7.8001: UDP, length 196
IP 10.20.0.103.52013 > 239.255.255.250.15600: UDP, length 35
IP 10.20.0.105.8001 > 224.0.0.7.8001: UDP, length 196
IP 10.20.0.103.8001 > 224.0.0.7.8001: UDP, length 196
IP 10.20.0.105.44162 > 10.20.0.255.15600: UDP, length 35
IP 10.20.0.105.8001 > 224.0.0.7.8001: UDP, length 196
IP 10.20.0.103.8001 > 224.0.0.7.8001: UDP, length 196
IP 10.20.0.103.33459 > 10.20.0.255.15600: UDP, length 35
IP 10.20.0.105.36709 > 239.255.255.250.15600: UDP, length 35
IP 10.20.0.105.8001 > 224.0.0.7.8001: UDP, length 196
IP 10.20.0.103.8001 > 224.0.0.7.8001: UDP, length 196
IP 10.20.0.103.46721 > 239.255.255.250.15600: UDP, length 35
IP 10.20.0.105.8001 > 224.0.0.7.8001: UDP, length 196
IP 10.20.0.103.8001 > 224.0.0.7.8001: UDP, length 196
IP 10.20.0.105.40439 > 10.20.0.255.15600: UDP, length 35
IP 10.20.0.105.8001 > 224.0.0.7.8001: UDP, length 196
20 packets captured
20 packets received by filter
0 packets dropped by kernel
multicast-relay:
# python ./multicast-relay.py --interfaces
br-lan.10 br-lan.20 --relay 224.0.0.7:8001 239.255.255.250:15600 255.255.255.255:15600 --
noSonosDiscovery --logfile ./multicast-relay.log --verbose --foreground
('Adding multicast relay for 224.0.0.251:5353 (mDNS)',) {}
('Adding multicast relay for 239.255.255.250:1900 (SSDP)',) {}
('Adding broadcast relay for 255.255.255.255:15600',) {}
('Adding multicast relay for 239.255.255.250:15600',) {}
('Adding multicast relay for 224.0.0.7:8001',) {}
('Relayed 224 bytes from 10.20.0.105:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.103:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.103:57167 on br-lan.20 [ttl 64] to 10.10.0.255:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.103:57167 on br-lan.20 [ttl 64] to 10.10.0.255:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.105:38438 on br-lan.20 [ttl 64] to 239.255.255.250:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.105:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.103:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('[mDNS] Relayed 89 bytes from 10.10.0.131:5353 on br-lan.10 [ttl 255] to 224.0.0.251:5353 via br-lan.20/10.20.0.1',) {}
('Relayed 63 bytes from 10.20.0.103:60002 on br-lan.20 [ttl 64] to 239.255.255.250:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.105:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.103:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.105:48319 on br-lan.20 [ttl 64] to 10.10.0.255:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.105:48319 on br-lan.20 [ttl 64] to 10.10.0.255:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.105:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.103:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.103:39243 on br-lan.20 [ttl 64] to 10.10.0.255:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.103:39243 on br-lan.20 [ttl 64] to 10.10.0.255:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.105:41374 on br-lan.20 [ttl 64] to 239.255.255.250:15600 via br-lan.10/10.10.0.1',) {}
('[SSDP] Relayed 153 bytes from 10.10.0.131:41753 on br-lan.10 [ttl 1] to 239.255.255.250:1900 via br-lan.20/10.20.0.1',) {}
('Relayed 224 bytes from 10.20.0.105:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.103:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.103:36367 on br-lan.20 [ttl 64] to 239.255.255.250:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.105:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.103:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.105:43695 on br-lan.20 [ttl 64] to 10.10.0.255:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.105:43695 on br-lan.20 [ttl 64] to 10.10.0.255:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.105:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 224 bytes from 10.20.0.103:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.103:47943 on br-lan.20 [ttl 64] to 10.10.0.255:15600 via br-lan.10/10.10.0.1',) {}
('Relayed 63 bytes from 10.20.0.103:47943 on br-lan.20 [ttl 64] to 10.10.0.255:15600 via br-lan.10/10.10.0.1',) {}
('[SSDP] Relayed 351 bytes from 10.10.0.2:47525 on br-lan.10 [ttl 4] to 239.255.255.250:1900 via br-lan.20/10.20.0.1',) {}
('[SSDP] Relayed 203 bytes from 10.10.0.105:63623 on br-lan.10 [ttl 1] to 239.255.255.250:1900 via br-lan.20/10.20.0.1',) {}
('[SSDP] Relayed 360 bytes from 10.10.0.2:47525 on br-lan.10 [ttl 4] to 239.255.255.250:1900 via br-lan.20/10.20.0.1',) {}
('Relayed 63 bytes from 10.20.0.105:47237 on br-lan.20 [ttl 64] to 239.255.255.250:15600 via br-lan.10/10.10.0.1',) {}
('[SSDP] Relayed 415 bytes from 10.10.0.2:47525 on br-lan.10 [ttl 4] to 239.255.255.250:1900 via br-lan.20/10.20.0.1',) {}
('[SSDP] Relayed 425 bytes from 10.10.0.2:38234 on br-lan.10 [ttl 4] to 239.255.255.250:1900 via br-lan.20/10.20.0.1',) {}
('Relayed 224 bytes from 10.20.0.105:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('[SSDP] Relayed 203 bytes from 10.10.0.105:63623 on br-lan.10 [ttl 1] to 239.255.255.250:1900 via br-lan.20/10.20.0.1',) {}
('Relayed 224 bytes from 10.20.0.103:8001 on br-lan.20 [ttl 1] to 224.0.0.7:8001 via br-lan.10/10.10.0.1',) {}
('[SSDP] Relayed 203 bytes from 10.10.0.105:63623 on br-lan.10 [ttl 1] to 239.255.255.250:1900 via br-lan.20/10.20.0.1',) {}
('Relayed 63 bytes from 10.20.0.103:41898 on br-lan.20 [ttl 64] to 239.255.255.250:15600 via br-lan.10/10.10.0.1',) {}
Thanks for this tool. Is awesome. I have installed it, and I managed to get it working relayin SSDP and even mdns between vlans. In fact, now, I can discover my LG TV (VLAN 10) from the youtube app in my mobile phone (VLAN 20). The problem is that I cannot discover my samsung TV (VLAN 10) from youtube app in mobile phobe (VLAN 20)
I am using wireshark to inspect packages. And I see, when connected to the same VLAN, that:
I have configured multicast-relay to relay 224.0.0.7:8001 and 239.255.255.250:15600 to VLAN 20, and I can see those packages from VLAN 20. However my Samsung TV keeps not showing in youtube APP. The only thing left is relaying 192.168.10.255:15600, however, multicast-relay says it is not a broadcast ip so it does not work.
Is there a way to solve this? Thanks in advance for your hep