Hi John,

Good to hear things are working.

> Note - you cannot have both the client-id and the "hw-address" in the same 
> reservation.  The documentation claims that these are hierarchical with 
> client-id above "chaddr" (which I assume to be the "hw-address" in this 
> context) but if you can't have both of them, that's not much use.

The hierarchical nature of these is for performance.
"host-reservation-identifiers" allows you to tune which and in what
order the possible identifiers (hw-address, duid, client-id,
circuit-id) are checked (and if they are checked at all).  You would
remove the ones from the list that will never identify a reservation
in your environment.  You would put the one first that is most likely
to identify a reservation.  This does not allow you to have multiple
identifiers in the same reservation.  You can have multiple
reservations for the same IP address, however (see here:
https://kea.readthedocs.io/en/kea-2.6.1/arm/dhcp4-srv.html#multiple-reservations-for-the-same-ip),
which would let you achieve what you are trying to achieve I think.

Thank you,
Darren Ankney

On Thu, Feb 13, 2025 at 5:51 PM John Lind <steinhel...@gmail.com> wrote:
>
> Ok.  I'm up and running on kea-dhcp4, but it wasn't painless.  My 
> reservations by hw-address all worked, but that's all.
>
> 1) it seems to have paid no attention to the leases I tried to import.  It 
> started over assigning the first address from the pool.  If I had remembered 
> to shorten the timeout/refresh before hand, that would have made things a bit 
> less painful and confusing.  Immediately upon starting it logged "2025-02-13 
> 15:30:15.717 WARN  [kea-dhcp4.dhcpsrv/35513.0x3f7aad812000] 
> DHCPSRV_MEMFILE_CONVERTING_LEASE_FILES running LFC now to convert lease files 
> to the current schema: 3.0" and it didn't complain, but it doesn't appear to 
> have paid any attention to them, either.  Every pool lease I have looked at 
> has changed.
> 2) The client-id format of "'casper'" didn't match.  I thought I had tried 
> another host with only the double quotes and not the single quotes, but I 
> guess I didn't.  I'm not sure how much I want to keep playing with that, or 
> just bite the bullet and use all hw-addr.  Note - you cannot have both the 
> client-id and the "hw-address" in the same reservation.  The documentation 
> claims that these are hierarchical with client-id above "chaddr" (which I 
> assume to be the "hw-address" in this context) but if you can't have both of 
> them, that's not much use.
>
> On Sun, Feb 9, 2025 at 4:47 PM John Lind <steinhel...@gmail.com> wrote:
>>
>> Oops.  First let me apologize for an extra layer of complexity and 
>> confusion.  I started out with the entries for the system "twister" because 
>> it wasn't currently available and I didn't have to worry about corrupting 
>> its entries.  Then when I got to the point that I wanted to be able to try 
>> stuff out, I switched to "bringebaer".  There are no entries that need to 
>> mix these two strings - they should all be one or the other.
>>
>> So - I tried this out:
>>     "reservations-global": true,
>>     "reservations": [
>>       {
>>         "hostname": "bringebaer",
>>         "ip-address": "192.168.1.57",
>>         "client-id": "'bringebaer'"
>>       }
>>     ]
>>
>> So - then I did the syntax check:
>>
>> root@remo:/home/john/xfer # !kea
>> kea-dhcp4 -t kea-head.conf
>> 2025-02-09 16:39:51.055 INFO  [kea-dhcp4.hosts/3198.0x2cae30212000] 
>> HOSTS_BACKENDS_REGISTERED the following host backend types are available:
>> 2025-02-09 16:39:51.088 WARN  [kea-dhcp4.dhcpsrv/3198.0x2cae30212000] 
>> DHCPSRV_MT_DISABLED_QUEUE_CONTROL disabling dhcp queue control when 
>> multi-threading is enabled.
>> 2025-02-09 16:39:51.088 WARN  [kea-dhcp4.dhcp4/3198.0x2cae30212000] 
>> DHCP4_RESERVATIONS_LOOKUP_FIRST_ENABLED Multi-threading is enabled and host 
>> reservations lookup is always performed first.
>> 2025-02-09 16:39:51.101 INFO  [kea-dhcp4.dhcpsrv/3198.0x2cae30212000] 
>> DHCPSRV_CFGMGR_NEW_SUBNET4 a new subnet has been added to configuration: 
>> 192.168.1.0/24 with params: valid-lifetime=2592000
>> 2025-02-09 16:39:51.125 INFO  [kea-dhcp4.dhcpsrv/3198.0x2cae30212000] 
>> DHCPSRV_CFGMGR_SOCKET_TYPE_SELECT using socket type raw
>> 2025-02-09 16:39:51.127 INFO  [kea-dhcp4.dhcpsrv/3198.0x2cae30212000] 
>> DHCPSRV_CFGMGR_ADD_IFACE listening on interface ue0
>> 2025-02-09 16:39:51.128 INFO  [kea-dhcp4.dhcpsrv/3198.0x2cae30212000] 
>> DHCPSRV_CFGMGR_SOCKET_TYPE_DEFAULT "dhcp-socket-type" not specified , using 
>> default socket type raw
>>
>> No errors!  Tomorrow I'll have to munge all the entries and try it out.
>>
>> Thank you!
>>
>> On Sun, Feb 9, 2025 at 4:38 AM Darren Ankney <darren.ank...@gmail.com> wrote:
>>>
>>> Hi John,
>>>
>>> That is really interesting that this:
>>>
>>> host bringebaer { fixed-address bringebaer.starfire.mn.org;
>>>         option dhcp-client-identifier "bringebaer";
>>>  }
>>>
>>> somehow matches the client-identifier
>>> (https://www.rfc-editor.org/rfc/rfc2132#section-9.14).  ISC DHCP man
>>> page does say that you can match the dhcp-client-identifier option in
>>> a host object: 
>>> https://kb.isc.org/docs/isc-dhcp-44-manual-pages-dhcpd#the-host-object
>>> Kea can too 
>>> (https://kea.readthedocs.io/en/kea-2.6.1/arm/dhcp4-srv.html#fine-tuning-dhcpv4-host-reservation):
>>>
>>> "Kea currently supports four types of identifiers: hw-address, duid,
>>> client-id, and circuit-id."
>>>
>>> Perhaps this:
>>>
>>>     {
>>>         "hostname": "bringebaer",
>>>         "ip-address": "192.168.1.57",
>>>         "client-id": "'twister'"
>>>       },
>>>
>>> (note the single quotes around twister inside the double quotes) but
>>> you might want to perform a packet capture to confirm that your client
>>> actually has a hostname in the client-id field.  I've not seen that
>>> previously.  Option 61 normally isn't present at all or contains the
>>> mac address.  But if this was working in ISC DHCP perhaps these are
>>> some devices I've not paid attention to before.
>>>
>>> Thank you,
>>> Darren Ankney
>>>
>>> On Sat, Feb 8, 2025 at 3:34 PM John Lind <steinhel...@gmail.com> wrote:
>>> >
>>> > I apologize - there's a typo in the subject line.  It should be 
>>> > dhcp-client-identifier (with an "r" at the end, not a "d').
>>> >
>>> > Anyway, I tried running "kea-dhcp4 -t" on one of these files and got this 
>>> > back:
>>> > 2025-02-08 14:18:27.503 ERROR [kea-dhcp4.dhcp4/94820.0x50554e412000] 
>>> > DHCP4_PARSER_FAIL failed to create or run parser for configuration 
>>> > element reservations: one of the supported identifiers must be specified 
>>> > for host reservation: circuit-id, client-id, duid, flex-id, hw-address 
>>> > (kea-head.conf:135:7)
>>> > Error encountered: one of the supported identifiers must be specified for 
>>> > host reservation: circuit-id, client-id, duid, flex-id, hw-address 
>>> > (kea-head.conf:135:7)
>>> > So - I don't see anything in that list that would correspond to what I've 
>>> > been doing with ISC-dhcp. I tried making up the syntax for client ID, and 
>>> > it didn't like that, either...
>>> >       {
>>> >         "hostname": "bringebaer",
>>> >         "ip-address": "192.168.1.57",
>>> >         "client-id": "twister"
>>> >       },
>>> > And the parser said:
>>> >
>>> > 2025-02-08 14:32:29.031 ERROR [kea-dhcp4.dhcp4/94837.0x5775ffa12000] 
>>> > DHCP4_PARSER_FAIL failed to create or run parser for configuration 
>>> > element reservations: invalid host identifier value 'twister' 
>>> > (kea-head.conf:135:7)
>>> > Error encountered: invalid host identifier value 'twister' 
>>> > (kea-head.conf:135:7)
>>> >
>>> >
>>> > On Sat, Feb 8, 2025 at 12:50 PM John Lind <steinhel...@gmail.com> wrote:
>>> >>
>>> >> Hey, all.  I've spent hours watching recorded webinars, reading 
>>> >> documentation, and doing web searches in vain to try to figure out how 
>>> >> to get these reservations to work in kea.
>>> >>
>>> >> For some of my devices / systems I like to use a value sent by the 
>>> >> client rather than the hardware address to match them to a reservation.  
>>> >> This is especially useful in two cases
>>> >> 1) when I don't know the MAC address
>>> >> 2) when a device has different ways of connecting to my network (WiFi 
>>> >> versus hardwired, and maybe different ethernet ports) but I want it to 
>>> >> get the same IP address regardless of how it connects.
>>> >>
>>> >> For reference, here's how the values appear in the ISC dhcp leases file 
>>> >> when there's not a reservation (yet).
>>> >>
>>> >>         client-hostname "MyQ-5C9";
>>> >>         client-hostname "casper";
>>> >>         client-hostname "StreamingStick4K-ET5";
>>> >>         client-hostname "Pixel-6a";
>>> >>         client-hostname "Paige-s-S23-Ultra";
>>> >>         client-hostname "Milea-s-S20-FE";
>>> >>         client-hostname "DESKTOP-7424SLE";
>>> >>         client-hostname "Pixel-8-Pro";
>>> >>         client-hostname "Pixel-7a";
>>> >>
>>> >> Here's an example of how I represent that in the dhcpd.conf file:
>>> >>  host bringebaer { fixed-address bringebaer.starfire.mn.org;
>>> >>         option dhcp-client-identifier "bringebaer";
>>> >>         }
>>> >> So, of course, keama is going to translate the FQDN to an IP address, 
>>> >> but the rest of what it does doesn't seem like what I want:
>>> >>
>>> >>       {
>>> >>         "hostname": "bringebaer",
>>> >>         "ip-address": "192.168.1.57",
>>> >>         "option-data": [
>>> >>           {
>>> >>             "space": "dhcp4",
>>> >>             "name": "dhcp-client-identifier",
>>> >>             "code": 61,
>>> >> //          "original-data": "\"bringebaer\"",
>>> >>             "csv-format": false,
>>> >>             "data": "6272696e676562616572"
>>> >>           }
>>> >>         ]
>>> >>       },
>>> >> Note - the "data" in the option is actually a string of hex digits which 
>>> >> truly does spell out "bringebaer" but I really think that keama is 
>>> >> mapping dhcp-client-identifier to completely the wrong thing.
>>> >>
>>> >> If anyone can set me on the right course, I sure would appreciate it.
>>> >>
>>> >> --
>>> >> John Lind
>>> >> steinhel...@gmail.com
>>> >>
>>> > --
>>> > 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@lists.isc.org
>>> > https://lists.isc.org/mailman/listinfo/kea-users
>>> --
>>> 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@lists.isc.org
>>> https://lists.isc.org/mailman/listinfo/kea-users
>
> --
> 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@lists.isc.org
> https://lists.isc.org/mailman/listinfo/kea-users
-- 
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@lists.isc.org
https://lists.isc.org/mailman/listinfo/kea-users

Reply via email to