[mythtv-users] IPTV and routing problems
anaerin at gmail.com
Thu Oct 7 04:09:00 UTC 2010
On 06/10/2010 9:27 PM, Rob Susmilch wrote:
> Hello all, having a problem with routing and IPTV. I've done quite a
> bit of googling about multicast, IPTV, etc. I have it almost
> working, but not quite there. Sorry it's long winded, but I believe
> in supplying as much information up front as possible.
> Setting up IPTV for mythtv on mythbuntu. I have fiber to the house
> which then splits to ethernet which feeds both TV and internet on the
> same line. I followed guides on iptv and mythtv, used wireshark to
> get all the dhcp address information for the cable box and can
> successfully receive any streaming show I want.
> However, both IP addresses are dhcp as far as I know, on different
> subnets and gateways. I currently have two NIC's installed and
> simply connect both to a switch and all works for a bit. I can
> stream VLC to my hearts content, but mythtv has a weird problem. The
> first time I watch live tv it works correctly, if I change the
> channel it will sometimes lock on and stream the new channel
> correctly, but the third time it changes it locks up and seems to
> hang up the backend. If I kill the frontend I can neither stream
> with vlc or ping anything on the net. It seems that sometimes the
> internet will come back after a long while, but the backend locks up
> the tv ethernet. Restarting /etc/init.d/networking complains that it
> can't release or bring up eth0 (IPTV NIC).
> The interesting part is if I disconnect the internet ethernet and
> restart networking I can stream and change channels to my hearts
> content, even up to three at a time so far. I believe I may have a
> routing problem. I did have issues receiving anything until I echoed
> 0> rp_filter. I tried a 'route add 18.104.22.168 netmask 240.0.0.0 dev
> eth0' but it seemed to do little to nothing before I did the
> rp_filter. I would appreciate any help to get this to route the
> multicast and internet correctly.
> ETH0 is the IPTV interface, ETH1 is meant for internet
> I have lspci and lshw if needed.
First thing I'd suggest is swapping eth0 and eth1, so the system isn't
trying to connect to the internet over the IPTV interface (You might
also want to not request a "default-route" on the IPTV interface).
It also looks like you don't have a default gateway set. This may be
related to the previous point.
Next, it may be an issue with your IGMP version. You can set the version
using "sysctl -w net.ipv4.conf.eth0.force_igmp_version=2" (Chances are
you want 2, as 3 is the latest, though not the best supported. That's
for eth0, incidentally. You can set it to eth1 or "all" in the same way).
As you found, rp_filter blocks multicast traffic. This is kinda correct
(it blocks any packets not addressed directly to the interface) but it
should have an exception for multicast. I'm fairly sure this has been
reported to the kernel devs, but as switching the filter off mitigates
the issue, it's no real problem.
It also seems (potentially) that Myth is not releasing it's stream (and
therefore not unsubscribing from the multicast group). I don't know if
this is livetv related or something else, but that is definitely
something to look into (It'd probably be the reason why you're having
difficulty taking eth0 offline. If you're using LiveTV, chances are Myth
isn't tearing down the old recorder before starting the next one, so the
backend is recording both (or more) recordings, there could be your problem.
Beyond that, I'm not familiar enough with the code to say definitively
that it is X or Y. It does seem like a Myth problem, though, as VLC is
working fine. Try a wireshark capture of changing channels in Myth to
see if you get the correct multicast join and parts.
Let me know how this turns out for you, and out of interest, which
provider is this with? It could be a good subject for a Wiki page (Like
the Sasktel one).
More information about the mythtv-users