<html xmlns:v="urn:schemas-microsoft-com:vml" 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=Windows-1252">
<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:11.0pt;
font-family:"Aptos",sans-serif;
mso-ligatures:standardcontextual;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#467886;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:11.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="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hello,</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am trying to use the Bulk Leasequery feature of Kea DHCP6 to reload Gateway routers with delegated (or all) leases that have been lost due to either a reload or crash scenario. Since I want to reload thousands of IA_NA/IA_PD leases on
demand, I expected to see a very clear “glue” between the relay ID and the target leases. But I do not and using default commands from my Juniper gateways is not resulting in any leases being returned.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My main question that I am struggling with is where do I find where the Relay-ID value is stored to properly query for leases tied to it since I do not even know if my relay-id is valid?</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Based on 16.16.6. DHCPv6 Bulk Leasequery <a href="https://kea.readthedocs.io/en/kea-2.6.0/arm/hooks.html#dhcpv6-bulk-leasequery">
https://kea.readthedocs.io/en/kea-2.6.0/arm/hooks.html#dhcpv6-bulk-leasequery</a>, I re-installed Kea to use a memfile lease backend to use those features.</p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal">My hook library config is below with logging turned to max:</p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"> "hooks-libraries": [</p>
<p class="MsoNormal"> { </p>
<p class="MsoNormal"> "library": "/usr/lib64/kea/hooks/libdhcp_lease_query.so",</p>
<p class="MsoNormal"> "parameters": {</p>
<p class="MsoNormal"> "requesters": [ "fc00:d2c0:10:170::2", "fc00:d2c0:10:170::3" ],</p>
<p class="MsoNormal"> "advanced" : {</p>
<p class="MsoNormal"> "bulk-query-enabled": true,</p>
<p class="MsoNormal"> "active-query-enabled": false,</p>
<p class="MsoNormal"> "extended-info-tables-enabled": true,</p>
<p class="MsoNormal"> "lease-query-ip": "fc00:d2c0:10:170::23",</p>
<p class="MsoNormal"> "lease-query-tcp-port": 547,</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> "loggers": [</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "name": "kea-dhcp6.lease-query-hooks",</p>
<p class="MsoNormal"> "severity": "DEBUG",</p>
<p class="MsoNormal"> "debuglevel": 99,</p>
<p class="MsoNormal"> "output_options": [</p>
<p class="MsoNormal"> {</p>
<p class="MsoNormal"> "output": "/var/log/kea/dhcp6-blq.log",</p>
<p class="MsoNormal"> "maxver": 10</p>
<p class="MsoNormal"> }</p>
<p class="MsoNormal"> ]</p>
<p class="MsoNormal"> },</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I see the bulk message come into the log file, but it also says there are no leases when I know there is at least 1 test lease (IA_NA/IA_PD):</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[root@dhcp-test ~]# cat /var/lib/kea/dhcp6.leases</p>
<p class="MsoNormal">address,duid,valid_lifetime,expire,subnet_id,pref_lifetime,lease_type,iaid,prefix_len,fqdn_fwd,fqdn_rev,hostname,hwaddr,state,user_context,hwtype,hwaddr_source,pool_id<o:p></o:p></p>
<p class="MsoNormal">2001:db8:1580:255::100,00:03:00:01:b8:94:70:fb:20:6e,600,1724871654,1,600,0,1,128,0,0,resgw,b8:94:70:fb:20:6e,0,,1,2,0<o:p></o:p></p>
<p class="MsoNormal">2001:db8:8000::,00:03:00:01:b8:94:70:fb:20:6e,600,1724871654,1,600,2,1,56,0,0,resgw,b8:94:70:fb:20:6e,0,,1,2,0<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">But the BLQ Hook Log says there are “no active leases”:</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">2024-08-21 14:54:10.244 DEBUG [kea-dhcp6.lease-query-hooks/1319.140527284262464] BULK_LEASE_QUERY_QUERY_RECEIVED A bulk lease query packet received from fc00:d2c0:10:170::3, details: local_address=[::]:0, remote_address=[fc00:d2c0:10:170::3]:53751,<o:p></o:p></p>
<p class="MsoNormal">msg_type=LEASEQUERY (14), trans_id=0xeda378,<o:p></o:p></p>
<p class="MsoNormal">options:<o:p></o:p></p>
<p class="MsoNormal"> type=00001, len=00031: 00:02:00:00:05:83:01:66:34:3a:62:66:3a:61:38:3a:33:39:3a:63:65:3a:32:30:00:00:00:00:00:00:00<o:p></o:p></p>
<p class="MsoNormal"> type=00044, len=00072: 3 (uint8) :: (ipv6-address),<o:p></o:p></p>
<p class="MsoNormal">options:<o:p></o:p></p>
<p class="MsoNormal"> type=00006, len=00016: 18(uint16) 37(uint16) 47(uint16) 15(uint16) 16(uint16) 12(uint16) 100(uint16) 79(uint16)<o:p></o:p></p>
<p class="MsoNormal"> type=00053, len=00031: 00:02:00:00:05:83:01:66:34:3a:62:66:3a:61:38:3a:33:39:3a:63:65:3a:32:30:00:00:00:00:00:00:00<o:p></o:p></p>
<p class="MsoNormal">No relays traversed.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">2024-08-21 14:54:10.244 DEBUG [kea-dhcp6.lease-query-hooks/1319.140527284262464] BULK_LEASE_QUERY_RESPONSE_SENT A bulk lease query response sent to fc00:d2c0:10:170::3, details: local_address=[::]:0, remote_address=[fc00:d2c0:10:170::3]:53751,<o:p></o:p></p>
<p class="MsoNormal">msg_type=LEASEQUERY_REPLY (15), trans_id=0xeda378,<o:p></o:p></p>
<p class="MsoNormal">options:<o:p></o:p></p>
<p class="MsoNormal"> type=00001, len=00031: 00:02:00:00:05:83:01:66:34:3a:62:66:3a:61:38:3a:33:39:3a:63:65:3a:32:30:00:00:00:00:00:00:00<o:p></o:p></p>
<p class="MsoNormal"> type=00002, len=00014: 00:01:00:01:2d:90:6d:83:00:50:56:be:a7:9a<o:p></o:p></p>
<p class="MsoNormal"> type=00013, len=00018: Success(0) "no active leases"<o:p></o:p></p>
<p class="MsoNormal">No relays traversed.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I believe this is a crucial feature for anyone launching IPv6 with Prefix Delegation. Has anyone seen this feature work using relay-id? How did you know which one to use?</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,</p>
<p class="MsoNormal">Mark</p>
</div>
</body>
</html>