I have these interfaces set up on the router (Linux machine):
br0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500
inet 192.168.0.3 netmask 255.255.255.0 broadcast 192.168.0.255
bridge name bridge id STP enabled interfaces
br0 8000.00156d8591ec no eth0
wlan0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::7271:bcff:feb1:d9cf prefixlen 64 scopeid 0x20<link>
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.200.44.147 netmask 255.255.255.128 broadcast 10.200.44.255
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::215:6dff:fe85:91ec prefixlen 64 scopeid 0x20<link>
In br0 there are two interfaces (eth0 – local home network and wlan0 – wireless home network). eth1 is internet connection interface and is not part of the br0.
I use mumudvb for sending multicast IPTV with IP group 239.100.0.1 (udp/1234) and receiving this multicast traffic on a different machine on LAN using VLC player.
When I configure it to send multicast over eth0 all works well on home LAN but I can't join the multicast group from the router itself.
That's why I configured it to send multicast over br0 (makes more sense – then I can join the multicast group from the LAN eth0 as well as router itself) but after about 5 minutes since join, LAN multicast connection drops (without sending any IGMP message). But I can join again and it will work for next 5 minutes again, then drop.
Why is it dropping when sending multicast over br0 and not dropping when sending directly through eth0? Am I missing some configuration on the bridge? What can expire during this period? For example STP is disabled for the bridge but it shouldn't affect this?
When I join the br0 multicast group from the router itself, it won't drop. Only when subscribed from a machine connected to the br0 through eth0.
Best Answer
When using br0 for multicasting, it needs to have IGMP Querier enabled. When it is enabled IGMP protocol version will change from v3 into v2 and it will start issuing Membership queries and no longer drop.
From what I've googled, there seems to be no utility for enabling querier on a bridge, it must be done via
/sys
like this: