Update on this. I saw that, in some cases, multicast packets did go through my router, so I didn't expect it to be the problem.
Now, just to be sure, I've tried two different settings for the routers handling of multicast (it's a Linksys WRT610N). There is actually a surprising effect (relative to what I had expected) of this setting: If I keep the "Filter Multicast" option unchecked, I am able to ping 224.0.0.2. If I set the "Filter Multicast" option checked, I can no longer ping 224.0.0.2. I actually expected that this setting only affected traffic from the WAN to the LAN and not traffic internally on the LAN.
In any case, that's a Linksys problem. The behaviour of Bubba is, however, the same - irrespective of the "Filter Multicast" setting on the router.
I've then tried to do
and this did the trick!
Now, before issuing the above command, eth0 already had the MULTICAST flag set. As far as I've understood, the semanthics of the ALLMULTI and MULTICAST flags are as follows:
MULTICAST: When set, this ensures that the interface is able to send and receive multicast packets for multicast groups that the network node has joined.
ALLMULTI: When set, the network interface will receive all multicast packets - also those that the network has not joined.
It is then surprising to me that the ALLMULTI flag also needs to be set. I must admit, however, that I've also found several indications that the above is not the only interpretation of the two flags.
Does anyone know what the situation is?