[Kea-users] Flex Options for BOOTP FNAME
Marcin Jurczuk
spock at omegastar.eu
Tue Dec 9 19:12:21 UTC 2025
You can make global reservations:
https://kea.readthedocs.io/en/stable/arm/hooks.html#std-isccmd-reservation-add
Quote:
"The subnet-id is mandatory. Use a value of zero (0) to add a global
reservation, or the ID of the subnet to which the reservation should be
added."
It is important to enable global reservations in config:
This is what works for me:
"reservations-global": true,
"reservations-in-subnet": true,
If I'm not mistaken "reservations-global" is disabled by default:
https://kea.readthedocs.io/en/stable/arm/dhcp4-srv.html#global-reservations-in-dhcpv4
Either you add record to host table manually (remembering how mac is
encoded in db) or with libdhcp_host_cmds.so just call API:
{ "command": "reservation-add", "arguments": {
"reservation": { "subnet-id": 0, "hw-address":
"1a:1b:1c:1d:1e:1f",
"boot-file-name": "modemcfg.bin" } }}
Regards,
Marcin
wt., 9 gru 2025 o 18:49 Skyler Blumer <skyler.blumer at zitomedia.com>
napisał(a):
> Are you saying that you're making static host reservations in a DB, and
> are they global reservations? From what I'm seeing you can only make
> reservations at the subnet level in 3.0.
> On 12/8/25 1:55 PM, Marcin Jurczuk wrote:
>
> Hi,
> Please look into historical thread past month from myself. Been there done
> that. I’ve tried for exactly the same reason for cable modem provisioning.
> As of today flex option only sets “real” dhcp options and can’t set field
> in dhcp header.
> I’ve end up with cross db syncing by adding records to hosts table with db
> host backend. This table has column named dhcp4_boot_filename which is
> exactly that field. Modems work with that.
>
> Regards
>
> On Mon, Dec 8, 2025 at 19:50 Skyler Blumer <skyler.blumer at zitomedia.com>
> wrote:
>
>> I'm Currently testing with kea 3.0. My end goal is to dynamically set
>> the boot-file-name (legacy BOOTP FNAME field not DHCP option 67) to the
>> CHADDR sent in the request.
>>
>> Using the below it will set option 67 to cm/<CHADDR>.bin
>>
>> { "library": "libdhcp_flex_option.so",
>>
>> "parameters": {
>> "options": [
>> {
>> "name": "boot-file-name",
>> "supersede": "lcase(concat('cm/',
>> concat(relay4[2].hex, '.bin')))",
>> "csv-format": false,
>> "client-class": "docsis"
>> }
>>
>> However when I try to do this in a subnet or class the FNAME is set to a
>> string literal "'cm/', concat(relay4[2].hex, '.bin'"
>>
>> "boot-file-name": "lcase(concat('cm/', concat(relay4[2].hex, '.bin')))"
>>
>> Is there a way to do this for the legacy FNAME field?
>>
>> --
>> 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 at lists.isc.org
>> <https://lists.isc.org/mailman/listinfo/kea-users.Kea-users@lists.isc.org>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/kea-users/attachments/20251209/c3517950/attachment-0001.htm>
More information about the Kea-users
mailing list