Linux – Receive multicast frames from different subnets

linuxlinux-networkingmulticastnetworking

I'm trying to receive on my LInux box multicast frames from hosts on a different subnet. For the experiment, and ONLY for this experiment, i have two machines connected through a network switch:

  • machine A (192.168.10.1/24) runs a simple application having a listening UDP socket (port 10000) joined on a multicast group (ex. 226.0.0.1);
  • machine B (192.168.20.1/24) sends UDP datagrams (destination port 10000) to multicast group 226.0.0.1.

Running tcpdump on machine A I see packets sent by machine B but packets are not delivered to the application layer. The packets are delivered to the application layer only if machine B is on the same subnet of machine A.
Which is the correct way to enable reception of multicast frames from different subnets?

Best Answer

The router that is routing traffic between the subnets need to support multicast forwarding. IGMP is one such protocol that will allow multicast traffic to be routed between different IP Subnets, and is supported by Linux and most Cisco routers.