从受监控的 DHCP 流量中检测 DHCP 池已满

网络工程 dhcp 协议理论 射频卡
2021-07-30 04:39:17

有没有办法仅从 DHCP 流量中检测完整的 DHCP 池?为简单起见,我假设网络中只有一台 DHCP 服务器。我在RFC 2131 中发现,仅在这种情况下发送 DHCP NAK:

服务器到客户端表明客户端的网络地址概念不正确(例如,客户端已移动到新的子网)或客户端的租约已过期。

所以我想当 DHCP 池已满时,不会发送 DHCP NAK。但绝对它与完整的 DHCP 池一起使用。我也在这个话题中找到了

使用 Cisco 的“ip-helper”进行 DHCP 的最佳实践?

如果 DHCP 服务器的范围已满,它将不会回复 DHCPOffer...

所以我认为当 DHCP 池已满时,由于RFC 2131 中定义的重新传输算法,客户端将重新传输许多 DHCP DISCOVER 我没有看到从 DHCP 流量中检测完整 DHCP 池的更好方法。如果有人有更好的主意仅从发送的数据包中检测它,我会很高兴。提前致谢。

2个回答

您是对的,仅通过查看一些 DHCP 流量,就无法确定服务器是否地址不足。您无法区分空池和崩溃的服务器,因为在这两种情况下,服务器都不会响应 DHCPREQUEST。

从理论上讲,如果您从一开始就可以访问服务器的所有DHCP 流量,并且有一些有关其配置的信息,您就可以跟踪它分发的所有租约并完全模拟其簿记。这将使您知道服务器何时分配了所有可用地址。

请注意,您需要了解一些有关 DHCP 池的知识。DHCP 范围通常是子网的子集,因此您需要知道哪些地址可用。此外,当管理员设置诸如要分发给特定 MAC 地址的地址之类的内容时,事情会变得更加复杂。

恐怕确定服务器地址是否用完的最佳位置仍然是……服务器本身。

ISC dhcpd 租赁分析和关于 sourceforge.net 的报告