Hi, Are you noticing any logged errors or are the clients just not receiving the pxe boot file? Can you look for the log messages that pertain to testing for matches to each class? It might be best to work with one type of client at a time to get things working correctly for that client. Lessons learned will apply to the other clients.
Thank you, Darren Ankney On Mon, Apr 1, 2024 at 1:17 PM Andrew Meyer via Kea-users <kea-users@lists.isc.org> wrote: > > Hello, > I'm in the process of switching my ISC-DHCPd server running on RaspberrryPi > and CentOS/RHEL to KEA. However i'm having trouble with getting PXE boot > configured with this. I am using vmwarre / Proxmox for virtual machines and > cobbler to do installations. > > I am using these sites as reference for pxe boot config but it doesn't seem > to be working. > > https://www.growse.com/2018/08/29/pxe-booting-a-raspberry-pi.html > https://forum.ipxe.org/showthread.php?tid=7986 > https://superuser.com/questions/1805388/pxe-boot-esxi-8-on-intel-nuc-12 > https://lists.isc.org/pipermail/kea-users/2022-February/003353.html > > > Here is what I have configured in the current isc-dhcpd setup for pxe boot. > > allow booting; > allow bootp; > always-broadcast on; > # class "vmware" { match if binary-to-ascii(16,8,":",substring(hardware, 1, > 2)) = "00:29:1b"; } > class "pxeclients" { match if substring (option vendor-class-identifier, 0, > 9) = "PXEClient"; next-server 10.1.2.3; if option arch = 00:06 { filename > "grub/grub-x86.efi"; } else if option arch = 00:07 { filename > "grub/grub-x86_64.efi"; } else if option arch = 00:09 { filename > "grub/grub-x86_64.efi"; } else { filename "pxelinux.0"; }} > if exists user-class and option user-class = "iPXE" { > filename "http://10.1.2.3/cblr/svc/op/gpxe/system/[system]" ; > } elsif option arch != 00:00 { > filename "gpxe/snponly.efi" ; > } else { > filename "gpxe/undionly.kpxe" ; > } > } > > Here is what I put in my kea-dhcpd4.conf > { > "Dhcp4": { > "client-classes": [ > { > "name": "XClient_iPXE", > "test": "substring(option[77].hex,0,4) == 'iPXE'", > "boot-file-name": > "http://<ServerIP>:<ServerPort>/<path>/<PHPfile>" > }, > { > "name": "UEFI-32-1", > "test": "substring(option[60].hex,0,20) == > 'PXEClient:Arch:00006'", > "boot-file-name": "ipxe/i386/ipxe.efi" > }, > { > "name": "UEFI-32-2", > "test": "substring(option[60].hex,0,20) == > 'PXEClient:Arch:00002'", > "boot-file-name": "ipxe/i386/ipxe.efi" > }, > { > "name": "UEFI-64-1", > "test": "substring(option[60].hex,0,20) == > 'PXEClient:Arch:00007'", > "boot-file-name": "ipxe/x86_64/ipxe.efi" > }, > { > "name": "UEFI-64-2", > "test": "substring(option[60].hex,0,20) == > 'PXEClient:Arch:00008'", > "boot-file-name": "ipxe/x86_64/ipxe.efi" > }, > { > "name": "UEFI-64-3", > "test": "substring(option[60].hex,0,20) == > 'PXEClient:Arch:00009'", > "boot-file-name": "ipxe/x86_64/ipxe.efi" > }, > { > "name": "Legacy", > "test": "substring(option[60].hex,0,20) == > 'PXEClient:Arch:00000'", > "boot-file-name": "ipxe/undionly.kpxe" > } > ], > "interfaces-config": { "interfaces": [] }, > "control-socket": { > "socket-type": "unix", > "socket-name": "/run/kea/kea4-ctrl-socket" > }, > "lease-database": { > "type": "memfile", > "lfc-interval": 3600, > "name": "/var/lib/kea/kea-leases4.csv" > }, > "expired-leases-processing": { > "reclaim-timer-wait-time": 10, > "flush-reclaimed-timer-wait-time": 25, > "hold-reclaimed-time": 3600, > "max-reclaim-leases": 100, > "max-reclaim-time": 250, > "unwarned-reclaim-cycles": 5 > }, > "valid-lifetime": 600, > "max-valid-lifetime": 7200, > "subnet4": [ > { > "id": 1, > "subnet": "10.150.1.0/24", > "next-server": "10.150.10.17", > "boot-file-name": "/pxeboot/pxelinux.0", > "pools": [ { "pool": "10.150.1.100 - 10.150.1.200" } ], > "option-data": [ > { > "name": "routers", > "data": "10.150.1.2" > }, > { > "name": "domain-name-servers", > "data": "10.150.10.20, 10.150.20.10, 1.1.1.1" > }, > { > "name": "domain-name", > "code": 15, > "data": "example.net" > }, > { > "name": "domain-search", > "data": "example.net, example.co" > } > ], > "reservations": [ { "hw-address": "1a:1b:1c:1d:1e:1f", "ip-address": > "10.150.1.180", "option-data": [ { "name": "domain-name-servers", "data": > "10.150.10.20, 1.1.1.1" } ] } ] > }, > { > "id": 2, > "subnet": "10.150.10.0/23", > "next-server": "10.150.10.17", > "boot-file-name": "/home/nfs/export/pxelinux.0", > "pools": [ { "pool": "10.150.10.100 - 10.150.11.200" } ], > "option-data": [ > { > "name": "routers", > "data": "10.150.10.1" > }, > { > "name": "domain-name-servers", > "data": "10.150.10.20, 10.150.20.10, 1.1.1.1" > }, > { > "name": "domain-name", > "code": 15, > "data": "example.net" > }, > { > "name": "domain-search", > "data": "example.net, example.co" > } > ], > "reservations": [ > { > "hw-address": "1a:1b:1c:1d:1e:1f", > "ip-address": "10.150.10.180", > "option-data": [ > { > "name": "domain-name-servers", > "data": "10.150.10.20, 1.1.1.1" > } > ] > } > ] > }, > { > "id": 3, > "subnet": "10.150.100.0/24", > "pools": [ { "pool": "10.150.100.10 - 10.150.100.250" } ], > "option-data": [ > { > "name": "routers", > "data": "10.150.100.1" > }, > { > "name": "domain-name-servers", > "data": "10.150.10.20, 10.150.20.10, 1.1.1.1" > }, > { > "name": "domain-name", > "code": 15, > "data": "example.net" > }, > { > "name": "domain-search", > "data": "example.net, example.co" > } > ], > "reservations": [ > { > "hw-address": "1a:1b:1c:1d:1e:1f", > "ip-address": "10.150.100.180", > "option-data": [ > { > "name": "domain-name-servers", > "data": "10.150.10.20, 1.1.1.1" > } > ] > } > ] > }, > { > "id": 4, > "subnet": "10.150.20.0/24", > "next-server": "10.150.10.17", > "boot-file-name": "/home/nfs/export/pxelinux.0", > "pools": [ { "pool": "10.150.20.100 - 10.150.20.200" } ], > "option-data": [ > { > "name": "routers", > "data": "10.150.20.1" > }, > { > "name": "domain-name-servers", > "data": "10.150.10.20, 10.150.20.10, 1.1.1.1" > }, > { > "name": "domain-name", > "code": 15, > "data": "example.net" > }, > { > "name": "domain-search", > "data": "example.net, example.co" > } > ], > "reservations": [ > { > "hw-address": "1a:1b:1c:1d:1e:1f", > "ip-address": "10.150.20.180", > "option-data": [ > { > "name": "domain-name-servers", > "data": "10.150.10.20, 1.1.1.1" > } > ] > } > ] > } > ], > "loggers": [ > { > "name": "kea-dhcp4", > "output_options": [ > { > "output": "/tmp/kea-dhcp4.log", > "maxsize": 1048576, > "maxver": 8 > } > ], > "severity": "INFO" > }, > { > "name": "kea-dhcp4.packets", > "output_options": [ > { > "output": "/tmp/kea-dhcp4-packets.log", > "maxver": 10 > } > ], > "severity": "DEBUG", > "debuglevel": 99 > } > ] > } > } > > > > Thanks in advance! > > -- > 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