I have a Linux server with 2 1Gb network interfaces eth1 and eth2. If I start 2 clients listening to the same multicast address and each client connects through a different NIC (say client 1 listens to the multicast through eth1 and client 2 through eth2), then client 2 gets duplicate UDP packets.

If both clients use the same interface eth1 on the other hand, both clients work fine.

I have already tried to set arp_filter and proxy_arp to 1 (arp flux issue) but it hasn't solved the issue. Is this a Linux kernel problem? Or is there another way to setup the interfaces correctly?


It's because multicast listens once per interface. Each interface subscribing to a particular multicast address will receive the packet.

Without more info on what you're trying to do and why, I guess I would just say "don't do that".

  • I want to be able to run multiple UDP listener programs to the same broadcast on both NICs. Is that such an unusual issue? We have several clients working on the same data stream and need to use both interfaces to optimize the use of the network card. – Robert Kubrick Feb 1 '11 at 14:34
  • It's not particularly unusual. However, it is normal to receive the same packet on both interfaces. – bahamat Feb 1 '11 at 20:12
  • Have you considered using ethernet bonding, rather then trying to load balance this yourself? – devicenull Apr 12 '11 at 1:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.