I've been setting up a PXE Server to automate Linux deployments. Everything was working fun until something magically broke (i.e. I must have changed something, but cannot for the life of me figure out what it was).
snippet of dhcpd.conf (some information removed for privacy)
subnet 10.0.65.0 netmask 255.255.255.0 {
option routers ///;
option broadcast-address ///;
option subnet-mask 255.255.255.0;
range ///;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 10.160.65.5;
if option architecture-type = 00:07 {
filename "pxe/shim.efi";
} else {
filename "pxe/pxelinux.0";
}
}
}
The pxe server (which is a different server than the DHCP server) is running RedHat 7. I turned on verbose logging for the xinetd tftp daemon. It shows that the client requests pxelinux.0 (and then the client shows the PXELINUX version information), but does not show that the client requests ldlinux.c32, then eventually the client times out.
Oct 26 13:49:47 tinkerbell in.tftpd[599]: tftp: client does not accept options
Oct 26 13:49:47 tinkerbell in.tftpd[600]: RRQ from 141.212.104.234 filename pxe/pxelinux.0
I tried to hard code in some options to the pxelinux.0 file using pxelinux-options from the syslinux package, and had no luck. I've tried many versions of pxelinux.0 (currently using 6.03, compiled from source on the RedHat 7 machine).
Current hard coded options:
utils/pxelinux-options --list /y/pxe/pxelinux.0
-b domain-name 'foo.bar'
-b domain-name-servers 10.0.65.4
-a next-server 10.0.65.5
-a path-prefix '/pxe/'
-a config-file 'pxelinux.cfg/default'
I'm at the end of my metaphorical rope. Any help is appreciated.
this is not correct
please consider
In your case an UEFI 64 client using DHCP option 93 = 9 would get pxelinux.0 as NBP and that will never work.
This would be a better approach