让 Chromecast 跨子网工作

Ada*_*lls 10 upnp multicast mdns chromecast

我知道谷歌说它不支持。有没有人使用 Chromecast 与不同子网上的客户端通话?我有一个 OpenWRT 路由器连接到我的互联网提供商路由器(父路由器)。OpenWRT 网络是一个不同的子网,处理 DHCP 等。 OpenWRT 网络 (192.168.1.0/24) 和父网络 (192.168.11.0/24)

chromecast 在父网络上,我希望 OpenWRT 网络上的客户端使用 Chromecast。

我已启用 igmp_snooping,在反射器模式下运行 igmpproxy 和 avahi-daemon。我可以在 bonjour 资源管理器中看到 Chromecast(来自 OpenWRT 网络上的机器),但 Chromecast 应用程序无法连接。

我也尝试过增加 OpenWRT 路由器上的 TTL

iptables -t mangle -A PREROUTING -i eth0 -d 239.255.255.250 -j TTL --ttl-inc 1
iptables -t mangle -A PREROUTING -i wlan0 -d 239.255.255.250 -j TTL --ttl-inc 1
Run Code Online (Sandbox Code Playgroud)

使用wireshark我可以看到,chromecast和计算机正在通过子网通话......但它仍然无法连接。

我还可以从子网络 ping chromecast。

有人做过这个吗?任何指针?

小智 5

据我所知,阻止 Chromecast 被其他子网使用的唯一问题是发现之一,由多播 UPNP 数据包处理,不幸的是,该数据包的 TTL 为 1。而不是让我的路由器执行所有常见的多播恶作剧并按照您的建议调整 TTL,我编写了一个 python 脚本来在另一个子网上宣传我的 Chromecast。它在github上可用。


Row*_*ins -1

我可以看到两个潜在的问题。

1) Chromecast 可能使用非路由协议。想想 NetBIOS 或 IPX。仅仅因为它及其连接的设备也使用 IP 进行管理,并不意味着视频数据包可以穿越该网络设备

2)您也可能遇到此路由问题。我见过一些廉价网络连接设备在 192.168 专用网络之间路由时遇到问题的问题。该网络空间并不是为大型企业路由而设计的。当我们尝试通过调整网络掩码来合并两个相邻范围时,我们在一个站点遇到了问题。应该没有问题,但路由器不能可靠地做到这一点。

如果您尝试改用 10.x.64.0/23,您可能会有更好的运气。我建议使用该范围,因为它属于偶数位模式。切换所有设备并重新链接它们确实很麻烦,但它是作为网络重新设计的一部分实现的。