Renew Multicast Group Membership

I have several built-in machines that listen and transmit rtp audio data to a multicast group. They are connected to an intelligent managed switch (Netgear GS108Ev2) that performs basic nigmp filtering and multicast filtering on its ports so that the rest of my (W) LAN will not be flooded.

In the beginning, everything works fine for about 500-520 seconds. After that, they don’t get to receive more data until they leave and join the group again. I think the switch "forgets" about the connection after a timeout.

Is there a way to renew group membership, that is, let the switch know that someone else is listening without losing packets?

System Information:

Arch: blackfin # cat /proc/version Linux version 2.6.28.10-ADI-2009R1-uCBF54x-EMM (gcc version 4.3.3 (ADI) ) #158 PREEMPT Tue Jun 5 20:05:42 CEST 2012 
+6
source share
3 answers

This is the way multicast / IGMP works. The client must periodically join the group by sending a membership report, or it is assumed that he left the group after some short timeout. However, these reports are usually sent only upon receipt of a membership request from the local multicast router. Either your customers do not receive the request, or do not respond to the report.

Try using a tool like wirehark to see which IGMP packets are being sent through your network.

+2
source

You need an IGMP request to send Membership Queries , as sca already explained.

If you cannot configure the router for this, you can use one of your computers. Seeing how the full multicast route works would be redundant (and I never did), I suggest you try abusing igmpproxy .

First create a dummy interface up (this is not permanent!):

 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, run igmpproxy (with root privileges):

 igmpproxy -v /path/to/igmpproxy.conf 
+1
source

If your embedded devices are running Linux, you need to disable the reverse packet filter, or they will not respond to group membership requests. In this case, the upstream switch assumes that no one is listening to this multicast and disabling it.

0
source

Source: https://habr.com/ru/post/917439/


All Articles