[Kea-users] Hints

Joshua Pool josh at mikrologic.com
Thu May 25 17:38:41 UTC 2023


Thank you for all your help, I appreciate it.

On Thu, May 25, 2023 at 10:30 AM Darren Ankney <darren.ankney at gmail.com>
wrote:

> Hi Joshua,
>
> Looks like it might not be supported in 2.2.0.  Here is a, now closed,
> GL issue discussing PD hints:
> https://gitlab.isc.org/isc-projects/kea/-/issues/1958 which was
> milestoned for 2.3.4.
>
> Indeed, I just found it in the release notes for 2.3.4:
> https://downloads.isc.org/isc/kea/2.3.4/Kea-2.3.4-ReleaseNotes.txt
>
> 4. **PD hints**: Kea now understands when a DHCPv6 client prefers a
> prefix of a certain length. If Kea is configured to hand out /64, /60,
> and /56 prefixes and the client requests /56, it will get it.
> Previously, Kea ignored the hint and assigned prefixes in the order the
> pools appeared in the config file [#1958].
>
> 2.3.4 is part of the 2.3 development branch and is not recommended for
> production use. The next stable (2.4.0) will include this
> functionality and should be released this summer.
>
> Sorry to have misled you.
>
> Thank you,
>
> Darren Ankney
>
> On Thu, May 25, 2023 at 11:24 AM Joshua Pool <josh at mikrologic.com> wrote:
> >
> > DHCPv6
> >     Message type: Solicit (1)
> >     Transaction ID: 0x05194c
> >     Client Identifier
> >         Option: Client Identifier (1)
> >         Length: 10
> >         DUID: 000300010e2115700cf0
> >         DUID Type: link-layer address (3)
> >         Hardware type: Ethernet (1)
> >         Link-layer address: 0e:21:15:70:0c:f0
> >     Identity Association for Non-temporary Address
> >         Option: Identity Association for Non-temporary Address (3)
> >         Length: 12
> >         IAID: 00000001
> >         T1: 1800
> >         T2: 2880
> >     Elapsed time
> >         Option: Elapsed time (8)
> >         Length: 2
> >         Elapsed time: 0ms
> >     Identity Association for Prefix Delegation
> >         Option: Identity Association for Prefix Delegation (25)
> >         Length: 41
> >         IAID: 00000001
> >         T1: 1800
> >         T2: 2880
> >         IA Prefix
> >             Option: IA Prefix (26)
> >             Length: 25
> >             Preferred lifetime: 2880
> >             Valid lifetime: 3600
> >             Prefix length: 64
> >             Prefix address: ::
> >
> > On Thu, May 25, 2023 at 3:37 AM Darren Ankney <darren.ankney at gmail.com>
> wrote:
> >>
> >> 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 <josh at 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.ankney at 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 at 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 at lists.isc.org
> >> >> > https://lists.isc.org/mailman/listinfo/kea-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/kea-users/attachments/20230525/284a9870/attachment-0001.htm>


More information about the Kea-users mailing list