[Kea-users] Ddns not Updated when hostname is assigned via hw-address when using hook libdhcp_ddns_tuning.so

Peter Davies peterd at isc.org
Tue Jan 6 13:42:46 UTC 2026


Hi Joop,
    A host reservations require an identifier; otherwise, Kea would have 
no way
of knowing which client the reservation is intended for.

The reservation identifier need not be the “hw-address. The "duid", 
"circuit-id",
and "client-id" may also be used.

The flex-id hooks library enables user-defined identifiers based on the 
contents
of DHCP request packets.
See: 
https://kea.readthedocs.io/en/stable/arm/hooks.html#libdhcp-flex-id-so-flexible-identifier-for-host-reservations

If you know in advance that all clients on a subnet need to have their 
hostname
processed in this way, it is  possible to limit the scope of the 
"hostname-expr"
to a subnet by adding a “ddns-tuning” “user-context” to the subnet 
definition.
For example:
  "subnet4": [{
      "subnet": "192.0.2.0/24",
      "pools": [{ "pool": "192.0.2.10 - 192.0.2.20" } ],
      "user-context": {
          "ddns-tuning":
              "hostname-expr" : 
"concat('vm-test-',addrtotext(option[50].hex))" }
          }
      }
  }],



Perhaps your intended use of host reservations performs a different 
function than
that normally associated with host reservations. Maybe some sort of  
limiting
mechanism?

On 06/01/2026 10.48, Joop Boonen wrote:
> Hi,
>
> Thank you for the answer. The addrtotext option is great.
>
> I would like to explain what we need.
>
> We wouldn't like to use an identifier for every host.
> 1) Because we want to hand out DNS names to VMs with random MAC addresses.
> 2) We are using /24 and /23 networks. So that even if we would know the MAC-
> addresses this would mean a lot of entries in the kea-dhcp*.conf.
>
> It would be great dns names could be handed out for a pool in kea-dhcp*.conf
> for a host that doesn't have an identifier. Or an Asterix identifier.
>
> Regards,
>
> Joop.
>
> On Tuesday, January 6, 2026 9:35:04 AM Central European Standard Time Peter
> Davies wrote:
>> Hi Joop,
>>       A host reservation should have an identifier. If you do not use the
>> "hw-address,"
>> what identifier do you use?
>>
>> You may wish to use the following, which appends the IP address to the
>> hostname:
>>                   "hostname-expr" :
>> "concat('vm-test-',addrtotext(option[50].hex))" } }
>>
>> /Peter
>>
>> On 05/01/2026 16.59, Joop Boonen wrote:
>>> Dear all,
>>>
>>> I'm using the option like this.
>>> "Dhcp4": {
>>>
>>>       "hooks-libraries": [
>>>       
>>>           {
>>>           
>>>               "library": "libdhcp_ddns_tuning.so",
>>>               "parameters": {
>>>               
>>>                   "hostname-expr" : "concat('vm-
>>>
>>> test-',hexstring(option[50].hex,''))"
>>>
>>>               }
>>>           
>>>           },
>>>
>>> I notice when I don't have an hw-address entry
>>>
>>>                   {
>>>                   
>>>                       "hw-address": "<hw-addres>",
>>>                       "ip-address": "<ip-address",
>>>                       "hostname": "<hostname>"
>>>                   
>>>                   },
>>>
>>> The ddns entries doesn't get Updated.
>>> For some reason it looks like hostname-expr needs an assigned hostname.
>>>
>>> Does someone know how this can be solved.
>>>
>>> Regards,
>>>
>>> Joop Boonen.

-- 
Peter Davies
Support Engineer
Internet Systems Corporation



More information about the Kea-users mailing list