<html><head></head><body><div class="ydp2f12379dyahoo-style-wrap" style="font-family:lucida console, sans-serif;font-size:16px;"><div id="ydp2f12379dyiv7288607989"><div><div style="font-family:lucida console, sans-serif;font-size:16px;" class="ydp2f12379dyiv7288607989yahoo-style-wrap" dir="ltr" data-setdir="false"><div dir="ltr" data-setdir="false">Hello,</div><div dir="ltr" data-setdir="false">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.</div></div><div style="font-family:lucida console, sans-serif;font-size:16px;" class="ydp2f12379dyiv7288607989yahoo-style-wrap" dir="ltr" data-setdir="false"><br></div><div style="font-family:lucida console, sans-serif;font-size:16px;" class="ydp2f12379dyiv7288607989yahoo-style-wrap" dir="ltr" data-setdir="false">I am using these sites as reference for pxe boot config but it doesn't seem to be working.</div><div style="font-family:lucida console, sans-serif;font-size:16px;" class="ydp2f12379dyiv7288607989yahoo-style-wrap" dir="ltr" data-setdir="false"><br></div><div style="font-family:lucida console, sans-serif;font-size:16px;" class="ydp2f12379dyiv7288607989yahoo-style-wrap" dir="ltr" data-setdir="false"><div>https://www.growse.com/2018/08/29/pxe-booting-a-raspberry-pi.html<br>https://forum.ipxe.org/showthread.php?tid=7986<br>https://superuser.com/questions/1805388/pxe-boot-esxi-8-on-intel-nuc-12<br>https://lists.isc.org/pipermail/kea-users/2022-February/003353.html</div><br><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">Here is what I have configured in the current isc-dhcpd setup for pxe boot.</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><div> allow booting;<br> allow bootp;<br> always-broadcast on;<br># class "vmware" { match if binary-to-ascii(16,8,":",substring(hardware, 1, 2)) = "00:29:1b"; }<br> 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"; }}<br> if exists user-class and option user-class = "iPXE" {<br> filename "http://10.1.2.3/cblr/svc/op/gpxe/system/[system]" ;<br> } elsif option arch != 00:00 {<br> filename "gpxe/snponly.efi" ;<br> } else {<br> filename "gpxe/undionly.kpxe" ;<br> }<br>}</div><div><br></div><div dir="ltr" data-setdir="false">Here is what I put in my kea-dhcpd4.conf</div> <div>{<br> "Dhcp4": {<br> "client-classes": [<br> {<br> "name": "XClient_iPXE",<br> "test": "substring(option[77].hex,0,4) == 'iPXE'",<br> "boot-file-name": "http://<ServerIP>:<ServerPort>/<path>/<PHPfile>"<br> },<br> {<br> "name": "UEFI-32-1",<br> "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00006'",<br> "boot-file-name": "ipxe/i386/ipxe.efi"<br> },<br> {<br> "name": "UEFI-32-2",<br> "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00002'",<br> "boot-file-name": "ipxe/i386/ipxe.efi"<br> },<br> {<br> "name": "UEFI-64-1",<br> "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00007'",<br> "boot-file-name": "ipxe/x86_64/ipxe.efi"<br> },<br> {<br> "name": "UEFI-64-2",<br> "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00008'",<br> "boot-file-name": "ipxe/x86_64/ipxe.efi"<br> },<br> {<br> "name": "UEFI-64-3",<br> "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00009'",<br> "boot-file-name": "ipxe/x86_64/ipxe.efi"<br> },<br> {<br> "name": "Legacy",<br> "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00000'",<br> "boot-file-name": "ipxe/undionly.kpxe"<br> }<br> ],<br> "interfaces-config": { "interfaces": [] },<br> "control-socket": {<br> "socket-type": "unix",<br> "socket-name": "/run/kea/kea4-ctrl-socket"<br> },<br> "lease-database": {<br> "type": "memfile",<br> "lfc-interval": 3600,<br> "name": "/var/lib/kea/kea-leases4.csv"<br> },<br> "expired-leases-processing": {<br> "reclaim-timer-wait-time": 10,<br> "flush-reclaimed-timer-wait-time": 25,<br> "hold-reclaimed-time": 3600,<br> "max-reclaim-leases": 100,<br> "max-reclaim-time": 250,<br> "unwarned-reclaim-cycles": 5<br> },<br> "valid-lifetime": 600,<br> "max-valid-lifetime": 7200,<br> "subnet4": [<br> {<br> "id": 1,<br> "subnet": "10.150.1.0/24",<br> "next-server": "10.150.10.17",<br> "boot-file-name": "/pxeboot/pxelinux.0",<br> "pools": [ { "pool": "10.150.1.100 - 10.150.1.200" } ],<br> "option-data": [<br> {<br> "name": "routers",<br> "data": "10.150.1.2"<br> },<br> {<br> "name": "domain-name-servers",<br> "data": "10.150.10.20, 10.150.20.10, 1.1.1.1"<br> },<br> {<br> "name": "domain-name",<br> "code": 15,<br> "data": "example.net"<br> },<br> { <br> "name": "domain-search",<br> "data": "example.net, example.co"<br> }<br> ],<br> "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" } ] } ] <br> },<br> {<br> "id": 2,<br> "subnet": "10.150.10.0/23",<br> "next-server": "10.150.10.17",<br> "boot-file-name": "/home/nfs/export/pxelinux.0",<br> "pools": [ { "pool": "10.150.10.100 - 10.150.11.200" } ],<br> "option-data": [<br> {<br> "name": "routers",<br> "data": "10.150.10.1"<br> },<br> {<br> "name": "domain-name-servers",<br> "data": "10.150.10.20, 10.150.20.10, 1.1.1.1"<br> },<br> {<br> "name": "domain-name",<br> "code": 15,<br> "data": "example.net"<br> },<br> {<br> "name": "domain-search",<br> "data": "example.net, example.co"<br> }<br> ],<br> "reservations": [<br> {<br> "hw-address": "1a:1b:1c:1d:1e:1f",<br> "ip-address": "10.150.10.180",<br> "option-data": [<br> {<br> "name": "domain-name-servers",<br> "data": "10.150.10.20, 1.1.1.1"<br> }<br> ]<br> }<br> ]<br> },<br> {<br> "id": 3,<br> "subnet": "10.150.100.0/24",<br> "pools": [ { "pool": "10.150.100.10 - 10.150.100.250" } ],<br> "option-data": [<br> {<br> "name": "routers",<br> "data": "10.150.100.1"<br> },<br> {<br> "name": "domain-name-servers",<br> "data": "10.150.10.20, 10.150.20.10, 1.1.1.1"<br> },<br> {<br> "name": "domain-name",<br> "code": 15,<br> "data": "example.net"<br> },<br> {<br> "name": "domain-search",<br> "data": "example.net, example.co"<br> }<br> ],<br> "reservations": [<br> {<br> "hw-address": "1a:1b:1c:1d:1e:1f",<br> "ip-address": "10.150.100.180",<br> "option-data": [<br> {<br> "name": "domain-name-servers",<br> "data": "10.150.10.20, 1.1.1.1"<br> }<br> ]<br> }<br> ]<br> },<br> {<br> "id": 4,<br> "subnet": "10.150.20.0/24",<br> "next-server": "10.150.10.17",<br> "boot-file-name": "/home/nfs/export/pxelinux.0",<br> "pools": [ { "pool": "10.150.20.100 - 10.150.20.200" } ],<br> "option-data": [<br> {<br> "name": "routers",<br> "data": "10.150.20.1"<br> },<br> {<br> "name": "domain-name-servers",<br> "data": "10.150.10.20, 10.150.20.10, 1.1.1.1"<br> },<br> {<br> "name": "domain-name",<br> "code": 15,<br> "data": "example.net"<br> },<br> {<br> "name": "domain-search",<br> "data": "example.net, example.co"<br> }<br> ],<br> "reservations": [<br> {<br> "hw-address": "1a:1b:1c:1d:1e:1f",<br> "ip-address": "10.150.20.180",<br> "option-data": [<br> {<br> "name": "domain-name-servers",<br> "data": "10.150.10.20, 1.1.1.1"<br> }<br> ]<br> }<br> ]<br> }<br> ],<br> "loggers": [<br> {<br> "name": "kea-dhcp4",<br> "output_options": [<br> {<br> "output": "/tmp/kea-dhcp4.log",<br> "maxsize": 1048576,<br> "maxver": 8<br> }<br> ],<br> "severity": "INFO"<br> },<br> {<br> "name": "kea-dhcp4.packets",<br> "output_options": [<br> {<br> "output": "/tmp/kea-dhcp4-packets.log",<br> "maxver": 10<br> }<br> ],<br> "severity": "DEBUG",<br> "debuglevel": 99<br> }<br> ]<br> }<br>}<br><br></div><br><div><br></div><div dir="ltr" data-setdir="false">Thanks in advance!<br></div><br></div></div></div></div></div></body></html>