NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/54057: ipv6 neighbor discovery fails to resolve address



>Number:         54057
>Category:       kern
>Synopsis:       ipv6 neighbor discovery fails to resolve address
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Mar 12 08:50:00 +0000 2019
>Originator:     he%uninett.no@localhost
>Release:        NetBSD 8.0_STABLE
>Organization:
	Uninett AS
>Environment:
System: NetBSD granlund.uninett.no 8.0_STABLE NetBSD 8.0_STABLE (GENERIC) #5: Mon Sep 24 11:24:29 CEST 2018  he%granlund.uninett.no@localhost:/usr/obj/sys/arch/amd64/compile/GENERIC amd64
Architecture: x86_64
Machine: amd64
>Description:
	I get assigned an IPv6 address on this wireless network:

granlund# ifconfig iwn0
iwn0: flags=0x8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        ssid eduroam nwkey 65536:"",0xXXXXXXXXXXXXXXXXccd564d49b94,"",""
        powersave off
        bssid ac:a3:1e:09:a1:61 chan 6
        address: a4:4e:31:e4:43:a8
        media: IEEE802.11 autoselect (OFDM6 mode 11g)
        status: active
        inet a.b.c.d/24 broadcast a.b.c.255 flags 0x0
        inet6 fe80::4968:f8ab:9024:84a5%iwn0/64 flags 0x0 scopeid 0x2
        inet6 2001:700:1:21::11bb/128 flags 0x0
granlund# 

	and a corresponding default gateway via a link-local address:

granlund# netstat -rn -f inet6 | grep default
default                                 fe80::120e:7e00:15c6:cbf0      UGS         -        -      -  iwn0
granlund# 

	However, trying to use this setup does not work; I get a
	time-out with ssh on IPv6 and eventually resorts to IPv4.

	Tcpdump'ing the ND traffic shows that the router is indeed
	replying, but apparently the kernel is refusing to install the
	neighbor discovery entry, since "ndp -an" continues to be
	empty:

granlund# ndp -an
Neighbor                                Linklayer Address  Netif Expire    S Fl
granlund# 

	The tcpdump shows:

09:28:31.835893 a4:4e:31:e4:43:a8 > 33:33:ff:c6:cb:f0, ethertype IPv6 (0x86dd), length 86: 2001:700:1:21::11bb > ff02::1:ffc6:cbf0: ICMP6, neighbor solicitation, who has fe80::120e:7e00:15c6:cbf0, length 32
09:28:31.838053 10:0e:7e:c6:cb:f0 > a4:4e:31:e4:43:a8, ethertype IPv6 (0x86dd), length 86: 2001:700:1:21::2 > 2001:700:1:21::11bb: ICMP6, neighbor advertisement, tgt is fe80::120e:7e00:15c6:cbf0, length 32
09:28:32.838212 a4:4e:31:e4:43:a8 > 33:33:ff:c6:cb:f0, ethertype IPv6 (0x86dd), length 86: 2001:700:1:21::11bb > ff02::1:ffc6:cbf0: ICMP6, neighbor solicitation, who has fe80::120e:7e00:15c6:cbf0, length 32
09:28:32.850136 10:0e:7e:c6:cb:f0 > a4:4e:31:e4:43:a8, ethertype IPv6 (0x86dd), length 86: 2001:700:1:21::2 > 2001:700:1:21::11bb: ICMP6, neighbor advertisement, tgt is fe80::120e:7e00:15c6:cbf0, length 32
09:28:33.848998 a4:4e:31:e4:43:a8 > 33:33:ff:c6:cb:f0, ethertype IPv6 (0x86dd), length 86: 2001:700:1:21::11bb > ff02::1:ffc6:cbf0: ICMP6, neighbor solicitation, who has fe80::120e:7e00:15c6:cbf0, length 32
09:28:33.850563 10:0e:7e:c6:cb:f0 > a4:4e:31:e4:43:a8, ethertype IPv6 (0x86dd), length 86: 2001:700:1:21::2 > 2001:700:1:21::11bb: ICMP6, neighbor advertisement, tgt is fe80::120e:7e00:15c6:cbf0, length 32

	If I remove the default route and configure it to the global
	IPv6 address of the (VRRP-provided) address:

granlund# route delete -inet6 default
delete net default
granlund# route add -inet6 default 2001:700:1:21::1
add net default: gateway 2001:700:1:21::1
granlund# 

	things start working as they should.

09:45:20.573201 a4:4e:31:e4:43:a8 > 33:33:ff:00:00:01, ethertype IPv6 (0x86dd), length 86: 2001:700:1:21::11bb > ff02::1:ff00:1: ICMP6, neighbor solicitation, who has 2001:700:1:21::1, length 32
09:45:20.574790 10:0e:7e:c6:cb:f0 > a4:4e:31:e4:43:a8, ethertype IPv6 (0x86dd), length 86: 2001:700:1:21::2 > 2001:700:1:21::11bb: ICMP6, neighbor advertisement, tgt is 2001:700:1:21::1, length 32
09:45:20.574818 a4:4e:31:e4:43:a8 > 00:00:5e:00:02:00, ethertype IPv6 (0x86dd), length 70: 2001:700:1:21::11bb > 2001:700:1:0:eeb1:d7ff:fe59:fbaa: ICMP6, echo request, seq 0, length 16
09:45:20.576775 10:0e:7e:c6:cb:f0 > a4:4e:31:e4:43:a8, ethertype IPv6 (0x86dd), length 70: 2001:700:1:0:eeb1:d7ff:fe59:fbaa > 2001:700:1:21::11bb: ICMP6, echo reply, seq 0, length 16
09:45:20.819682 10:0e:7e:c6:cf:f0 > a4:4e:31:e4:43:a8, ethertype IPv6 (0x86dd), length 86: fe80::200:5eff:fe00:200 > fe80::4968:f8ab:9024:84a5: ICMP6, neighbor solicitation, who has fe80::4968:f8ab:9024:84a5, length 32
09:45:20.819715 a4:4e:31:e4:43:a8 > 00:00:5e:00:02:00, ethertype IPv6 (0x86dd), length 78: fe80::4968:f8ab:9024:84a5 > fe80::200:5eff:fe00:200: ICMP6, neighbor advertisement, tgt is fe80::4968:f8ab:9024:84a5, length 24
09:45:21.586068 a4:4e:31:e4:43:a8 > 00:00:5e:00:02:00, ethertype IPv6 (0x86dd), length 70: 2001:700:1:21::11bb > 2001:700:1:0:eeb1:d7ff:fe59:fbaa: ICMP6, echo request, seq 1, length 16
09:45:21.591958 10:0e:7e:c6:cb:f0 > a4:4e:31:e4:43:a8, ethertype IPv6 (0x86dd), length 70: 2001:700:1:0:eeb1:d7ff:fe59:fbaa > 2001:700:1:21::11bb: ICMP6, echo reply, seq 1, length 16

granlund# ndp -an
Neighbor                                Linklayer Address  Netif Expire    S Fl
2001:700:1:21::1                        00:00:5e:00:02:00   iwn0 23h59m17s S R
fe80::200:5eff:fe00:200%iwn0            00:00:5e:00:02:00   iwn0 23h58m38s S
granlund# 	

	Should not the first setup with a link-local address as
	default gateway work?  Why is the neighbor discovery traffic
	ignored?

>How-To-Repeat:
	Come visit us, get IPv6 on eduroam, watch it fail for NetBSD. :)

>Fix:
	Sorry, don't know.



Home | Main Index | Thread Index | Old Index