<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">I’d say it is the very same problem I ran into, i.e., your DHCPv6 Kea process is not bound to unicast v6 address on your interface eth1 when using only interface name. Check out
<a href="https://gitlab.isc.org/isc-projects/kea/-/issues/2212#note_454562">https://gitlab.isc.org/isc-projects/kea/-/issues/2212#note_454562</a> and consider adding the unicast IPv6 address to your interface statement.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Marek<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="color:black">From:
</span></b><span style="color:black">Kea-users <kea-users-bounces@lists.isc.org> on behalf of Django [Bastard Operator from Hell] via Kea-users <kea-users@lists.isc.org><br>
<b>Date: </b>Saturday, May 4, 2024 at 6:49</span><span style="font-family:"Arial",sans-serif;color:black"> </span><span style="color:black">AM<br>
<b>To: </b>kea-users@lists.isc.org <kea-users@lists.isc.org><br>
<b>Cc: </b>Django [Bastard Operator from Hell] <django@nausch.org><br>
<b>Subject: </b>[Kea-users] kea-dhcpv6 won't offer adresses to clients<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">HI,<br>
<br>
I am currently familiarising myself with Kea and am trying to switch <br>
from ISC-dhcpd to the new Kea server.<br>
<br>
The distribution of IPv4 addresses works so far without any problems, <br>
but I'm having a hard time with IPv6 and DHCPv6.<br>
<br>
O.K. what have I done: I have installed Kea on an Arch Lunux host:<br>
<br>
root@vml000110:~# kea-dhcp6 -v<br>
2.4.1<br>
<br>
The rudimentary kea-dhcp6.conf looks like this:<br>
{<br>
   ‘Dhcp6’: {<br>
     ‘interfaces-config’: {<br>
       ‘interfaces’: [‘eth1’]<br>
     },<br>
     ‘subnet6’: [<br>
       {<br>
         ‘subnet’: ‘2003:a:e0d:7607::/64’,<br>
         ‘pools’: [<br>
           {<br>
             ‘pool’: ‘2003:a:e0d:7607:10:0:10:1000 - <br>
2003:a:e0d:7607:10:0:10:2000’,<br>
             ‘option-data’: [<br>
               {<br>
                 ‘name’: ‘domain-search’,<br>
                 ‘data’: ‘nausch.org’<br>
               }<br>
             ]<br>
           }<br>
         ]<br>
       }<br>
     ]<br>
   }<br>
}<br>
<br>
Calling kea-dhcp6 with the -t option shows the following:<br>
<br>
root@vml000110:~# kea-dhcp6 -t /etc/kea/kea-dhcp6.conf<br>
2024-05-04 14:29:26.477 INFO [kea-dhcp6.hosts/1936.129529300112128] <br>
HOSTS_BACKENDS_REGISTERED the following host backend types are <br>
available: mysql postgresql<br>
2024-05-04 14:29:26.478 WARN [kea-dhcp6.dhcpsrv/1936.129529300112128] <br>
DHCPSRV_MT_DISABLED_QUEUE_CONTROL disabling dhcp queue control when <br>
multi-threading is enabled.<br>
2024-05-04 14:29:26.478 WARN [kea-dhcp6.dhcp6/1936.129529300112128] <br>
DHCP6_RESERVATIONS_LOOKUP_FIRST_ENABLED Multi-threading is enabled and <br>
host reservations lookup is always performed first.<br>
2024-05-04 14:29:26.478 WARN [kea-dhcp6.dhcpsrv/1936.129529300112128] <br>
DHCPSRV_CONFIGURED_SUBNET_WITHOUT_ID a subnet was configured without an <br>
id: 2003:a:e0d:7607::/64<br>
2024-05-04 14:29:26.478 INFO [kea-dhcp6.dhcpsrv/1936.129529300112128] <br>
DHCPSRV_CFGMGR_NEW_SUBNET6 a new subnet has been added to configuration: <br>
2003:a:e0d:7607::/64 with params: valid-lifetime=7200, rapid-commit is false<br>
2024-05-04 14:29:26.478 INFO [kea-dhcp6.dhcpsrv/1936.129529300112128] <br>
DHCPSRV_CFGMGR_SOCKET_TYPE_SELECT using socket type raw<br>
2024-05-04 14:29:26.478 INFO [kea-dhcp6.dhcpsrv/1936.129529300112128] <br>
DHCPSRV_CFGMGR_ADD_IFACE listening on interface eth1<br>
<br>
The daemon starts without any apparent problems:<br>
<br>
root@vml000110:~# systemctl status kea-dhcp6.service<br>
● kea-dhcp6.service - ISC Kea IPv6 DHCP daemon<br>
      Loaded: loaded (/usr/lib/systemd/system/kea-dhcp6.service; <br>
disabled; preset: disabled)<br>
      Active: active (running) since Sat 2024-05-04 12:40:29 CEST; 1h <br>
