Package: isc-dhcp-client
Version: 4.4.1-2
Severity: normal 
Tags: ipv6

Problem:

The dhcp client does not correctly apply the received ipv6 address after
a dhcp request after receiving a different address as an answer to a confirm 
request.
I am using a dhcpv6_stateful openstack setup with the debian cloud
image.

Apr 23 06:43:03 test sh[339]: Listening on Socket/eth0
Apr 23 06:43:03 test sh[339]: Sending on   Socket/eth0
Apr 23 06:43:03 test sh[339]: PRC: Confirming active lease
(INIT-REBOOT).
Apr 23 06:43:03 test dhclient[511]: Sending on   Socket/eth0
Apr 23 06:43:03 test sh[339]: XMT: Forming Confirm, 0 ms elapsed.
Apr 23 06:43:03 test sh[339]: XMT:  X-- IA_NA 3e:0d:96:8f
Apr 23 06:43:03 test sh[339]: XMT:  | X-- Confirm Address
2001:638:502:ee00::249
Apr 23 06:43:03 test sh[339]: XMT:  V IA_NA appended.
Apr 23 06:43:03 test sh[339]: XMT: Confirm on eth0, interval 930ms.

This address is temporary and wrong and seems to be the root cause of
the ipv6 problem.

Later requests show:

Apr 23 06:43:03 test dhclient[511]: Sending on   Socket/eth0
Apr 23 06:43:03 test sh[339]: XMT: Forming Confirm, 0 ms elapsed.
Apr 23 06:43:03 test sh[339]: XMT:  X-- IA_NA 3e:0d:96:8f
Apr 23 06:43:03 test sh[339]: XMT:  | X-- Confirm Address
2001:638:502:ee00::249
Apr 23 06:43:03 test sh[339]: XMT:  V IA_NA appended.
Apr 23 06:43:03 test sh[339]: XMT: Confirm on eth0, interval 930ms.
Apr 23 06:43:03 test dhclient[511]: XMT: Confirm on eth0, interval
930ms.
Apr 23 06:43:03 test dhclient[511]: RCV: Reply message on eth0 from
fe80::f816:3eff:fe18:2d06.
Apr 23 06:43:03 test sh[339]: RCV: Reply message on eth0 from
fe80::f816:3eff:fe18:2d06.
Apr 23 06:43:03 test sh[339]: RCV:  X-- IA_NA 3e:0d:96:8f
Apr 23 06:43:03 test sh[339]: RCV:  | X-- starts 1619160183
Apr 23 06:43:03 test sh[339]: RCV:  | X-- t1 - renew  +4294967295
Apr 23 06:43:03 test sh[339]: RCV:  | X-- t2 - rebind +4294967295
Apr 23 06:43:03 test sh[339]: RCV:  | X-- [Options]
Apr 23 06:43:03 test sh[339]: RCV:  | | X-- IAADDR
2001:638:502:ee00::2ab
Apr 23 06:43:03 test sh[339]: RCV:  | | | X-- Preferred lifetime
4294967295.
Apr 23 06:43:03 test sh[339]: RCV:  | | | X-- Max lifetime 4294967295.
Apr 23 06:43:03 test sh[339]: RCV:  X-- Server ID:
00:03:00:01:fa:16:3e:18:2d:06
Apr 23 06:43:03 test sh[339]: PRC: Bound to lease
00:03:00:01:fa:16:3e:30:78:b6.

the VM is not using the received ::2ab address, but still uses the wrong
older address ::249.

Network sniffing shows the same values:
Server:
417    15.460764    fe80::f816:3eff:febc:6e78    ff02::1:2    DHCPv6    148    
Confirm XID: 0x86c34c CID: 0001000128094b29fa163e0d968f IAA: 
2001:638:502:ee00::249
418    15.462585    fe80::f816:3eff:fe18:2d06    fe80::f816:3eff:febc:6e78    
DHCPv6    180    Reply XID: 0x86c34c CID: 0001000128094b29fa163e0d968f IAA: 
2001:638:502:ee00::2ab

