All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Linus Lüssing" <linus.luessing@web.de>
To: Jan Stancek <jstancek@redhat.com>
Cc: netdev@vger.kernel.org, Florian Westphal <fwestpha@redhat.com>,
	bridge@lists.linux-foundation.org
Subject: Re: [Bridge] bridge is not forwaring ICMP6 neighbor solicitation to KVM guest
Date: Tue, 4 Mar 2014 22:37:57 +0100	[thread overview]
Message-ID: <20140304213757.GJ5090@Linus-Debian> (raw)
In-Reply-To: <1663332249.12962360.1393931189285.JavaMail.zimbra@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 3129 bytes --]

On Tue, Mar 04, 2014 at 06:06:29AM -0500, Jan Stancek wrote:
> 
> 
> ----- Original Message -----
> > From: "Linus Lüssing" <linus.luessing@web.de>
> > To: "Jan Stancek" <jstancek@redhat.com>
> > Cc: netdev@vger.kernel.org, "Florian Westphal" <fwestpha@redhat.com>, bridge@lists.linux-foundation.org
> > Sent: Tuesday, 4 March, 2014 11:52:54 AM
> > Subject: Re: bridge is not forwaring ICMP6 neighbor solicitation to KVM guest
> > 
> > Hi Jan,
> > 
> > On Tue, Mar 04, 2014 at 03:02:36AM -0500, Jan Stancek wrote:
> > > > For the broken query, ok, it's your manually crafted query. But
> > > > did you see a query with such a bogus source address "in the
> > > > wild", too? (I'm curious how urgent this sanity check is)
> > > 
> > > It's real packet I managed to capture during one such occurrence.
> > > I'm sending it with small C program over raw socket, but it's byte
> > > by byte exact copy of what I captured with tcpdump previously.
> > > 
> > > I'm not sure how that packet came to existence. Based on IPv6 address
> > > it came from host B, but all host B was doing at the time
> > > was running RHEL6 with couple qemu-kvm instances. KVM guests were
> > > set up to use bridge, so I'm assuming if any of them crafted
> > > this packet, source IPv6 address would be different.
> > > 
> > 
> > Ah, okay. Can you check whether it maybe came from the querier
> > code in the Linux bridge on host B? Is
> > "cat /sys/class/net/br0/bridge/multicast_querier" 1?
> 
> # cat /sys/class/net/br0/bridge/multicast_querier
> cat: /sys/class/net/br0/bridge/multicast_querier: No such file or directory

Ok, that's not present on such old kernels, there it is actually
enabled by default.

> 
> > Can you isolate host B and disable any multicast router daemon on it? Then
> > check again, if you still see these queries.
> 
> Besides those cases where I sent it by myself, I haven't seen host B send
> that query for couple days now.
> 
> > What kernel version is running on host B?
> 
> 2.6.32-279.42.1.el6.x86_64
> It's a RHEL6.3.z kernel.
> 
> > Where does Linux use :: for queries?
> 
> I'm not sure if it's Linux (I'm trying to locate that system by MAC), but I see
> packets like these on my network every ~125 seconds:
> 
> No.     Time        Source                Destination           Protocol Length Info
>   22675 1334.751135 ::                    ff02::1               ICMPv6   86     Multicast Listener Query

It's probably the bridge on this ancient kernel, you might want to
backport the following patch:

"bridge: Use IPv6 link-local address for multicast listener queries"
(fe29ec41aaa51902aebd63658dfb04fe6fea8be5)

And it's follow-up fixes:

"bridge: Fix possibly wrong MLD queries' ethernet source address"
(a7bff75b087e7a355838a32efe61707cfa73c194)
"bridge: check return value of ipv6_dev_get_saddr()"
(d1d81d4c3dd886d5fa25a2c4fa1e39cb89613712)

If these patches on host B xor the sanity check I just submitted applied
on your host A / VM host fix your issue, then they might be worth
considering for the stable queue.

Cheers, Linus

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: "Linus Lüssing" <linus.luessing@web.de>
To: Jan Stancek <jstancek@redhat.com>
Cc: netdev@vger.kernel.org, Florian Westphal <fwestpha@redhat.com>,
	bridge@lists.linux-foundation.org
Subject: Re: bridge is not forwaring ICMP6 neighbor solicitation to KVM guest
Date: Tue, 4 Mar 2014 22:37:57 +0100	[thread overview]
Message-ID: <20140304213757.GJ5090@Linus-Debian> (raw)
In-Reply-To: <1663332249.12962360.1393931189285.JavaMail.zimbra@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 3129 bytes --]

