kea-dhcp4 behaviour question client-class vs reservations

Jan-Philipp Snizek <[email protected]> Fri, 26 Apr 2024 09:05:22 +0000
Newsgroups gmane.network.dhcp.isc.dhcp-server
Message-ID <ZRAP278MB075697C005F7099072BF79A282162@ZRAP278MB0756.CHEP278.PROD.OUTLOOK.COM>
Hi

I would like to ask a question regarding precedence behavior of kea-dhcp4.

Let's take this working config:

    "client-classes": [
       {
            "name": "pxeclientx64",
            "test": "option[60].text == 'PXEClient:Arch:00007:UNDI:003016'",
            "option-data": [
                { "name": "vendor-encapsulated-options", "always-send": false },
                { "name": "boot-file-name", "data": "SMSBoot\\x64\\wdsmgfw.efi" },
                { "name": "tftp-server-name", "code": 66, "data": "my-tftp-server.domain.local" }
           ]
       }
    ],
    "subnet4": [
        {
            "id": 1,
            "subnet": "172.20.19.0/24",
            "next-server": "172.20.19.1",
            "pools": [
                        { "pool": "172.20.19.120 - 172.20.19.129" },
                        { "pool": "172.20.19.130 - 172.20.19.139", "client-class": "pxeclientx64" }
                 ],
            "reservation-mode": "out-of-pool",
            "reservations": [
                { "hostname": "pxeboot1", "hw-address": "00:e0:4c:68:0a:f1", "ip-address": "172.20.19.150" }
            ],
            "option-data": [
                { "name": "routers", "data": "172.20.19.1" }
            ]
        }
    ],

If the client with the reservation executes a PXE boot it gets the reserved IP .19.150 and successfully boots PXE.
The kea-dhcp4 log looks like this:
Apr 25 13:53:17 hellbox kea-dhcp4[16858]: INFO  EVAL_RESULT Expression pxeclientx64 evaluated to 1
Apr 25 13:53:17 hellbox kea-dhcp4[16858]: INFO  DHCP4_LEASE_ADVERT [hwtype=1 00:e0:4c:68:0a:c1], cid=[no info], tid=0x2223e0e3: lease 172.20.19.150 will be advertised
Apr 25 13:53:20 hellbox kea-dhcp4[16858]: INFO  EVAL_RESULT Expression pxeclientx64 evaluated to 1
Apr 25 13:53:20 hellbox kea-dhcp4[16858]: INFO  DHCP4_LEASE_ALLOC [hwtype=1 00:e0:4c:68:0a:c1], cid=[no info], tid=0x2223e0e3: lease 172.20.19.150 has been allocated for 3600 seconds
As we can see both matches: pxeclientx64 and the reservation. The client successfully boots pxe.
I don't understand why the client successfully pxe boots. The client-class "pxeclientx64" is assigned to a pool. It is neither assigned to the subnet4 { id: 1 } subnet declaration nor to the reservation.  
What has precedence over what? How does inheritance work in kea?

Thanks,

--

  Philipp

-- 
ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information.

dhcp-users mailing list
[email protected]
https://lists.isc.org/mailman/listinfo/dhcp-users