Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Apr 2011 01:07:25 +0200
From:      Pierre Beyssac <pb@fasterix.frmug.org>
To:        freebsd-net@freebsd.org
Subject:   IPv6 neighbor discovery bug in HEAD
Message-ID:  <20110406230645.GA3325@fasterix.frmug.org>

next in thread | raw e-mail | index | archive | help
Hello,

It looks like IPv6 neighbor discovery, due to recent changes, doesn't
work correctly for me on HEAD.

I don't fully understand the nature of the problem (which obviously
results in connectivity problems with neighboring hosts), but the
most obvious symptom is missing ethernet addresses in Neighbor
Advertisement packets (which might come from interpreting a "MAY
be omitted" in RFC 2461 7.2.4 as a MUST), perhaps because the sending
code wrongly assumes the receiving end already has knowledge of the
ethernet address that's being looked-up.

I only have 1 -current machine so I can only say that the bug may
be triggered by it having multiple IPv6 addresses used for jails,
as below:

re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 00:1c:c0:c3:40:e9
        inet 193.56.58.97 netmask 0xfffffff0 broadcast 193.56.58.111
        inet6 fe80::21c:c0ff:fec3:40e9%re0 prefixlen 64 scopeid 0x1 
        inet6 2a01:e35:8b50:2c40::2 prefixlen 64 
        inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
        inet 192.168.0.4 netmask 0xffffffff broadcast 192.168.0.4
        inet6 2a01:e35:8b50:2c40::4 prefixlen 128 
        inet 192.168.0.3 netmask 0xffffffff broadcast 192.168.0.3
        inet6 2a01:e35:8b50:2c40::3 prefixlen 128 
        inet 192.168.0.6 netmask 0xffffffff broadcast 192.168.0.6
        inet6 2a01:e35:8b50:2c40::6 prefixlen 128 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active

Example incomplete packet:

23:19:18.702622 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) 2a01:e35:8b50:2c40::6 > 2a01:e35:8b50:2c40::7: [icmp6 sum ok] ICMP6, neighbor advertisement, length 24, tgt is 2a01:e35:8b50:2c40::4, Flags [router, solicited]

I've tried various tricks like forcing tlladdr to 1 in nd6_nbr.c,
to no avail...

Any help appreciated :-)
-- 
Sent from my FreeBSD server
Pierre Beyssac	      	    		pb@fasterix.frmug.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110406230645.GA3325>