PXE/BOOTP 启动的 dhcpd.conf 不起作用

PXE/BOOTP 启动的 dhcpd.conf 不起作用

我正在尝试配置 dhcpd.conf 文件,以便当我使用 PXE/BOOTP 通过网络启动时,裸机服务器或虚拟机(KVM)将获得 10.0.2.100 到 10.0.2.253 范围内的 IP 地址。

它目前适用于 kvm,但不适用于裸机服务器。

我不熟悉“匹配子字符串”选项,所以这可能是我的问题。

似乎只有“KVM”类有效。我首先尝试了双引号“52:54:00”之间的 mac 地址,但没有用。没有引号也可以。

这是我的 dhcpd.conf 文件:

option ntp-servers 0.us.pool.ntp.org;
option domain-name "corp.example.com";
option domain-name-servers 10.0.0.2, 75.75.75.75, 75.75.76.76;

# Configuration for the kickstart server
allow booting;
allow bootp;

class "PXE" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
next-server 10.0.2.11;
filename "pxelinux.0";
}

class "KVM"  {
match if substring(hardware,1,3) = 52:54:00;
log (info, (substring(hardware, 1, 3)));
}

class "SuperMicro"  {
match if substring(hardware,1,3) = 00:25:90;
log (info, (substring(hardware, 1, 3))); 
}

# tell DHCP to set option 66 as a string variable
# option boot-server code 66 = string;
# option option-66 code 66 = text;
option tftp-server-name "63.251.141.68";

default-lease-time 604800;
max-lease-time 1209600;
authoritative;

shared-network corp {

subnet 10.0.0.0 netmask 255.255.0.0 {
option routers 10.0.0.1;
option broadcast-address 10.0.255.255;

pool {
 range dynamic-bootp 10.0.2.100 10.0.2.253;
 allow members of "PXE";
 allow members of "KVM";
 allow members of "SuperMicro";
 }

pool {
 range 10.0.100.1 10.0.115.255;
 deny members of "PXE";
 deny members of "KVM";
 deny members of "SuperMicro";
 }
}
}

我在 DHCP 服务器上运行了 tcpdump,发现请求来自裸机服务器和虚拟机。因此,我知道这不是网络问题。

任何帮助,将不胜感激。

答案1

我认为您没有匹配 MAC 的 OUI。您应该查看 Supermicro 服务器的完整数据包转储,看看他们是否在供应商类字段中设置了“PXEClient”,如 Zypher 所述。您应该运行带有 -vvv 选项的 tcpdump 来显示完整的数据包转储。

现在,您可以进入任何 PXE 客户端(正确设置选项)或任何 KVM 主机或任何超微主机的 DHCP 池……所以不确定为什么您有多个类。

您正在记录每个数据包的 MAC 的 OUI(仅当其匹配时)。您在系统的日志文件中看到什么了吗?

相关内容