Am 10.07.2014 21:09, schrieb Dan Williams: > On Thu, 2014-07-10 at 20:40 +0200, Florian Klink wrote: >> Hi, >> Am 10.07.2014 18:26, schrieb Dan Williams: >>> On Wed, 2014-07-09 at 17:27 +0200, Florian Klink wrote: >>>> 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 >>> >>> With "method=auto" for IPv6, you should get an IPv6 default route set by >>> NetworkManager via your IPv6 default router. Then you should also >>> receive a second IPv6 address from the DHCPv6 lease, but the default >>> route shouldn't come from dhcpcd, it should be set by NetworkManager >>> based on the IPv6 router advertisement. Basically, dhcpcd shouldn't be >>> involved in setting the default route at all, because it doesn't have >>> full knowledge of the system and all the interfaces. The logs you >>> posted originally don't have enough detail to see what's going on here >>> though. >>> >>> Could you run NM with "--log-level=debug >>> --log-domains=dhcp6,ip6,device,core,hw" and see what gets printed out >>> for IPv6 operations after "Activation (wlp3s0) Beginning IP6 addrconf."? >>> >>> Thanks! >>> Dan >> >> I ran NetworkManager with the parameters described and attached the log. >> ipv6 method was set to auto. >> >> Seems like I received two IPv6 prefixes this time (as the dialup router >> recently changed its IPv6 prefix), but there's still no IPv6 default >> route coming through... > > Thanks. The logs indicate that the kernel is *not* using the prefix > information from the Router Advertisement for some reason. This is > usually legitimate, like the RA has no prefix information at all, or > it's not correctly formed. The RA does specify "otherconf" though, > which is why dhcpcd starts DHCPv6 and gets an address. > > Unfortunately, AFAICT, the behavior that dhcpcd has is not standards > compliant, for two reason: > > 1) the router advertisement only includes the "OtherConf" option: > > device_set_ra_flags(): (wlp3s0) IP6 device ra_flags: 0x00000000 () -> > 0x80000080 (O) > > which indicates that no DHCPv6 addressing should be performed, only DNS > servers and domain information should be retrieved. > > 2) DHCPv6 is not a mechanism to deliver the default route, and dhcpcd > should not be adding a default route via the DHCP server. The only way > to deliver default routes correctly with IPv6 is through the Router > Advertisement with a Prefix Information option. > > It seems that the router you have does not wish to provide global IPv6 > connectivity for you, since (a) it only sets "OtherConf" and (b) does > not include a Prefix Information option. Do you actually get global > IPv6 connectivity with the address + default route that dhcpcd assigns? > > Also, could you run "wireshark" to capture the router advertisement so > we can confirm this?
I ran wireshark and managed to capture the Router Advertisement Package.
I attached it to this mail.
I do get global IPv6 connectivity by adding a route like
> ip -6 r add default via $prefix_without_netmask dev wlp3s0
On a second run, after killing NetworkManagers' dhcpcd and invoking my
own manually, the incoming package looked exactly the same, except the 2
bytes starting from 0x000c to 0x000d (which seem to be always different).
when manually run, dhcpcd added the above default route automatically:
> dhcpcd[24034]: wlp3s0: adding route to 2a02:3100:6e0a:1d00::/64
... and I had global connectivity.
Florian
>
> Thanks,
> Dan
>
>> Florian
>>
>>>
>>>
>>>>
>>>>
>>>> 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
>>
>>
--
Florian Klink
No. Datetime Time Source
Destination Protocol Length Info
70 2014-07-10 21:42:57.590982000 2.885503000 fe80::3631:c4ff:fe2a:43e0
ff02::1 ICMPv6 216 Router Advertisement from
34:31:c4:xx:xx:xx
Frame 70: 216 bytes on wire (1728 bits), 216 bytes captured (1728 bits) on
interface 0
Interface id: 0
Encapsulation type: Linux cooked-mode capture (25)
Arrival Time: Jul 10, 2014 21:42:57.590982000 CEST
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1405021377.590982000 seconds
[Time delta from previous captured frame: 0.083828000 seconds]
[Time delta from previous displayed frame: 0.000000000 seconds]
[Time since reference or first frame: 2.885503000 seconds]
Frame Number: 70
Frame Length: 216 bytes (1728 bits)
Capture Length: 216 bytes (1728 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: sll:ipv6:icmpv6]
[Coloring Rule Name: ICMP]
[Coloring Rule String: icmp || icmpv6]
Linux cooked capture
Packet type: Multicast (2)
Link-layer address type: 1
Link-layer address length: 6
Source: Avm_2a:43:e0 (34:31:c4:xx:xx:xx)
Protocol: IPv6 (0x86dd)
Internet Protocol Version 6, Src: fe80::3631:c4ff:fe2a:43e0
(fe80::3631:c4ff:fe2a:43e0), Dst: ff02::1 (ff02::1)
0110 .... = Version: 6
[0110 .... = This field makes the filter "ip.version == 6" possible: 6]
.... 0000 0000 .... .... .... .... .... = Traffic class: 0x00000000
.... 0000 00.. .... .... .... .... .... = Differentiated Services
Field: Default (0x00000000)
.... .... ..0. .... .... .... .... .... = ECN-Capable Transport (ECT):
Not set
.... .... ...0 .... .... .... .... .... = ECN-CE: Not set
.... .... .... 0000 0000 0000 0000 0000 = Flowlabel: 0x00000000
Payload length: 160
Next header: ICMPv6 (58)
Hop limit: 255
Source: fe80::3631:c4ff:fe2a:43e0 (fe80::3631:c4ff:fe2a:43e0)
[Source SA MAC: Avm_2a:43:e0 (34:31:c4:xx:xx:xx)]
Destination: ff02::1 (ff02::1)
Internet Control Message Protocol v6
Type: Router Advertisement (134)
Code: 0
Checksum: 0x11ce [correct]
Cur hop limit: 255
Flags: 0x48
0... .... = Managed address configuration: Not set
.1.. .... = Other configuration: Set
..0. .... = Home Agent: Not set
...0 1... = Prf (Default Router Preference): High (1)
.... .0.. = Proxy: Not set
.... ..0. = Reserved: 0
Router lifetime (s): 1800
Reachable time (ms): 0
Retrans timer (ms): 0
ICMPv6 Option (Prefix information : 2a02:3100:6e0a:1d00::/64)
Type: Prefix information (3)
Length: 4 (32 bytes)
Prefix Length: 64
Flag: 0xc0
1... .... = On-link flag(L): Set
.1.. .... = Autonomous address-configuration flag(A): Set
..0. .... = Router address flag(R): Not set
...0 0000 = Reserved: 0
Valid Lifetime: 7200
Preferred Lifetime: 3600
Reserved
Prefix: 2a02:3100:6e0a:1d00:: (2a02:3100:6e0a:1d00::)
ICMPv6 Option (Prefix information : fd00::/64)
Type: Prefix information (3)
Length: 4 (32 bytes)
Prefix Length: 64
Flag: 0xc0
1... .... = On-link flag(L): Set
.1.. .... = Autonomous address-configuration flag(A): Set
..0. .... = Router address flag(R): Not set
...0 0000 = Reserved: 0
Valid Lifetime: 7200
Preferred Lifetime: 0
Reserved
Prefix: fd00:: (fd00::)
ICMPv6 Option (Recursive DNS Server fd00::3631:c4ff:fe2a:43e0)
Type: Recursive DNS Server (25)
Length: 3 (24 bytes)
Reserved
Lifetime: 1200
Recursive DNS Servers: fd00::3631:c4ff:fe2a:43e0
(fd00::3631:c4ff:fe2a:43e0)
ICMPv6 Option (MTU : 1492)
Type: MTU (5)
Length: 1 (8 bytes)
Reserved
MTU: 1492
ICMPv6 Option (Route Information : High ::/0)
Type: Route Information (24)
Length: 1 (8 bytes)
Prefix Length: 0
Flag: 0x08
...0 1... = Route Preference: High (1)
000. .000 = Reserved: 0
Route Lifetime: 1800
ICMPv6 Option (Route Information : High 2a02:3100:6e0a:1d00::/64)
Type: Route Information (24)
Length: 2 (16 bytes)
Prefix Length: 64
Flag: 0x08
...0 1... = Route Preference: High (1)
000. .000 = Reserved: 0
Route Lifetime: 1800
Prefix: 2a02:3100:6e0a:1d00:: (2a02:3100:6e0a:1d00::)
ICMPv6 Option (Route Information : High fd00::/64)
Type: Route Information (24)
Length: 2 (16 bytes)
Prefix Length: 64
Flag: 0x08
...0 1... = Route Preference: High (1)
000. .000 = Reserved: 0
Route Lifetime: 7200
Prefix: fd00:: (fd00::)
ICMPv6 Option (Source link-layer address : 34:31:c4:xx:xx:xx)
Type: Source link-layer address (1)
Length: 1 (8 bytes)
Link-layer address: Avm_2a:43:e0 (34:31:c4:xx:xx:xx)
signature.asc
Description: OpenPGP digital signature
_______________________________________________ networkmanager-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/networkmanager-list
