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