Hi,
Am 28.06.2014 00:04, schrieb Florian Klink:
> Hi Dan,
>
> Am 27.06.2014 20:40, schrieb Dan Williams:
>> On Fri, 2014-06-27 at 11:15 -0500, Dan Williams wrote:
>>> On Fri, 2014-06-27 at 10:43 +0200, Florian Klink wrote:
>>>> Hi,
>>>>
>>>> caused by some package upgrades, (I'm quite sure it is caused by dhcpcd
>>>> upgrade from 6.3.2-1 to 6.4.0-1), I don't receive any more ipv6 default
>>>> routes from DHCPv6-enabled networks.
>>>>
>>>> It suddenly stopped working in two different networks, while it still
>>>> works on other machines, and the dhcpcd upgrade was also during this time.
>>>>
>>>> Arch Linux amd64
>>>> kernel 3.15.0
>>>> networkmanager 0.9.8.10-3
>>>> dhcpcd 6.4.0-1
>>>>
>>>> I still receive an ipv6 address of the network, and can ping machines
>>>> inside the network.
>>>>
>>>> Networkmanager log doesn't look really suspicios, I attached it anyways.
>
> I don't see any NAK in the attached systemd journal excerpt, so
> something else must cause the default to disappear/not appear at all...
>
> Or do I need to enable some debug flags before?
>
> The IPv6 address gets assigned and stays there. I can ping6 hosts in the
> same network without problems.
I digged deeper into this. During connection, NetworkManager calls
> # /usr/bin/dhcpcd -B -K -L -G -c
> /usr/lib/networkmanager/nm-dhcp-client.action wlp3s0
> dhcpcd[7256]: version 6.4.0 starting
> dhcpcd[7256]: DUID 00:01:00:01:1a:fd:69:ab:xx:xx:xx:xx:xx:xx
> dhcpcd[7256]: wlp3s0: IAID a1:e4:2e:01
> dhcpcd[7256]: wlp3s0: rebinding lease of 172.23.100.20
> dhcpcd[7256]: wlp3s0: soliciting an IPv6 router
> dhcpcd[7256]: wlp3s0: Router Advertisement from fe80::xxxx:xxxx:xxxx:xxxx
> dhcpcd[7256]: wlp3s0: adding address 2002:xxxx:xxxx:0:xxxx:xxxx:xxxx:xxxx/64
> dhcpcd[7256]: wlp3s0: adding route to 2002:xxxx:xxxx::/64
> dhcpcd[7256]: wlp3s0: requesting DHCPv6 information
> dhcpcd[7256]: wlp3s0: leased 172.23.100.20 for 864000 seconds
> dhcpcd[7256]: wlp3s0: adding route to 172.23.0.0/17
> dhcpcd[7256]: wlp3s0: removing route to 172.23.0.0/17
I disabled NetworkManagers ip handling completely:
> [ipv4]
> method=link-local
> ignore-auto-routes=true
> ignore-auto-dns=true
>
> [ipv6]
> method=link-local
> ignore-auto-routes=true
> ignore-auto-dns=true
... And started dhcpcd on my own afterwards:
> dhcpcd[9996]: version 6.4.0 starting
> dhcpcd[9996]: wlp3s0: adding address fe80::xxxx:xxxx:xxxx:xxxx
> dhcpcd[9996]: DUID 00:01:00:01:1a:fd:69:ab:xx:xx:xx:xx:xx:xx
> dhcpcd[9996]: wlp3s0: IAID a1:e4:2e:01
> dhcpcd[9996]: wlp3s0: soliciting an IPv6 router
> dhcpcd[9996]: wlp3s0: rebinding lease of 172.23.100.20
> dhcpcd[9996]: wlp3s0: Router Advertisement from fe80::xxxx:xxxx:xxxx:xxxx
> dhcpcd[9996]: wlp3s0: adding address 2002:xxxx:xxxx:0:xxxx:xxxx:xxxx:xxxx/64
> dhcpcd[9996]: wlp3s0: adding route to 2002:xxxx:xxxx::/64
> dhcpcd[9996]: wlp3s0: adding default route via fe80::xxxx:xxxx:xxxx:xxxx
> dhcpcd[9996]: wlp3s0: requesting DHCPv6 information
> dhcpcd[9996]: forked to background, child pid 10066
And as you can see, the IPv6 default route gets added!
I think the problem is the -G parameter ("Don't set any default
routes.") thats passed to dhcpcd by NetworkManager.
What do you think?
Florian
>
>
>>>
>>> The default route actually comes from the RA, not DHCPv6. But check
>>> your logs for a "NAK" coming from dhcpcd. If you see that, then I'll
>>> bet its the same problem that I've been corresponding with a user over
>>> IRC about. dhcpcd touches addresses internally, and when it gets a NAK
>>> it actually removes the IP address from the interface, which could cause
>>> the kernel to remove the default route too. Unfortunately, due to an
>>> issue in NetworkManager, it is never notified of this event, and ignores
>>> the fact that things changed, and thus doesn't restore the default
>>> route.
>>>
>>> Let me know if you do see "NAK" in your logs...
>>
>> If you do, please try the attached patch (for NM 0.9.8.x) and let the
>> NAK happen again. If you again lose the default route, then please grab
>> logs from wherever your syslog daemon facility goes too. If you're
>> using systemd, that'll be "journalctl -b -u NetworkManager", otherwise
>> it's /var/log/syslog, /var/log/messages, /var/log/daemon.log,
>> or /var/log/NetworkManager.log depending on your distro.
>>
>> Thanks!
>> Dan
>>
>
>
>
>
> _______________________________________________
> networkmanager-list mailing list
> [email protected]
> https://mail.gnome.org/mailman/listinfo/networkmanager-list
>
_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list