Refresh multicast group membership Refresh multicast group membership linux linux

Refresh multicast group membership


This is the way multicast / the IGMP protocol works. A client has to join the group periodically by sending a Membership Report or it will be assumed that he has left the group after some short timeout. However, those reports are usually sent only when receiving a Membership Query from the local multicast router. Either your clients don't receive the query or don't respond with a report.

Try to use a tool like wireshark in order to see which IGMP packets are sent through your network.


You need an IGMP querier to send the Membership Queries, as was already explained by scai.

If you can't configure your router to do that, you can use one of your computers. Seeing how running a full multicast routing daemon would be overkill (and I've never done that), I suggest you try to abuse igmpproxy.

First create a dummy upstream interface (this is not persistent!):

ip tap add dev tap6 mode tap

Write igmpproxy.conf:

# Dummy upstream interface.phyint tap6 upstream  ratelimit 0  threshold 1# Local interface.phyint eth0 downstream  ratelimit 0  threshold 1# Explicitly disable any other interfaces (yes, it sucks).phyint NAME disabled...

Finally start igmpproxy (as root):

igmpproxy -v /path/to/igmpproxy.conf


If your embedded devices are running linux, you need to turn off the reverse packet filter on them or they won't respond to group membership queries. In that case the upstream switch will assume there is no-one listening to that multicast and switch it off.