I tried configuring IPv6 over the included WiFi interface on a Raspberry PI v3 using the latest Raspbian/Jessie. Unfortunately, this fails because I get DAD (duplicate address detection) failures. dmesg shows the following message:
IPv6: wlan0: IPv6 duplicate address 2001:2002:xxxx:xxxx:xxxx:xxff:fexx:db8b detected!
while tcpdump shows the following pair of neighbor solicitation packets:
07:57:51.515942 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) :: > ff02::1:ffxx:db8b: [icmp6 sum ok] ICMP6, neighbor solicitation, length 24, who has 2001:2002:xxxx:xxxx:xxxx:xxff:fexx:db8b
07:57:51.517616 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) :: > ff02::1:ffxx:db8b: [icmp6 sum ok] ICMP6, neighbor solicitation, length 24, who has 2001:2002:xxxx:xxxx:xxxx:xxff:fexx:db8b
Given the timing, the second packet is likely the access point reflecting multicast packets back to all clients. I read somewhere that this behaviour is expected from access points that understand IPv6 multicast.
pi@raspberrypi:~ $ ip addr show dev wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP group default qlen 1000
link/ether xx:xx:xx:xx:db:8b brd ff:ff:ff:ff:ff:ff
inet 192.168.0.106/24 brd 192.168.0.255 scope global wlan0
valid_lft forever preferred_lft forever
inet6 fe80::xxxx:xxff:fexx:db8b/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
Given the above, my question is:
- Is this a bug in the access point (which should not reflect neighbour solicitation packets)?
- Is this a bug in the wireless network driver (which should not forward such packets to the Linux kernel)?
- Is this a bug in Linux's DAD code (which should somehow mark its own neighbour solicitation packets)?