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?

  • That really does not make sense. Each interface subscribed to the same multicast group will receive the same multicast frame. It could make sense if the different multicast receivers listen for different multicast groups, but the same group allowed on multiple interfaces will result in multiple receipts. – Ron Maupin Feb 23 at 1:05

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
  • 1
    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.