一个 DHCP 服务器分配 IP,但另一个 DHCP 服务器分配其他选项

一个 DHCP 服务器分配 IP,但另一个 DHCP 服务器分配其他选项

是否可以让 isc-dhcp-server 发送类似 的 dhcp 选项filenamevendor-class-identifier但不发送客户端的 IP 地址?也就是说,我需要 dhcpd 发送一些选项,但不发送客户端的 IP。客户端从我无法控制的另一个 DHCP 服务器获取其 IP。

因此,我希望客户端合并从不同服务器的 DHCPOFFER 获得的数据:客户端应该使用提供 IP 地址的 DHCP 服务器的 IP,客户端应该使用filename提供的 DHCP 服务器的选项filename

我尝试了以下操作但失败了:

subnet 10.4.60.0 netmask 255.255.252.0 {
  option vendor-class-identifier "HTTPClient";
  filename "http://10.4.60.90/ipxe.efi";
}

dhcpd 日志说:

DHCPDISCOVER from 90:e2:ba:34:86:e6 via enx00e04c66833e: network 10.4.60.0/22: no free leases

tcpdump 显示 isc-dhcp 没有发送 DHCPOFFER。

答案1

我查看了 RFC,发现以下内容表明yiaddr需要客户端 IP:

RFC 2131 第 3.1.2 节

Each server may respond with a DHCPOFFER message that includes an
available network address in the 'yiaddr' field (and other
configuration parameters in DHCP options).

因此,根据规范,似乎没有办法发送包含选项但不包含 IP 地址的 DHCPOFFER。

答案2

我担心这种方法不会成功。客户不会整合这些信息。

客户端发送请求并等待一段时间。收到答案后,它会选择一个有效的提议并将其确认给服务器。其余的将被忽略... 这种行为源于这样的设计:子网上可以有更多的 DHCP 服务器/中继,并且在正确的配置下,它可以正常工作。

实际情况是,客户端通常会对第一个答案做出反应。因此,如果您有两个没有交互的 DHCP 服务器(静态分割池/IP 范围),您可能会得到第一个答案“没有可用的免费 IP”,第二个答案有适当的报价。根据设计,客户端可以使用第二个答案,但您可能会遇到使用第一个答案的情况,而客户端的行为就像没有有效的报价一样(我已经对这种情况进行了故障排除)...

相关内容