Rendezvous Linux issue with Multicast

I saw the following in a recent Rendezvous release note.

However,  this is not a problem with Linux multicast that I have ever seen.

Linux does have a multicast problem where if two process/threads open up the exact same socket with SO_REUSEADDR but two different multicast addresses that a process/thread can get data for a multicast address it did not subscribe to.  This is now fixed with the IP_MULTICAST_ALL socket option in Linux kernels 2.6.31 and later.   Rendezvous should never have this issue though as the RV UDP Port it binds does not use the SO_REUSEADDR socket option. 

Linux should always filter out data at the port level though.  Placing data on a socket to a port not bound by that socket would be a pretty serious bug in the kernel under any circumstance.    I am curious what Linux kernel the below problem was found in.  I can't imagine you would see that issue on Redhat 5 or SUSE 11 nowadays.  I have never seen this problem and have explicitly looked for it on Linux and Solaris.  

8.3.2

RV-2884

Linux Delivers Multicast Data to All UDP Ports

Consider two receivers, R1 and R2, which run on thesame Linux host

computer. R1 binds UDP service U1, and joinsmulticast listen group M1.

Similarly, R2 binds UDP service U2, and joinsmulticast listen group M2.

A sending program, S, runs on any other hostcomputer across a network. S

sends messages over UDP service U1 to multicastsend address M2. Receiver

R2 receives these messages, even though one wouldexpect its service (U2) to

preclude this behavior.

The behavior is specific to Linux, and not specificto Rendezvous. Simple

multicast socket programs produce the same behavioron Linux.

Workaround

Use distinct multicast addresses to separatemessage streams (do notrely on

UDP services to separate message streams). Do notreuse a same multicast

groupaddress on different UDP services.

Login