50min ago<br>
        Docs: man:kea-dhcp6(8)<br>
    Main PID: 1618 (kea-dhcp6)<br>
       Tasks: 9 (limit: 9510)<br>
      Memory: 2.5M (peak: 5.4M)<br>
         CPU: 415ms<br>
      CGroup: /system.slice/kea-dhcp6.service<br>
              └─1618 /usr/bin/kea-dhcp6 -c /etc/kea/kea-dhcp6.conf<br>
<br>
May 04 13:40:29 vml000110 kea-dhcp6[1618]: 2024-05-04 13:40:29.919 INFO <br>
[kea-dhcp6.dhcpsrv/1618.130457064129280] DHCPSRV_MEMFILE_LFC_START starti><br>
May 04 13:40:29 vml000110 kea-dhcp6[1618]: 2024-05-04 13:40:29.921 INFO <br>
[kea-dhcp6.dhcpsrv/1618.130457064129280] DHCPSRV_MEMFILE_LFC_EXECUTE exec><br>
May 04 13:40:29 vml000110 DhcpLFC[1740]: INFO [DhcpLFC.128999924676480] <br>
LFC_START Starting lease file cleanup<br>
May 04 13:40:29 vml000110 DhcpLFC[1740]: INFO [DhcpLFC.128999924676480] <br>
LFC_PROCESSING Previous file: /var/lib/kea/kea-leases6.csv.2, copy file: ><br>
May 04 13:40:29 vml000110 DhcpLFC[1740]: INFO <br>
[DhcpLFC.dhcpsrv.128999924676480] DHCPSRV_MEMFILE_LEASE_FILE_LOAD <br>
loading leases from file /var/lib><br>
May 04 13:40:29 vml000110 DhcpLFC[1740]: INFO <br>
[DhcpLFC.dhcpsrv.128999924676480] DHCPSRV_MEMFILE_LEASE_FILE_LOAD <br>
loading leases from file /var/lib><br>
May 04 13:40:29 vml000110 DhcpLFC[1740]: INFO [DhcpLFC.128999924676480] <br>
LFC_READ_STATS Leases: 0, attempts: 2, errors: 0.<br>
May 04 13:40:29 vml000110 DhcpLFC[1740]: INFO [DhcpLFC.128999924676480] <br>
LFC_WRITE_STATS Leases: 0, attempts: 0, errors: 0.<br>
May 04 13:40:29 vml000110 DhcpLFC[1740]: INFO [DhcpLFC.128999924676480] <br>
LFC_ROTATING LFC rotating files<br>
May 04 13:40:29 vml000110 DhcpLFC[1740]: INFO [DhcpLFC.128999924676480] <br>
LFC_TERMINATE LFC finished processing<br>
<br>
The relevant ports are also open:<br>
<br>
root@vml000110:~# ss -tulpn<br>
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process <br>
<br>
udp UNCONN 0 0 10.0.10.110:67 0.0.0.0:* <br>
users:((‘kea-dhcp4’,pid=892,fd=17))<br>
udp UNCONN 0 0 10.0.0.110:67 0.0.0.0:* <br>
users:((‘kea-dhcp4’,pid=892,fd=15))<br>
udp UNCONN 0 0 0.0.0.0:123 0.0.0.0:* users:((‘chronyd’,pid=491,fd=8)) <br>
<br>
udp UNCONN 0 0 127.0.0.1:323 0.0.0.0:* users:((‘chronyd’,pid=491,fd=5)) <br>
<br>
udp UNCONN 0 0 [::]:123 [::]:* users:((‘chronyd’,pid=491,fd=7))<br>
udp UNCONN 0 0 [::1]:323 [::]:* users:((‘chronyd’,pid=491,fd=6))<br>
udp UNCONN 0 0 [fe80::7:10:ff:fe10:110]%eth1:547 [::]:* <br>
users:((‘kea-dhcp6’,pid=1618,fd=10))<br>
udp UNCONN 0 0 [ff02::1:2]%eth1:547 [::]:* <br>
users:((‘kea-dhcp6’,pid=1618,fd=11))<br>
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((‘sshd’,pid=512,fd=3)) <br>
<br>
tcp LISTEN 0 128 [::]:22 [::]:* users:((‘sshd’,pid=512,fd=4))<br>
<br>
If I now connect a client (Linux laptop) to the dial-up router of my <br>
ISP, I automatically get a global-scop IPv6 address from my fixed IPv6 <br>
address block! So far so good!<br>
<br>
But if I connect my laptop to the eth1 interface of my Arch Linux host, <br>
I get nothing! :(<br>
<br>
# ip addr show enp0s25<br>
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel <br>
state UP group default qlen 1000<br>
     link/ether 3c:97:0e:81:e4:d8 brd ff:ff:ff:ff:ff:ff:ff<br>
     inet 10.0.10.73/24 brd 10.0.10.255 scope global dynamic <br>
noprefixroute enp0s25<br>
        valid_lft 2811sec preferred_lft 2811sec<br>
     inet6 fe80::e9a6:bb03:1544:b000/64 scope link noprefixroute<br>
        valid_lft forever preferred_lft forever<br>
<br>
By the way, it does not matter whether the firewall is active on the <br>
Arch Linux host or not.<br>
If the packet filter is active, the following traffic relationships are <br>
permitted on eth1, among others:<br>
<br>
rule family=‘ipv6’ port port=‘546’ protocol=‘udp’ accept<br>
rule family=‘ipv6’ port port=‘547’ protocol=‘udp’ accept<br>
rule family=‘ipv4’ port port=‘67’ protocol=‘udp’ accept<br>
services: dhcp dhcpv6 smtp ssh<br>
<br>
If I use tcpdump to see what traffic to IP6 appears on eth1 of my Arch <br>
Linux host, on which the Kea daemon is running, I ‘only’ see it:<br>
<br>
root@vml000110:~# tcpdump -v -i eth1 | grep IP6<br>
tcpdump: listening on eth1, link-type EN10MB (Ethernet), snapshot length <br>
262144 bytes<br>
14:42:18.976611 IP6 (hlim 1, next-header Options (0) payload length: 56) <br>
:: > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, <br>
multicast listener report v2, 2 group record(s) [gaddr ff02::fb to_ex, 0 <br>
source(s)] [gaddr ff02::1:ff44:b000 to_ex, 0 source(s)]<br>
14:42:19.336692 IP6 (hlim 1, next-header Options (0) payload length: 56) <br>
:: > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, <br>
multicast listener report v2, 2 group record(s) [gaddr ff02::fb to_ex, 0 <br>
source(s)] [gaddr ff02::1:ff44:b000 to_ex, 0 source(s)]<br>
14:42:19.912693 IP6 (hlim 255, next-header ICMPv6 (58) payload length: <br>
32) :: > ff02::1:ff44:b000: [icmp6 sum ok] ICMP6, neighbour <br>
solicitation, length 32, who has fe80::e9a6:bb03:1544:b000<br>
14:42:20. 936902 IP6 (hlim 1, next-header Options (0) payload length: <br>
56) fe80::e9a6:bb03:1544:b000 > ff02::16: HBH (rtalert: 0x0000) (padn) <br>
[icmp6 sum ok] ICMP6, multicast listener report v2, 2 group record(s) <br>
[gaddr ff02::fb to_ex, 0 source(s)] [gaddr ff02::1:ff44:b000 to_ex, 0 <br>
source(s)]<br>
14:42:21.078914 IP6 (flowlabel 0xf2caa, hlim 255, next-header UDP (17) <br>
payload length: 148) fe80::e9a6:bb03:1544:b000.mdns > ff02::fb.mdns: <br>
[udp sum ok] 0*- [0q] 2/0/0 <br>
0.0.0.b.4.4.5.1.3.0.b.b.6.a.9.e.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. <br>
(cache flush) PTR nitropad.local., nitropad.local. (cache flush) AAAA <br>
fe80::e9a6:bb03:1544:b000 (140)<br>
14:42:21.179682 IP6 (flowlabel 0x05605, hlim 255, next-header ICMPv6 <br>
(58) payload length: 8) fe80::e9a6:bb03:1544:b000 > ff02::2: [icmp6 sum <br>
ok] ICMP6, router solicitation, length 8<br>
14:42:21. 448693 IP6 (hlim 1, next-header Options (0) payload length: <br>
56) fe80::e9a6:bb03:1544:b000 > ff02::16: HBH (rtalert: 0x0000) (padn) <br>
[icmp6 sum ok] ICMP6, multicast listener report v2, 2 group record(s) <br>
[gaddr ff02::fb to_ex, 0 source(s)] [gaddr ff02::1:ff44:b000 to_ex, 0 <br>
source(s)]<br>
14:42:22.062569 IP6 (flowlabel 0xf2caa, hlim 255, next-header UDP (17) <br>
payload length: 149) fe80::e9a6:bb03:1544:b000.mdns > ff02::fb.mdns: <br>
[udp sum ok] 0 [9q] PTR (QM)? _nfs._tcp.local. PTR (QM)? <br>
_ipp._tcp.local. PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. <br>
PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? <br>
_sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? <br>
_afpovertcp._tcp.local. (141)<br>
14:42:23.258017 IP6 (flowlabel 0xf2caa, hlim 255, next-header UDP (17) <br>
payload length: 148) fe80::e9a6:bb03:1544:b000.mdns > ff02::fb.mdns: <br>
[udp sum ok] 0*- [0q] 2/0/0 <br>
0.0.0.b.4.4.5.1.3.0.b.b.6.a.9.e.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. <br>
(cache flush) PTR nitropad.local., nitropad.local. (cache flush) AAAA <br>
fe80::e9a6:bb03:1544:b000 (140)<br>
14:42:24.885918 IP6 (flowlabel 0x05605, hlim 255, next-header ICMPv6 <br>
(58) payload length: 8) fe80::e9a6:bb03:1544:b000 > ff02::2: [icmp6 sum <br>
ok] ICMP6, router solicitation, length 8<br>
14:42:26.065219 IP6 (flowlabel 0xf2caa, hlim 255, next-header UDP (17) <br>
payload length: 149) fe80::e9a6:bb03:1544:b000.mdns > ff02::fb.mdns: <br>
[udp sum ok] 0 [9q] PTR (QM)? _nfs._tcp.local. PTR (QM)? <br>
_ipp._tcp.local. PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. <br>
PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? <br>
_sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? <br>
_afpovertcp._tcp.local. (141)<br>
14:42:30. 148646 IP6 (hlim 1, next-header Options (0) payload length: <br>
56) fe80::e9a6:bb03:1544:b000 > ff02::16: HBH (rtalert: 0x0000) (padn) <br>
[icmp6 sum ok] ICMP6, multicast listener report v2, 2 group record(s) <br>
[gaddr ff02::fb to_ex, 0 source(s)] [gaddr ff02::1:ff44:b000 to_ex, 0 <br>
source(s)]<br>
14:42:31. 144728 IP6 (hlim 1, next-header Options (0) payload length: <br>
56) fe80::e9a6:bb03:1544:b000 > ff02::16: HBH (rtalert: 0x0000) (padn) <br>
[icmp6 sum ok] ICMP6, multicast listener report v2, 2 group record(s) <br>
[gaddr ff02::fb to_ex, 0 source(s)] [gaddr ff02::1:ff44:b000 to_ex, 0 <br>
source(s)]<br>
14:42:32.326422 IP6 (flowlabel 0x05605, hlim 255, next-header ICMPv6 <br>
(58) payload length: 8) fe80::e9a6:bb03:1544:b000 > ff02::2: [icmp6 sum <br>
ok] ICMP6, router solicitation, length 8<br>
14:42:34.069747 IP6 (flowlabel 0xf2caa, hlim 255, next-header UDP (17) <br>
payload length: 149) fe80::e9a6:bb03:1544:b000.mdns > ff02::fb.mdns: <br>
[udp sum ok] 0 [9q] PTR (QM)? _nfs._tcp.local. PTR (QM)? <br>
_ipp._tcp.local. PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. <br>
PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? <br>
_sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? <br>
_afpovertcp._tcp.local. (141)<br>
^C80 packets captured<br>
81 packets received by filter<br>
0 packets dropped by kernel<br>
<br>
I have absolutely no idea what is going wrong, or where I have <br>
misinterpreted and misconfigured something. It's probably quite simple <br>
and I've just overlooked something. But right now I don't understand the <br>
world anymore and can't see the wood for the trees, as they say here.<br>
<br>
Hence my request and question. What's going on here? Where is my <br>
(thinking) mistake? Where can I still look? What can I do to narrow down <br>
the error further?<br>
<br>
I am very grateful for any tips!<br>
<br>
ttyl<br>
Django<br>
<br>
<br>
<br>
<br>
<br>
<br>
-- <br>
ISC funds the development of this software with paid support subscriptions. Contact us at
<a href="https://www.isc.org/contact/">https://www.isc.org/contact/</a> for more information.<br>
<br>
To unsubscribe visit <a href="https://lists.isc.org/mailman/listinfo/kea-users">https://lists.isc.org/mailman/listinfo/kea-users</a>.<br>
<br>
Kea-users mailing list<br>
Kea-users@lists.isc.org<br>
<a href="https://lists.isc.org/mailman/listinfo/kea-users">https://lists.isc.org/mailman/listinfo/kea-users</a><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</body>
</html>