Joshua,

Assuming the logging is correct, it looks like the hint may not be
correct.  It should be just an integer.  It shouldn't have any other
data (such as :: or /) in the field:

https://www.rfc-editor.org/rfc/rfc8415#section-18.2.1

The client MAY include values in IA Prefix options (see
   Section 21.22) encapsulated within IA_PD options as hints for the
   delegated prefix and/or prefix length for which the client has a
   preference.  See Section 18.2.4 for more on prefix-length hints.


https://www.rfc-editor.org/rfc/rfc8415#section-21.22

prefix-length        Length for this prefix in bits.  A 1-octet
                           unsigned integer.

You could probably confirm the content of the field with a packet capture.

Thank you,

Darren Ankney

On Tue, May 23, 2023 at 5:09 PM Joshua Pool <j...@mikrologic.com> wrote:
>
> 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.
>
> In this example my Mikrotik is set with prefix hin ::/64
> In Kea the DEBUG DHCP6 PACKET RECEIVED it shows the prefix=::/64
> 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=::
> 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
>
> Full Log:
> 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
> <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
> 20:47:11 DEBUG HOOKS_CALLOUTS_BEGIN begin all callouts for hook pkt6_receive
> 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)
> 20:47:11 DEBUG HOOKS_CALLOUTS_COMPLETE completed callouts for hook 
> pkt6_receive (total callouts duration: 0.036 ms)
> 20:47:11 DEBUG DHCPSRV_CFGMGR_SUBNET6_IFACE selected subnet fd00:c40:10::/64 
> for packet received over interface eth1
> 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
> 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
> 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
> 20:47:11 DEBUG HOSTS_CFG_GET_ALL_IDENTIFIER get all hosts with reservations 
> using identifier: duid=000300010E2115700CF0
> 20:47:11 DEBUG HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT using identifier 
> duid=000300010E2115700CF0, found 0 host(s)
> 20:47:11 DEBUG HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_NULL host not found 
> using subnet id 1 and identifier duid=000300010E2115700CF0
> 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
> 20:47:11 DEBUG HOSTS_CFG_GET_ALL_IDENTIFIER get all hosts with reservations 
> using identifier: hwaddr=0E2115700CF0
> 20:47:11 DEBUG HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT using identifier 
> hwaddr=0E2115700CF0, found 0 host(s)
> 20:47:11 DEBUG HOSTS_CFG_GET_ONE_SUBNET_ID_IDENTIFIER_NULL host not found 
> using subnet id 1 and identifier hwaddr=0E2115700CF0
> 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
> 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)
> 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
> 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
> 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
> 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
> 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)
> 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
> 20:47:11 DEBUG DHCPSRV_MEMFILE_GET_ADDR6 obtaining IPv6 lease for address 
> fd00:c40:10::206 and lease type IA_NA
> 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
> 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:       >
> 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=::
> 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
> 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
> 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::
> 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::
> 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)
> 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::
> 20:47:11 DEBUG DHCPSRV_MEMFILE_GET_ADDR6 obtaining IPv6 lease for address 
> fd00:c40:20:600:: and lease type IA_PD
> 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
>
> Any Thoughts?
>
>
>
>
>
>
> On Tue, May 23, 2023 at 2:46 AM Darren Ankney <darren.ank...@gmail.com> wrote:
>>
>> Hello Joshua,
>>
>> It would appear it just happens. No need to configure anything.  There
>> is a debug message about the hint being processed:
>>
>> https://kea.readthedocs.io/en/kea-2.2.0/kea-messages.html
>>
>> DHCP6_PROCESS_IA_PD_REQUEST
>>
>> %1: server is processing IA_PD option with iaid=%2 and hint=%3
>>
>> This is a debug message that indicates a processing of received IA_PD
>> option. The first argument contains the client and the transaction
>> identification information. The second argument holds the IAID of the
>> IA_PD option. The third argument may hold the hint for the server
>> about the prefix that the client would like to have allocated. If
>> there is no hint, the argument should provide the text indicating that
>> the hint hasn't been sent.
>>
>> Thank you,
>>
>> Darren Ankney
>>
>> On Mon, May 22, 2023 at 8:39 PM Joshua Pool via Kea-users
>> <kea-users@lists.isc.org> wrote:
>> >
>> > With KEA 2.2 is there a way to assign a PD based on received PD hints?
>> >
>> >
>> > --
>> > ISC funds the development of this software with paid support 
>> > subscriptions. Contact us at https://www.isc.org/contact/ for more 
>> > information.
>> >
>> > To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>> >
>> > Kea-users mailing list
>> > Kea-users@lists.isc.org
>> > https://lists.isc.org/mailman/listinfo/kea-users
-- 
ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.

To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.

Kea-users mailing list
Kea-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/kea-users

Reply via email to