<div dir="ltr">Thank you for all your help, I appreciate it.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 25, 2023 at 10:30 AM Darren Ankney <<a href="mailto:darren.ankney@gmail.com">darren.ankney@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Joshua,<br>
<br>
Looks like it might not be supported in 2.2.0. Here is a, now closed,<br>
GL issue discussing PD hints:<br>
<a href="https://gitlab.isc.org/isc-projects/kea/-/issues/1958" rel="noreferrer" target="_blank">https://gitlab.isc.org/isc-projects/kea/-/issues/1958</a> which was<br>
milestoned for 2.3.4.<br>
<br>
Indeed, I just found it in the release notes for 2.3.4:<br>
<a href="https://downloads.isc.org/isc/kea/2.3.4/Kea-2.3.4-ReleaseNotes.txt" rel="noreferrer" target="_blank">https://downloads.isc.org/isc/kea/2.3.4/Kea-2.3.4-ReleaseNotes.txt</a><br>
<br>
4. **PD hints**: Kea now understands when a DHCPv6 client prefers a<br>
prefix of a certain length. If Kea is configured to hand out /64, /60,<br>
and /56 prefixes and the client requests /56, it will get it.<br>
Previously, Kea ignored the hint and assigned prefixes in the order the<br>
pools appeared in the config file [#1958].<br>
<br>
2.3.4 is part of the 2.3 development branch and is not recommended for<br>
production use. The next stable (2.4.0) will include this<br>
functionality and should be released this summer.<br>
<br>
Sorry to have misled you.<br>
<br>
Thank you,<br>
<br>
Darren Ankney<br>
<br>
On Thu, May 25, 2023 at 11:24 AM Joshua Pool <<a href="mailto:josh@mikrologic.com" target="_blank">josh@mikrologic.com</a>> wrote:<br>
><br>
> DHCPv6<br>
> Message type: Solicit (1)<br>
> Transaction ID: 0x05194c<br>
> Client Identifier<br>
> Option: Client Identifier (1)<br>
> Length: 10<br>
> DUID: 000300010e2115700cf0<br>
> DUID Type: link-layer address (3)<br>
> Hardware type: Ethernet (1)<br>
> Link-layer address: 0e:21:15:70:0c:f0<br>
> Identity Association for Non-temporary Address<br>
> Option: Identity Association for Non-temporary Address (3)<br>
> Length: 12<br>
> IAID: 00000001<br>
> T1: 1800<br>
> T2: 2880<br>
> Elapsed time<br>
> Option: Elapsed time (8)<br>
> Length: 2<br>
> Elapsed time: 0ms<br>
> Identity Association for Prefix Delegation<br>
> Option: Identity Association for Prefix Delegation (25)<br>
> Length: 41<br>
> IAID: 00000001<br>
> T1: 1800<br>
> T2: 2880<br>
> IA Prefix<br>
> Option: IA Prefix (26)<br>
> Length: 25<br>
> Preferred lifetime: 2880<br>
> Valid lifetime: 3600<br>
> Prefix length: 64<br>
> Prefix address: ::<br>
><br>
> On Thu, May 25, 2023 at 3:37 AM Darren Ankney <<a href="mailto:darren.ankney@gmail.com" target="_blank">darren.ankney@gmail.com</a>> wrote:<br>
>><br>
>> Joshua,<br>
>><br>
>> Assuming the logging is correct, it looks like the hint may not be<br>
>> correct. It should be just an integer. It shouldn't have any other<br>
>> data (such as :: or /) in the field:<br>
>><br>
>> <a href="https://www.rfc-editor.org/rfc/rfc8415#section-18.2.1" rel="noreferrer" target="_blank">https://www.rfc-editor.org/rfc/rfc8415#section-18.2.1</a><br>
>><br>
>> The client MAY include values in IA Prefix options (see<br>
>> Section 21.22) encapsulated within IA_PD options as hints for the<br>
>> delegated prefix and/or prefix length for which the client has a<br>
>> preference. See Section 18.2.4 for more on prefix-length hints.<br>
>><br>
>><br>
>> <a href="https://www.rfc-editor.org/rfc/rfc8415#section-21.22" rel="noreferrer" target="_blank">https://www.rfc-editor.org/rfc/rfc8415#section-21.22</a><br>
>><br>
>> prefix-length Length for this prefix in bits. A 1-octet<br>
>> unsigned integer.<br>
>><br>
>> You could probably confirm the content of the field with a packet capture.<br>
>><br>
>> Thank you,<br>
>><br>
>> Darren Ankney<br>
>><br>
>> On Tue, May 23, 2023 at 5:09 PM Joshua Pool <<a href="mailto:josh@mikrologic.com" target="_blank">josh@mikrologic.com</a>> wrote:<br>
>> ><br>
>> > Thanks for the response. I am using a Mikrotik router and I can get the desired PD from Charter Spectrum just fine but when I try to do the same with Kea it always assigns me the delegated-len value of /56 regardless of what hint I include.<br>
>> ><br>
>> > In this example my Mikrotik is set with prefix hin ::/64<br>
>> > In Kea the DEBUG DHCP6 PACKET RECEIVED it shows the prefix=::/64<br>
>> > DEBUG DHCP6_PROCESS_IA_PD_REQUEST duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0x26e767: server is processing IA_PD option with iaid=1 and hint=::<br>
>> > DHCP6_PD_LEASE_ADVERT duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f: lease for prefix fd00:c40:20:600::/56 and iaid=1 will be advertised<br>
>> ><br>
>> > Full Log:<br>
>> > 20:47:11 DEBUG DHCP6_PACKET_RECEIVED duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f: SOLICIT (type 1) received from fe80::c21:15ff:fe70:cf0 to ff02::1:2 on interface eth1<br>
>> > <len=00012: iaid=1, t1=1800, t2=2880#012type=00008, len=00002: 0 (uint16)#012type=00025(IA_PD), len=00041: iaid=1, t1=1800, t2=2880,#012options:#012 type=00026(IAPREFIX), len=00025: prefix=::/64, preferred-lft=2880, valid-lft=3600#012No relays traversed.#012<br>
>> > 20:47:11 DEBUG HOOKS_CALLOUTS_BEGIN begin all callouts for hook pkt6_receive<br>
>> > 20:47:11 DEBUG HOOKS_CALLOUT_CALLED hooks library with index 1 has called a callout on hook pkt6_receive that has address 0x7fb78df0b710 (callout duration: 0.036 ms)<br>
>> > 20:47:11 DEBUG HOOKS_CALLOUTS_COMPLETE completed callouts for hook pkt6_receive (total callouts duration: 0.036 ms)<br>
>> > 20:47:11 DEBUG DHCPSRV_CFGMGR_SUBNET6_IFACE selected subnet fd00:c40:10::/64 for packet received over interface eth1<br>
>> > 20:47:11 DEBUG DHCP6_SUBNET_SELECTED duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f: the subnet with ID 1 was selected for client assignments<br>
>> > 20:47:11 DEBUG DHCP6_SUBNET_DATA duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f: the selected subnet details: fd00:c40:10::/64<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER get one host with IPv6 reservation for subnet id 1, identified by duid=000300010E2115700CF0<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ALL_IDENTIFIER get all hosts with reservations using identifier: duid=000300010E2115700CF0<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT using identifier duid=000300010E2115700CF0, found 0 host(s)<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_NULL host not found using subnet id 1 and identifier duid=000300010E2115700CF0<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER get one host with IPv6 reservation for subnet id 1, identified by hwaddr=0E2115700CF0<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ALL_IDENTIFIER get all hosts with reservations using identifier: hwaddr=0E2115700CF0<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT using identifier hwaddr=0E2115700CF0, found 0 host(s)<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_NULL host not found using subnet id 1 and identifier hwaddr=0E2115700CF0<br>
>> > 20:47:11 DEBUG DHCP6_CLASS_ASSIGNED duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f: client packet has been assigned to the following class(es): UNKNOWN<br>
>> > 20:47:11 DEBUG DHCP6_PROCESS_IA_NA_REQUEST duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f: server is processing IA_NA option with iaid=1 and hint=(no hint)<br>
>> > 20:47:11 DEBUG DHCPSRV_MEMFILE_GET_IAID_DUID obtaining IPv6 leases for IAID 1 and DUID 00:03:00:01:0e:21:15:70:0c:f0 and lease type IA_NA<br>
>> > 20:47:11 DEBUG ALLOC_ENGINE_V6_ALLOC_UNRESERVED no static reservations available - trying to dynamically allocate leases for client duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6 get one host with reservation for subnet id 1 and having IPv6 address fd00:c40:10::206<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6 get all hosts with reservations for subnet id 1 and IPv6 address fd00:c40:10::206<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6_COUNT using subnet id 1 and address fd00:c40:10::206, found 0 host(s)<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6_NULL host not found using subnet id 1 and address fd00:c40:10::206<br>
>> > 20:47:11 DEBUG DHCPSRV_MEMFILE_GET_ADDR6 obtaining IPv6 lease for address fd00:c40:10::206 and lease type IA_NA<br>
>> > 20:47:11 INFO DHCP6_LEASE_ADVERT duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f: lease for address fd00:c40:10::206 and iaid=1 will be advertised<br>
>> > 20:47:11 DEBUG DHCP6_LEASE_DATA duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f: detailed lease information for iaid=1: Type: IA_NA(0)#012Address: fd00:c40:10::206#012Prefix length: 128#012IAID: 1#012Pref life: 453600#012Valid life: 604800#012Cltt: ><br>
>> > 20:47:11 DEBUG DHCP6_PROCESS_IA_PD_REQUEST duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f: server is processing IA_PD option with iaid=1 and hint=::<br>
>> > 20:47:11 DEBUG DHCPSRV_MEMFILE_GET_IAID_DUID obtaining IPv6 leases for IAID 1 and DUID 00:03:00:01:0e:21:15:70:0c:f0 and lease type IA_PD<br>
>> > 20:47:11 DEBUG ALLOC_ENGINE_V6_ALLOC_UNRESERVED no static reservations available - trying to dynamically allocate leases for client duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6 get one host with reservation for subnet id 1 and having IPv6 address fd00:c40:20:600::<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6 get all hosts with reservations for subnet id 1 and IPv6 address fd00:c40:20:600::<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ALL_SUBNET_ID_ADDRESS6_COUNT using subnet id 1 and address fd00:c40:20:600::, found 0 host(s)<br>
>> > 20:47:11 DEBUG HOSTS_CFG_GET_ONE_SUBNET_ID_ADDRESS6_NULL host not found using subnet id 1 and address fd00:c40:20:600::<br>
>> > 20:47:11 DEBUG DHCPSRV_MEMFILE_GET_ADDR6 obtaining IPv6 lease for address fd00:c40:20:600:: and lease type IA_PD<br>
>> > 20:47:11 INFO DHCP6_PD_LEASE_ADVERT duid=[00:03:00:01:0e:21:15:70:0c:f0], tid=0xa0e83f: lease for prefix fd00:c40:20:600::/56 and iaid=1 will be advertised<br>
>> ><br>
>> > Any Thoughts?<br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> > On Tue, May 23, 2023 at 2:46 AM Darren Ankney <<a href="mailto:darren.ankney@gmail.com" target="_blank">darren.ankney@gmail.com</a>> wrote:<br>
>> >><br>
>> >> Hello Joshua,<br>
>> >><br>
>> >> It would appear it just happens. No need to configure anything. There<br>
>> >> is a debug message about the hint being processed:<br>
>> >><br>
>> >> <a href="https://kea.readthedocs.io/en/kea-2.2.0/kea-messages.html" rel="noreferrer" target="_blank">https://kea.readthedocs.io/en/kea-2.2.0/kea-messages.html</a><br>
>> >><br>
>> >> DHCP6_PROCESS_IA_PD_REQUEST<br>
>> >><br>
>> >> %1: server is processing IA_PD option with iaid=%2 and hint=%3<br>
>> >><br>
>> >> This is a debug message that indicates a processing of received IA_PD<br>
>> >> option. The first argument contains the client and the transaction<br>
>> >> identification information. The second argument holds the IAID of the<br>
>> >> IA_PD option. The third argument may hold the hint for the server<br>
>> >> about the prefix that the client would like to have allocated. If<br>
>> >> there is no hint, the argument should provide the text indicating that<br>
>> >> the hint hasn't been sent.<br>
>> >><br>
>> >> Thank you,<br>
>> >><br>
>> >> Darren Ankney<br>
>> >><br>
>> >> On Mon, May 22, 2023 at 8:39 PM Joshua Pool via Kea-users<br>
>> >> <<a href="mailto:kea-users@lists.isc.org" target="_blank">kea-users@lists.isc.org</a>> wrote:<br>
>> >> ><br>
>> >> > With KEA 2.2 is there a way to assign a PD based on received PD hints?<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/" rel="noreferrer" target="_blank">https://www.isc.org/contact/</a> for more information.<br>
>> >> ><br>
>> >> > To unsubscribe visit <a href="https://lists.isc.org/mailman/listinfo/kea-users" rel="noreferrer" target="_blank">https://lists.isc.org/mailman/listinfo/kea-users</a>.<br>
>> >> ><br>
>> >> > Kea-users mailing list<br>
>> >> > <a href="mailto:Kea-users@lists.isc.org" target="_blank">Kea-users@lists.isc.org</a><br>
>> >> > <a href="https://lists.isc.org/mailman/listinfo/kea-users" rel="noreferrer" target="_blank">https://lists.isc.org/mailman/listinfo/kea-users</a><br>
</blockquote></div>