netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Mr. Berkley Shands" <berkley@seas.wustl.edu>
To: Net Dev <netdev@vger.kernel.org>, Dave Lloyd <dlloyd@exegy.com>,
	Ed Spitznagel <espitznagel@exegy.com>
Subject: IGMP when multiple interfaces share a subnet (2.6.32-2.6.35+)
Date: Thu, 30 Sep 2010 16:24:36 -0500	[thread overview]
Message-ID: <4CA50014.6040307@seas.wustl.edu> (raw)

When there are multiple interfaces on the same subnet
(I.E. 10.19.20.21 on eth1, 10.19.20.22 on eth2, ...)
and the subnet mask is 255.255.255.0
The Cicso Layer 3 sends out IGMP queries, both eth1, eth2 see them.
If a multicast group is subscribed on eth1, all is fine.
But if another multicast group is subscribed off eth2 at the same time,
then the IGMP reports for eth2 go back out eth1, or don't go out at all.
Worse, if you ifdown eth1, eth2 and then ifup them (service network 
restart)
then neither interface will respond to IGMP reports/requests.

We tried forcing all the IGMP traffic to V2, no luck.
the kernel's responses go out the lowest interface index, or not at all
once the second interface does a multicast join.
Hacking the kernel to continuously send IGMP reports works
until the window of the report times overlaps the routers pings.
then the router assumes a drop.

This did not happen under 2.6.22 (centos-5.2 through centos 5.5 on X86_64)
with Intel igb based nics.

We do not control the IP addresses.
We see this with VLANs as well. tcpdump sees the request come in
every 60 seconds or so, but nothing responds back.

Would using a 32-bit netmask on those ports force the kernel to
respond on the correct interface?

Why does bouncing an interface completely disable IGMP reports?
We currently have 2.5.35.2 running. Did the setsockopt() code
change from "struct ip_mreq" to "struct ip_mreqn" to throw in an 
interface index?

Any suggestions as to what to poke?

Berkley Shands

                 reply	other threads:[~2010-09-30 21:39 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CA50014.6040307@seas.wustl.edu \
    --to=berkley@seas.wustl.edu \
    --cc=dlloyd@exegy.com \
    --cc=espitznagel@exegy.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).