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]

Reply via email to