Dhcp

在為 PXE 引導配置 dnsmasq 時,為什麼需要將 undionly.kpxe 更改為 undionly.0?

  • November 9, 2017

我已將 dnsmasq 配置為 PXE 引導 iPXE 客戶端,方法是將它們引用到 HTTP 伺服器(在本例中為matchbox)。我還將它配置為處理較舊的 PXE 客戶端,方法是在我的 TFTP 伺服器的根目錄中放置 iPXE 的副本,以允許這些較舊的客戶端鍊式載入到 iPXE。為此,我在 dnsmasq.conf 中使用了以下行:

dhcp-boot=tag:!ipxe,undionly.kpxe

我已將undionly.kpxe文件放在我的 TFTP 伺服器的根目錄下,但是有幾個地方說您需要符號連結或複製undionly.kpxeundionly.kpxe.0undionly.0CoreOSFOG Wiki)。

首先,為什麼 dnsmasq 不查找您在配置中指定的確切文件名,其次,哪個是正確的,undionly.0 或 undionly.kpxe.0?

以 .0 結尾的文件名僅與 2.76 之前的 dnsmasq 版本相關。從 2.76 的變更日誌中:

–pxe-service 中“basename”語義的細微變化。歷史行為一直是從 TFTP 伺服器下載的實際文件名是 . 其中是一個整數,對應於客戶端提供的層參數。不清楚 PXE 協議中“層”的作用究竟是什麼,實際上層總是為零,所以文件名是 .0 新的行為和舊的一樣,除了包含文件後綴時,在在這種情況下,不再添加圖層後綴。這允許使用合理的足夠,而不是無意義的“.0”。僅在極少數情況下,您的配置的基本名稱已經有後綴,這是不兼容的更改,

如果您使用的是 2.76 之後的 dnsmasq 版本,請使用實際文件名。如果使用以前的版本,請使用“文件名”.0

引用自:https://serverfault.com/questions/882554