On Tue, Mar 04, 2014 at 06:06:29AM -0500, Jan Stancek wrote:
> 
> 
> ----- Original Message -----
> > From: "Linus Lüssing" <linus.luessing@web.de>
> > To: "Jan Stancek" <jstancek@redhat.com>
> > Cc: netdev@vger.kernel.org, "Florian Westphal" <fwestpha@redhat.com>, bridge@lists.linux-foundation.org
> > Sent: Tuesday, 4 March, 2014 11:52:54 AM
> > Subject: Re: bridge is not forwaring ICMP6 neighbor solicitation to KVM guest
> > 
> > Hi Jan,
> > 
> > On Tue, Mar 04, 2014 at 03:02:36AM -0500, Jan Stancek wrote:
> > > > For the broken query, ok, it's your manually crafted query. But
> > > > did you see a query with such a bogus source address "in the
> > > > wild", too? (I'm curious how urgent this sanity check is)
> > > 
> > > It's real packet I managed to capture during one such occurrence.
> > > I'm sending it with small C program over raw socket, but it's byte
> > > by byte exact copy of what I captured with tcpdump previously.
> > > 
> > > I'm not sure how that packet came to existence. Based on IPv6 address
> > > it came from host B, but all host B was doing at the time
> > > was running RHEL6 with couple qemu-kvm instances. KVM guests were
> > > set up to use bridge, so I'm assuming if any of them crafted
> > > this packet, source IPv6 address would be different.
> > > 
> > 
> > Ah, okay. Can you check whether it maybe came from the querier
> > code in the Linux bridge on host B? Is
> > "cat /sys/class/net/br0/bridge/multicast_querier" 1?
> 
> # cat /sys/class/net/br0/bridge/multicast_querier
> cat: /sys/class/net/br0/bridge/multicast_querier: No such file or directory

Ok, that's not present on such old kernels, there it is actually
enabled by default.

> 
> > Can you isolate host B and disable any multicast router daemon on it? Then
> > check again, if you still see these queries.
> 
> Besides those cases where I sent it by myself, I haven't seen host B send
> that query for couple days now.
> 
> > What kernel version is running on host B?
> 
> 2.6.32-279.42.1.el6.x86_64
> It's a RHEL6.3.z kernel.
> 
> > Where does Linux use :: for queries?
> 
> I'm not sure if it's Linux (I'm trying to locate that system by MAC), but I see
> packets like these on my network every ~125 seconds:
> 
> No.     Time        Source                Destination           Protocol Length Info
>   22675 1334.751135 ::                    ff02::1               ICMPv6   86     Multicast Listener Query

It's probably the bridge on this ancient kernel, you might want to
backport the following patch:

"bridge: Use IPv6 link-local address for multicast listener queries"
(fe29ec41aaa51902aebd63658dfb04fe6fea8be5)

And it's follow-up fixes:

"bridge: Fix possibly wrong MLD queries' ethernet source address"
(a7bff75b087e7a355838a32efe61707cfa73c194)
"bridge: check return value of ipv6_dev_get_saddr()"
(d1d81d4c3dd886d5fa25a2c4fa1e39cb89613712)

If these patches on host B xor the sanity check I just submitted applied
on your host A / VM host fix your issue, then they might be worth
considering for the stable queue.

Cheers, Linus

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2014-03-04 21:37 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1566805413.12693479.1393872931017.JavaMail.zimbra@redhat.com>
2014-03-03 19:47 ` bridge is not forwaring ICMP6 neighbor solicitation to KVM guest Jan Stancek
2014-03-03 21:27   ` [Bridge] " Linus Lüssing
2014-03-03 21:27     ` Linus Lüssing
2014-03-03 21:40     ` [Bridge] " Vlad Yasevich
2014-03-03 21:40       ` Vlad Yasevich
2014-03-03 23:03       ` [Bridge] " Linus Lüssing
2014-03-03 23:03         ` Linus Lüssing
2014-03-03 22:45     ` [Bridge] " Jan Stancek
2014-03-03 22:45       ` Jan Stancek
2014-03-04  0:00       ` [Bridge] " Linus Lüssing
2014-03-04  0:00         ` Linus Lüssing
2014-03-04  8:02         ` [Bridge] " Jan Stancek
2014-03-04  8:02           ` Jan Stancek
2014-03-04 10:52           ` [Bridge] " Linus Lüssing
2014-03-04 10:52             ` Linus Lüssing
2014-03-04 11:06             ` [Bridge] " Jan Stancek
2014-03-04 11:06               ` Jan Stancek
2014-03-04 21:37               ` Linus Lüssing [this message]
2014-03-04 21:37                 ` Linus Lüssing
2014-03-05 12:10                 ` [Bridge] " Jan Stancek
2014-03-05 12:10                   ` Jan Stancek
2014-03-05 14:27                   ` [Bridge] " Linus Lüssing
2014-03-05 14:27                     ` Linus Lüssing
2014-03-05 14:57                     ` [Bridge] " Jan Stancek
2014-03-05 14:57                       ` Jan Stancek
2014-03-12  4:37                       ` [Bridge] " Linus Lüssing
2014-03-12  4:37                         ` Linus Lüssing
2014-03-12  7:45                         ` [Bridge] " Jan Stancek
2014-03-12  7:45                           ` Jan Stancek

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=20140304213757.GJ5090@Linus-Debian \
    --to=linus.luessing@web.de \
    --cc=bridge@lists.linux-foundation.org \
    --cc=fwestpha@redhat.com \
    --cc=jstancek@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.