[Kea-users] Adding pxe with uefi

Yordanov, Damyan damyan.yordanov at sap.com
Thu Feb 16 14:22:25 UTC 2023


Hi!

One specific thing that has me confused in all this is I keep seeing references to a boot-file-name setting with various different *.efi files, but can't find any of those files anywhere.  There doesn't seem to be an rpm that will install them in rocky linux 8.x, 9.x or CentOS 7.
Well, those efi files are coming from iPXE (https://ipxe.org/). You can download the binaries (http://boot.ipxe.org) or bake them according to your needs (https://ipxe.org/download#uefi).

All the configuration examples about the chain loading (https://ipxe.org/howto/chainloading) are for the ISC DHCP server, so here is a snippet about chain loading + breaking the loop (we must support both BIOS and UEFI clients) for Kea:

[…]
    "client-classes":
    [
      { "name": "XClient_iPXE", "test": "substring(option[77].hex,0,4) == 'iPXE'", "boot-file-name": "http://192.168.10.4/ipxe/boot.ipxe" },
      { "name": "UEFI-32-2",    "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00002'", "boot-file-name": "ipxe/i386/ipxe.efi",   "next-server": "192.168.10.4" },
      { "name": "UEFI-32-6",    "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00006'", "boot-file-name": "ipxe/i386/ipxe.efi",   "next-server": "192.168.10.4" },
      { "name": "UEFI-64-7",    "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00007'", "boot-file-name": "ipxe/x86_64/ipxe.efi", "next-server": "192.168.10.4" },
      { "name": "UEFI-64-8",    "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00008'", "boot-file-name": "ipxe/x86_64/ipxe.efi", "next-server": "192.168.10.4" },
      { "name": "UEFI-64-9",    "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00009'", "boot-file-name": "ipxe/x86_64/ipxe.efi", "next-server": "192.168.10.4" },
      { "name": "Legacy",       "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00000'", "boot-file-name": "ipxe/undionly.kipxe",  "next-server": "192.168.10.4" }
    ],
[…]

You will obviously need an HTTP server, serving the ipxe script (e.g. http://boot.ipxe.org/demo/), as well as TFTP server (e.g. tftpd-hpa) serving the efi’s. In the example above both services run on the very same machine.
If IPv6 is a topic for you, you might want to take a look into the Kea DHCPv6 iPXE configuration, https://github.com/isc-projects/kea/blob/master/doc/examples/kea6/iPXE.json.


Hope this helps.

Best,
   Damyan


Damyan Yordanov

BTP Core FP R&C Gardener (SE)

SAP SE, Dietmar-Hopp-Allee 16, 69190 Walldorf, Germany

T +49 6227 7-65764, M +49 160 90 842 652, damyan.yordanov at sap.com<mailto:damyan.yordanov at sap.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/kea-users/attachments/20230216/775c7224/attachment-0001.htm>


More information about the Kea-users mailing list