我们目前有客户端在请求IP时连接到DHCP服务器。然后,我们使用一些附加选项重定向到next-server
。
下一个服务器具有一个正在运行的DNSMASQ,应该能够获得DHCP服务器发送的所有选项。
对于特定机器的当前配置(它实际上经历了此条件):
if substring (option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00007" { # UEFI-64-1
# user-class has code 77
option user-class "test";
next-server nextserver.example;
# We even tried forcing sending this option, as the client might not be asking for it:
# 4d is 77 in hex
option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,4d);
}
当检查下一个服务器端的所有通信量时,我们根本没有看到这个选项。其他选项(如option vendor-class-identifier "PXEClient";
)也是如此
我可能漏掉了什么吗?客户端似乎只是将启动选项发送到DHCP服务器,然后发送到next-server
,而没有接受DHCP服务器配置上的任何指定选项。
编辑:dnsmasq
配置
bind-interfaces
dhcp-option=vendor:PXEClient,6,2b
dhcp-match=x86PC, option:client-arch, 0
dhcp-option-force=x86PC,211, 30
dhcp-match=BC_EFI, option:client-arch, 7
dhcp-match=X86-64_EFI, option:client-arch, 9
dhcp-match=AARCH64_EFI, option:client-arch, 11
# path refers to server address, this case it is local, as there is a separate tftp server serving these files from /tftpboot/
# Use the tag to differentiate loader
pxe-service=tag:x86PClgcy,x86PC, "netboot x86PClgcy", /test/loader/lgcy/pxelinux
pxe-service=tag:x86PC,x86PC, "netboot x86PC", /test/loader/bios/lpxelinux
pxe-service=tag:BC_EFI,BC_EFI, "netboot BC-EFI", /test/loader/uefi/bootx64.efi
pxe-service=tag:X86-64_EFI,X86-64_EFI, "netboot X86-64_EFI", /test/loader/uefi/bootx64.efi
pxe-service=tag:AARCH64_EFI, 11, "netboot AARCH64_EFI", /test/loader/arm64/bootx64.efi
# ONE pxe-service per tag:architecture only
# for defined pxe-skip-menu=<CSA>
# this requires patched version of dnsmasq
pxe-skip-menu=x86PC
pxe-skip-menu=BC_EFI
pxe-skip-menu=X86-64_EFI
pxe-skip-menu=11
# i.e. it delegates the main DHCP server to allocate the IP
dhcp-range=10.0.0.0,proxy,255.0.0.0
dhcp-range=100.64.0.0,proxy,255.192.0.0
(...)
发布于 2019-10-04 15:17:59
您似乎在使用ISC dhcpd
。从它的dhcpd.conf(5)
手册页面:
next-server server-name;
next-server
语句用于指定要从其中加载初始引导文件(在filename
语句中指定)的服务器的主机地址。Server-name
应该是数字IP地址或域名。
注意,由next-server
语句指示的服务器名不是另一个DHCP服务器。传统上,它可能是TFTP服务器。
如果客户端首先向一台DHCP服务器发送DHCP请求,然后发送给另一台DHCP服务器,这意味着客户端出于某种原因拒绝了第一台服务器的请求。根据DHCP协议规范,DHCP客户端不可能只接受DHCP报价的一部分;它要么全部要么什么都不接受。
https://serverfault.com/questions/986773
复制相似问题