为PXE引导configurationdnsmasq时,为什么需要将undionly.kpxe更改为undionly.0?

我已经通过将它们引用到HTTP服务器(本例中为火柴盒 )将dnsmasqconfiguration为PXE启动iPXE客户端。 我还将其configuration为处理较旧的PXE客户端,方法是将iPXE的副本放在TFTP服务器的根目录中,以允许这些较旧的客户端链接到iPXE。 为此,我在我的dnsmasq.conf中使用了以下行:

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

我已经将undionly.kpxe文件放在我的TFTP服务器的根目录下,但有几个地方说你需要将undionly.kpxe复制到undionly.kpxe.0或undionly.0 ( undionly.0 , FOG Wiki )。

首先,为什么dnsmasq不能查找你在config中指定的确切文件名,其次是哪一个是正确的,undionly.0 or undionly.kpxe.0?

以.0结尾的文件名仅与2.76之前的dnsmasq版本相关。 从2.76的更新日志:

–pxe-service中“basename”语义的微妙变化。 历史行为一直是从TFTP服务器下载的实际文件名是。 其中是一个与客户端提供的图层参数相对应的整数。 目前还不清楚PXE协议中“层”实际上的function是什么,在实践中层总是为零,所以文件名为.0新行为与旧行为相同,除了包含文件后缀这种情况下不再添加图层后缀。 这允许使用明智的足够,而不是毫无意义的“.0”。 只有在不太可能的情况下,你有一个基本名称已经有一个后缀的configuration,这是一个不兼容的变化,因为下载的文件将从name.suffix.0更改为name.suffix

如果您在2.76之后使用dnsmasq的版本,只需使用实际的文件名。 如果使用之前的版本,请使用“filename”.0