我有一个DHCP为 PXE 客户端提供 TFTP 服务器 IP、NBP(网络引导程序)和 IP 地址的服务器。当机器正常启动(非 PXE 启动)时,它会从另一个 DHCP 服务器获取 IP 地址。
每次机器正常启动时,问题是(PXE)DHCP 服务器日志都会收到大量如下消息:
通过 eth0 从 00:11:22:33:aa:bb 进行 DHCPDISCOVER:网络 10.1.2.0/24:无免费租约
如何配置(PXE)DHCP不是将这些消息写入日志?
答案1
当非 PXE 客户端启动时,它会广播一个 DHCPDISCOVERY 数据包,该数据包会被 DHCP 服务器和代理 DHCP 服务器捕获。
DHCP 服务器将继续执行 DORA(DISCOVERY-OFFER-REQUEST-ACCEPT)序列,提供 IP 地址、掩码和一些 DHCP 选项。另一方面,当客户端未被识别为启动 PXE 设备时,proxyDHCP 会立即停止 DORA 序列并保持静默。这并不妨碍 proxyDHCP 引擎记录 DHCPDISCOVER 事件(或客户端从 DHCP 服务器获取 IP 时作为 DORA 序列的一部分发送的 DHCPREQUEST)
您收到的消息实际上并不正确。
DHCPDISCOVER from 00:11:22:33:aa:bb via eth0: network 10.1.2.0/24: no free leases
对于你的情况(proxyDHCP),更合适的消息应该只说
DHCPDISCOVER from 00:11:22:33:aa:bb via eth0: network 10.1.2.0/24
因为代理 DHCP 收到的 DHCPDISCOVER 数据包永远不会提及与 IP 租约相关的任何内容;代理 DHCP 不提供 IP 地址。
如果您想避免记录这些消息,您必须检查 proxyDHCP 文档并查看是否可行。
IE塞瓦因为 proxyDHCP 会记录来自非 PXE 客户端的 DHCPDISCOVERY 和 DHCPREQUEST 数据包,并且这种情况下的行为无法关闭。(我与 Serva 开发有关)
答案2
DHCP 将向网络段上的所有主机发送广播消息以发现 DHCP 服务器地址并申请租约 - 您无法阻止 DHCP 客户端执行此操作,也无法阻止 DHCP 服务器响应或记录事件,因为这是 DHCP 协议的工作方式,相反,提供 PXE 启动的 DHCP 服务器应该位于不同的 VLAN 上进行配置,并且应使用“IP 辅助地址”配置交换机,以缓解来自寻找 DHCP 地址的客户端的广播,或者在交换机上配置 ACL 以阻止从生产网络进入 PXE 网络的 DHCP 请求。