[Bug 211926] svn rev 303171 breaks Layer 2 with IPv6 on the freebsd.org cluster

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Aug 17 07:58:45 UTC 2016


            Bug ID: 211926
           Summary: svn rev 303171 breaks Layer 2 with IPv6 on the
                    freebsd.org cluster
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: peter at FreeBSD.org

After rev 303171 we are seeing multiple network stack problems.

The most urgent is that Layer-2 routing is broken and packets are being sent to
the wrong address.

In the paste below,
0c:c4:7a:49:48:70 = halo
00:25:90:30:d7:48 = ns1
00:00:5e:00:01:64 = default gateway

04:18:06.156769 0c:c4:7a:49:48:70 > 00:25:90:30:d7:48, ethertype IPv6 (0x86dd),
length 102: halo.40045 > ns1.domain: 26984+% [1au] DS? freebsd.org. (40)
04:18:06.156942 00:25:90:30:d7:48 > 00:00:5e:00:01:64, ethertype IPv6 (0x86dd),
length 313: ns1.domain > halo.40045: 26984 2/0/1 DS, RRSIG (251)

You can see the reply is being incorrectly sent to the default gateway.  We
have confirmed with tcpdump that the gateway actually is receiving the packets
and it isn't a display error.

>From the broken machine we can see it known to ndp:
# ndp -n halo
Neighbor                             Linklayer Address  Netif Expire    S Flags
2610:1c1:1:6002::16:12               0c:c4:7a:49:48:70    em0 23h59m45s S 

And the default gateway is also present in ndp:
# ndp -an
fe80::1%em0                          00:00:5e:00:01:64    em0 23h59m57s S R

A 'route get' shows the correct answer on the affected machine.
# route -n get -inet6 halo
   route to: 2610:1c1:1:6002::16:12
destination: 2610:1c1:1:6002::
       mask: ffff:ffff:ffff:ffff::
  interface: em0
      flags: <UP,DONE>

Reverting 303171 locally restores correct behavior where both machines are able
to communicate directly on the same ethernet segment again. When the packets
arrive at the router it (understandably) refuses to route it back out the same
interface it arrived on.

I am aware that 303171 has been mfc'ed to 11-stable.  It appears to work when
we tried stable/11 temporarily but I cannot explain why.  (These are in
redundant paired machines, one runs 11, the other runs 12.)

The machine does have jails.  ns1 is a dual-stack jail.  The host runs an em0
interface, but we have also seen it on igb, bce, bge and vlan.

Jail addresses:

Interface addresses:
        inet netmask 0xffffffe0 broadcast 
        inet netmask 0xffffffff broadcast 
        inet netmask 0xffffffff broadcast 
        inet6 2610:1c1:1:6002::1004 prefixlen 64 
        inet6 2610:1c1:1:6002::7b:1 prefixlen 128 
        inet6 2610:1c1:1:6002::100 prefixlen 128

You are receiving this mail because:
You are the assignee for the bug.

More information about the freebsd-bugs mailing list