Archived
fix(pxe-boot): use pxe-service for proxy DHCP initial boot offers
dnsmasq 2.93 does not send proxy DHCP offers from dhcp-boot alone in proxy mode — pxe-service is required to trigger proxy offers for the initial boot. Replace the dhcp-boot-based arch detection with pxe-service entries for arch 0 (BIOS), 7 (EFI BC / OVMF), and 9 (EFI x86-64), then use dhcp-boot only for the iPXE second-boot HTTP chain (tag:ipxe clients). Add log-dhcp for post-deploy verification. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -427,18 +427,21 @@ in
|
|||||||
# Without this dnsmasq tries to bind port 53 which systemd-resolved
|
# Without this dnsmasq tries to bind port 53 which systemd-resolved
|
||||||
# already owns, causing startup failure.
|
# already owns, causing startup failure.
|
||||||
port = 0;
|
port = 0;
|
||||||
dhcp-range = [ "192.168.2.0,proxy" ];
|
log-dhcp = true;
|
||||||
dhcp-match = [
|
dhcp-range = "192.168.2.0,proxy";
|
||||||
"set:ipxe,175"
|
# Detect iPXE clients on the second DHCP round (after loading the
|
||||||
"set:efi64,option:client-arch,7"
|
# iPXE binary) so we can serve the HTTP menu instead of TFTP.
|
||||||
"set:efi64,option:client-arch,9"
|
dhcp-match = "set:ipxe,175";
|
||||||
];
|
|
||||||
dhcp-userclass = "set:ipxe,iPXE";
|
dhcp-userclass = "set:ipxe,iPXE";
|
||||||
dhcp-boot = [
|
# iPXE second boot: chain to HTTP boot menu.
|
||||||
"tag:ipxe,tag:efi64,http://${vars.pxeServerIp}/boot.ipxe"
|
dhcp-boot = "tag:ipxe,http://${vars.pxeServerIp}/boot.ipxe";
|
||||||
"tag:ipxe,http://${vars.pxeServerIp}/boot.ipxe"
|
# Initial boot: use pxe-service so dnsmasq sends proxy DHCP offers.
|
||||||
"tag:efi64,ipxe.efi,,${vars.pxeServerIp}"
|
# dhcp-boot alone does not trigger proxy offers in dnsmasq 2.93.
|
||||||
"undionly.kpxe,,${vars.pxeServerIp}"
|
# Arch 0 = BIOS, 7 = EFI BC (OVMF), 9 = EFI x86-64.
|
||||||
|
pxe-service = [
|
||||||
|
"0,\"Network Boot\",undionly.kpxe,${vars.pxeServerIp}"
|
||||||
|
"7,\"Network Boot\",ipxe.efi,${vars.pxeServerIp}"
|
||||||
|
"9,\"Network Boot\",ipxe.efi,${vars.pxeServerIp}"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user