VM:
07:15:32.326827 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 64) 
fe80::f816:3eff:fec3:c2ac > fe80::f816:3eff:febc:6e78: [icmp6 sum ok] ICMP6, 
router advertisement, length 64
         hop limit 255, Flags [managed], pref medium, router lifetime 65535s, 
reachable time 0ms, retrans timer 0ms
           source link-address option (1), length 8 (1): fa:16:3e:c3:c2:ac
             0x0000:  fa16 3ec3 c2ac
           mtu option (5), length 8 (1):  8922
             0x0000:  0000 0000 22da
           prefix info option (3), length 32 (4): 2001:638:502:ee00::/64, Flags 
[onlink], valid time infinity, pref. time infinity
             0x0000:  4080 ffff ffff ffff ffff 0000 0000 2001
             0x0010:  0638 0502 ee00 0000 0000 0000 0000
07:15:33.097565 IP6 (flowlabel 0x751c1, hlim 1, next-header UDP (17) payload 
length: 92) fe80::f816:3eff:febc:6e78.dhcpv6-client > ff02::1:2.dhcpv6-server: 
[bad udp cksum 0xa23f -> 0x5e5e!] dhcp6 confirm (xid=86c34c (client-ID 
hwaddr/time type 1 time 671697705 fa163e0d968f) (option-request DNS-server 
DNS-search-list Client-FQDN SNTP-servers) (elapsed-time 0) (IA_NA 
IAID:1041077903 T1:0 T2:0 (IA_ADDR 2001:638:502:ee00::249 pltime:0 vltime:0)))
07:15:33.099594 IP6 (flowlabel 0x751c1, hlim 1, next-header UDP (17) payload 
length: 124) fe80::f816:3eff:fe18:2d06.dhcpv6-server > 
fe80::f816:3eff:febc:6e78.dhcpv6-client: [udp sum ok] dhcp6 reply (xid=86c34c 
(client-ID hwaddr/time type 1 time 671697705 fa163e0d968f) (IA_NA 
IAID:1041077903 T1:4294967295 T2:4294967295 (IA_ADDR 2001:638:502:ee00::2ab 
pltime:4294967295 vltime:4294967295)) (DNS-server dns01.uni-paderborn.de 
dns02.uni-paderborn.de) (server-ID hwaddr type 1 fa163e182d06))
07:15:33.117991 IP6 (hlim 1, next-header Options (0) payload length: 56) 
fe80::f816:3eff:febc:6e78 > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum 
ok] ICMP6, multicast listener report v2, 2 group record(s) [gaddr 
ff02::1:ff00:249 to_ex { }] [gaddr ff02::1:ffbc:6e78 to_ex { }]
07:15:33.318047 IP6 (hlim 1, next-header Options (0) payload length: 56) 
fe80::f816:3eff:febc:6e78 > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum 
ok] ICMP6, multicast listener report v2, 2 group record(s) [gaddr 
ff02::1:ff00:249 to_ex { }] [gaddr ff02::1:ffbc:6e78 to_ex { }] 

Other cloud images (Ubuntu / Fedora / Centos) do not have this problem.

Thanks,
Johannes

-- System Information:
Debian Release: 10.9
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-16-cloud-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages isc-dhcp-client depends on:
ii  debianutils        4.8.6.1
ii  iproute2           4.20.0-2+deb10u1
ii  libc6              2.28-10
ii  libdns-export1104  1:9.11.5.P4+dfsg-5.1+deb10u3
ii  libisc-export1100  1:9.11.5.P4+dfsg-5.1+deb10u3

Versions of packages isc-dhcp-client recommends:
ii  isc-dhcp-common  4.4.1-2

Versions of packages isc-dhcp-client suggests:
pn  avahi-autoipd         <none>
pn  isc-dhcp-client-ddns  <none>
ii  resolvconf            1.79

-- no debconf information

Reply via email to