我的设置:Red Hat 6.7 isd dhcp 服务器 2x 网络连接(A 和 B) 在网络 A 上配置一个 DHCP 池
当我在单个网络(“A”)上设置此服务器时,它工作正常,现在我添加了第二个网络(“B”),DHCP 服务器正在将“B”网络的“下一个服务器”的 IP 地址发送给 PXE 客户端。无法弄清楚原因。
DHCP 地址正确发出,因此当网络 A 上的客户端请求租约时,DHCP 服务器会从网络 A 上的池中正确地发送租约。
我到处都添加了带有正确网络 B 地址的 next-server 指令,但它仍然没有任何作用。我尝试过:作为全局 dhcpd.conf 配置中的第一行在子网声明中在子网下方的池声明中在 pxeclient 类中
编辑:网络 A 是 192.168.0.0/24 网络 B 是 192.168.1.0/24
当 PXE 客户端出现在网络 A 上时,它们会从池中获取 DHCP 租约,但下一个服务器发送的是 192.168.1.1,而不是 192.168.0.1
配置文件 /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
# dhcpd.conf
next-server 192.168.0.1;
option tftp-server-name = "192.168.0.1";
server-name = "192.168.0.1";
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 arch code 93 = unsigned integer 16; # RFC4578
default-lease-time 86400; #1 day
max-lease-time 604800; #7 days
option domain-name "satellite";
option domain-name-servers 192.168.0.1;
allow booting;
allow bootp;
log-facility local7;
ddns-update-style interim;
ignore client-updates;
authoritative;
omapi-port 7911;
#Optional key:
key omapi_key {
algorithm HMAC-MD5;
secret "[...]";
}
omapi-key omapi_key;
option pxegrub code 150 = text ;
#################################
# local
#################################
subnet 192.168.0.0 netmask 255.255.255.0 {
pool
{
next-server 192.168.0.1;
option tftp-server-name = "192.168.0.1";
server-name = "192.168.0.1";
range 192.168.0.10 192.168.0.253;
}
allow booting;
allow bootp;
next-server 192.168.0.1;
option tftp-server-name = "192.168.0.1";
server-name = "192.168.0.1";
option routers 192.168.0.254;
option domain-name "satellite";
option domain-name-servers 192.168.0.1;
option subnet-mask 255.255.255.0;
option fqdn.no-client-update on; # set the "O" and "S" flag bits
option fqdn.rcode2 255;
# PXE Handoff.
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
#option pxegrub code 150 = text;
next-server 192.168.0.1;
option tftp-server-name = "192.168.0.1";
server-name = "192.168.0.1";
if option arch = 00:06 {
filename "bootia32.efi";
} else if option arch = 00:07 {
filename "bootx64.efi";
} else {
filename "pxelinux.0";
}
}
}
include "/etc/dhcp/dhcpd.hosts";
答案1
我发现了发生了什么,我正在使用 Foreman(Red Hat Satellite 的上游)来配置这些主机,看起来它写入了一个静态租约/var/lib/dhcpd/dhcpd.leases使用取代服务器。下一个服务器 = AA:BB:CC:DD; 其中 IP 表示为 4 个十六进制八位字节。