DHCP Server’s dhcpd.conf:
========================================
log-facility local7;
default-lease-time 7776000;
max-lease-time 31536000;
ddns-update-style none;
not authoritative;
option subnet-mask xxxxxxxxxx;;
option broadcast-address xxxxxxxxxx;
option routers xxxxxxxxxx;;
#option domain-name "redact.xxx";
#option domain-name-servers xxxxxxxxxxxxx;
option domain-name "wsoe.redact.xxx";
option domain-name-servers xxxxxxxxx;
#option domain-search "wsoe.redact.xxx","redact.xxx";
option space PXE;
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option PXE.discovery-control code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-address;
subnet xxxxxxxx0 netmask xxxxxxxxx.0 {
# pool {
# range ##.##.##.100 ##.##.##.199;
# allow unknown-clients;
# }
allow bootp;
deny unknown-clients;
range dynamic-bootp ##.##.##.100 ##.##.##.255;
# PXE specific options
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
# At least one of the vendor-specific options must be set in order
# for the boot ROM on the client to recognize us as a PXE
# compliant server. We set the MCAST IP address to 0.0.0.0 to tell
# the boot ROM we can't provide multicast TFTP, so it will have to
# use just plain ol' TFTP instead (address 0.0.0.0 is considered
# as "no address").
option PXE.mtftp-ip 0.0.0.0;
}
# filename "pxelinux.0";
# next-server ##.##.##.43;
#New Fog-Project PXE server
filename undionly.kpxe;
# filename ipxe.kpxe;
# filename "pxelinux.0;
next-server ##.##.##.251;
#SysAdmin-Svrs
host sysdocu {
hardware ethernet XX:XX:XX:XX:XX:XX;
fixed-address ##.##.##.250;
option host-name "sysdocu.redact.xxx";
}
host fog-server {
hardware ethernet XX:XX:XX:XX:XX:XX;
fixed-address ##.##.##.251;
option host-name "fog-server.redact.xxx";
Fog Server’s /etc/dnsmasq.d/ltsp.conf
========================================
Don't function as a DNS server:
port=0
# Log lots of extra information about DHCP transactions.
log-dhcp
# Set the root directory for files available via FTP.
tftp-root=/tftpboot
# The boot filename, Server name, Server Ip Address
dhcp-boot=undionly.kpxe,##.##.##.251
# Disable re-use of the DHCP servername and filename fields as extra
# option space. That's to avoid confusing some old or broken DHCP clients.
dhcp-no-override
# inspect the vendor class string and match the text to set the tag
dhcp-vendorclass=BIOS,PXEClient:Arch:00000
dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
dhcp-vendorclass=UEFI,PXEClient:Arch:00007
dhcp-vendorclass=UEFI64,PXEClient:Arch:00009
# Set the boot file name based on the matching tag from the vendor class (above)
dhcp-boot=net:UEFI32,i386-efi/ipxe.efi,,##.##.##.251
dhcp-boot=net:UEFI,ipxe.efi,,##.##.##.251
dhcp-boot=net:UEFI64,ipxe.efi,,##.##.##.251
# PXE menu. The first part is the text displayed to the user. The second is the timeout, in seconds.
pxe-prompt="Booting FOG Client", 1
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
# This option is first and will be the default if there is no input from the user.
pxe-service=X86PC, "Boot to FOG", undionly.kpxe
pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe.efi
pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", ipxe.efi
dhcp-range=##.##.##.251,proxy