Getting Chromecast to work across subnets

chromecastmdnsmulticastupnp

I know Google says its not supported.
Has anyone got a Chromecast to talk to a client on a different subnet?
I have an OpenWRT router connected to my internet providers router (parent router).
The OpenWRT network is a different subnet and handles DHCP etc.
OpenWRT Network (192.168.1.0/24) and parent network (192.168.11.0/24)

The chromecast is on the parent network, I want clients on the OpenWRT network to use the Chromecast.

I have enabled igmp_snooping, running igmpproxy and avahi-daemon in reflector mode.
I can see Chromecast in bonjour explorer (from a machine on the OpenWRT network), but the Chromecast app won't connect.

I have also tried increasing the TTL on the OpenWRT router

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

Using wireshark I can see, that the chromecast and computer are speaking through subnets… but it still wont connect.

I can also ping the chromecast from the child network.

Anyone done this? Any pointers?

Best Answer

As far as I can tell the issue the only issue preventing Chromecasts from being used from other subnets is one of discovery which is dealt with by multicast UPNP packets which unfortunately have a TTL of 1. Instead of getting my router doing all of the usual multicast shenanigans and adjusting the TTL as you suggest, I wrote a python script to advertise my Chromecast on the other subnet. It is available on github.

Related Question