Subject: IGMP joins come from the wrong SA/interface

From: "Steinar H. Gunderson" <[email-masked]>
Date: Sat, 18 Jan 2014 20:11:07 +0100

Hi,

I have a relatively complicated setup at home with multiple VLANs, some
bridging etc., but what's most important is that multicast and unicast go
different directions (since my ISP doesn't support multicast, I have a PIM
tunnel terminated at a Cisco box). I'm running kernel 3.12.5.

My routing table looks like this:

  sesse@morgental:~$ sudo ip route
  default via 178.82.50.1 dev br0 
  10.1.0.0/24 dev eth0.2  proto kernel  scope link  src 10.1.0.1 
  10.3.0.0/24 dev eth0.3  proto kernel  scope link  src 10.3.0.1 
  178.82.50.0/23 dev br0  proto kernel  scope link  src 178.82.50.98 
  multicast 224.0.0.0/4 dev eth0.2  scope link  src 10.1.0.1 
  239.0.0.0/8 dev eth0.11  scope link 

Note especially the multicast line, which I've added as follows:

  sudo ip route add multicast 224.0.0.0/4 dev eth0.2 src 10.1.0.1 

Still, when trying to join a multicast group, the source address
is wrong:

  20:03:11.161288 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 40, options (RA))
      178.82.50.98 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 239.1.1.20 to_ex { }]
  20:03:11.161312 ethertype IPv4, IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 40, options (RA))
      178.82.50.98 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 239.1.1.20 to_ex { }]

It doesn't even come on eth0.2. I don't actually understand which
interface it comes up on (it doesn't show up on eth0.2, br0, or
any of the component devices of br0), but it shows up on the
“any” device in tcpdump, and on eth0, which I don't have a single
IPv4 address on.

It doesn't matter if I drop the “multicast” token from the ip route line.
Behavior is still exactly the same; it comes out of eth0 instead of eth0.2,
with the wrong source address.

This used to work, once upon a time, but I fear it broke during a
kernel upgrade. It's hard for me to say exactly when; probably
a few months ago. Any ideas?

/* Steinar */
-- 
Homepage: http://www.sesse.net/