<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>