Hi Joop,

> Would it be possible to limit the libdhcp_flex_option.so hook to a specific 
> pool
or interface.

You can add the client(s) you want to modify to a class in some way
(see: https://kea.readthedocs.io/en/stable/arm/classify.html) and the
supersede can be limited to a certain class as described here:
https://kea.readthedocs.io/en/stable/arm/hooks.html#libdhcp-flex-option-so-flexible-option-actions-for-option-value-settings
where it says:

> Since Kea 2.1.4, the client-class parameter specifies a class guard, and 
> takes a client-class name. If not empty, the client's packet needs to belong 
> to tne specified class for this entry to be used.

Thank you,
Darren Ankney

On Thu, Dec 18, 2025 at 10:13 AM Joop Boonen <[email protected]> wrote:
>
> On Wednesday, December 17, 2025 12:04:01 PM Central European Standard Time
> Carsten Strotmann via Kea-users wrote:
> > Hi Joop,
> >
> > On 17 Dec 2025, at 11:29, Joop Boonen wrote:
> > > Dear all,
> > >
> > > I didn't find any option to implement dynamic host-names in kea pool.
> > >
> > > Like this in isc dhcpd.
> > >
> > > subnet 172.26.250.0 netmask 255.255.254.0 {
> > >
> > >   set machex = binary-to-ascii(16, 8, "", substring(hardware, 1, 6));
> > >   set macsuffix = suffix(machex, 6);
> > >   set hstnm = concat("vm-", macsuffix);
> > >   option host-name = hstnm; # Option 12
> > >
> > > -->8--
> > >
> > > i.e.
> > >
> > >   pool {
> > >
> > >     range 172.26.250.64 172.26.251.250;
> > >
> > >    set machex = binary-to-ascii(16, 8, "", substring(hardware, 1, 6));
> > >    set macsuffix = suffix(machex, 6);
> > >    set hstnm = concat("vm-", macsuffix);
> > >    option host-name = hstnm; # Option 12
> > >
> > > -->8--
> > >
> > > Does anyone know if this is possible, in kea?
> >
> > Yes, it is possible, even via multiple ways:
> >
> > 1)
> > via DDNS-Tuning, see the examples at
> > https://kea.readthedocs.io/en/stable/arm/hooks.html#libdhcp-ddns-tuning-so-d
> > dns-tuning
> >
> > 2)
> > via flexible-options (the expression below is build based on your ISC-DHCP
> > code, I've not tested it):
> >
> >       {
> >         "library": "libdhcp_flex_option.so",
> >         "parameters": {
> >             "options": [
> >                 {
> >                    "name": "host-name",
> >                    "supersede":
> > "concat("vm-",substring(hexstring(option[host-name].hex,""),-1,6))",
> > "csv-format": true
> >                 },
> >           ]
> >         }
> >       },
> >
> > Greetings
> >
> > Carsten
>
> Thank you very much for your answer.
>
> I've just tested this solution. Option 12 works like a charm.
>
> Sadly the ddns entries aren't written i.e. they don't end up in the bind9
> zones.
>
> My configuration:
> "Dhcp4": {
>     "hooks-libraries": [
>         {   "library": "libdhcp_flex_option.so",
>             "parameters": {
>                 "options": [
>                     {
>                         "name": "host-name",
>                         "supersede":
> "concat('vm-',hexstring(option[50].hex,''))",
>                         "csv-format": true
>                     }
>                 ]
>             }
>         }
>     ],
>
>
>    "hw-address": "<hw-address>",
>    "ip-address": "<ip-address>",
>    "hostname": "<hostname>"
>
> are written correctly in bind9.
>
> Would it be possible to limit the libdhcp_flex_option.so hook to a specific 
> pool
> or interface.
>
>
> Regards,
>
> Joop Boonen.
> --
> 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.
> [email protected]
-- 
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.
[email protected]

Reply via email to