I'm using multicast communications with IGMP snooping enable in the switch, I have 6 nodes (A, B, C, D, E, F), 3 sends data to different Multicast address and 3 receive data from every multicast address at the same time. The first scenario is, A send to mcast_addr1 and B send to mcast_addr2, I run receiver program in D, E nodes, everyone does JOIN to each multicast address, D and E nodes can receive the traffic multicast. The second scenario is, A send to mcast_addr1, B send to mcast_addr2 and C send to mcast_addr3, I run the receiver program in nodes, first in D, then E and finally F, the traffic multicast only is received in the nodes E and F, which are the last two nodes joined a multicast address. I can see with tcpdump that the sender send the data to the multicast address.
If I run the second scenario at different times, the traffic is received at the nodes D, E and F.
In short, the traffic only is received by the last two nodes that are joined to a multicast address.
The switch is D-Link DGS-1248T, IGMPv3, and OS Centos 6.5 (kernel 2.6.32-431.20.3)
Anyone know of IGMP has some limitations? Any suggestions?