我通常看到 DHCP 租约时间在大多数默认设置下都相当长(一天多)。我的一个客户似乎有以下问题。他们的路由器中的 DHCP 服务器已接近饱和(例如,在正常工作日,80-85% 的潜在 IP 已被使用)。他们偶尔会重新启动路由器。当发生这种情况时,路由器似乎会丢失其已分配 IP 表,因此它会重新分配 IP(当然)。
问题在于,LAN 上经常会有一个客户端已经拥有该 IP,并且将保留该 IP 一天(当前超时长度),从而导致这两台机器出现 IP 冲突和连接问题。
显而易见的解决方案是将租赁时间设置得非常短,但由于我只是一个网络爱好者,因此可能对 DHCP 还有很多我不太了解的地方。
上述情况是否合理评估(至少对于低端设备而言)?在这种情况下,较短的租赁时间(比如半小时)是否合理?
答案1
您应该考虑更换 DHCP 服务器,因为它显然已损坏。DHCP 服务器应在重新启动之间保留租约信息,并且最好在将地址释放到池中之前探测地址,以避免地址重复。
如果这不可行,您可以缩短租约期限。只要 DHCP 服务器能够处理这种变动,它就应该可以工作,但较短的租约会导致网络上的广播流量略有增加。
租约过短主要会给客户端带来问题,例如在 WiFi 网络中,客户端经常断开连接并重新连接。租约过短(少于 1 分钟)可能会导致某些 DHCP 客户端出现奇怪的问题,这些客户端的超时时间比租约还长。
答案2
解决真正的问题DHCP 服务器应该记住重新启动之间的租约,并且应该在分发 IP 之前 ping 测试 IP(以合理确保它们尚未被使用)。
Windows Server 附带 DHCP 服务器。任何 *nix 平台都可以运行 ISC DHCPd。两者都是不错的选择,可以轻松满足上述要求。
对于 IPv4,我们将 DHCP 租约设置为 8 天,对于 IPv6,则设置为 2 周。无论您如何设置,请记住客户端将在 1/2 时间后续订,因此如果您将其设置为 8 小时,它将每 4 小时续订一次(如果请求失败,则继续双倍递减时间)。
答案3
您的路由器 DHCP 服务器实现可能能够执行“DHCP 冲突检测”。检查此功能并在可能的情况下启用它。这是最简单的修复方法。
缩短租约时间肯定会有所帮助,但不能 100% 保证。不过我不会低于 1 小时。根据我的经验,许多网络程序并不喜欢计算机在程序运行时重新获取 DHCP(例如 Outlook2003 就因这种行为而臭名昭著,2007 似乎表现得更好)。每 5 分钟执行一次可能会让用户非常明显。
如果 DHCP 范围足够大,可以容纳现场的所有计算机,并且大多数计算机都固定在现场,则可以通过 DHCP 保留为常规系统分配固定 IP 地址,只为办公室中不常使用的客人和/或笔记本电脑留下非常小的动态分配地址池。保留的地址不会发生冲突。当然:必须有人维护该保留列表......
如果您的 WAN 上有另一个能够进行冲突检测的 DHCP 服务器(Windows/Linux 或另一个路由器),您可以考虑将此 LAN 添加为附加 DHCP 范围,并重新配置站点路由器以将 DHCP 转发到该路由器。
如果其他方法都失败了,您将不得不设置一个单独的 DHCP 服务器。对于最多 200 个用户,您实际上并不需要大型 Windows 服务器或 Linux 机器。您可以使用 TFTPD32 之类的东西,它是免费的、易于设置的,并且还可以进行碰撞检测。(如果成本是一个问题,它将在桌面操作系统上运行。如果您恰好有一台可以“始终打开”的闲置 PC)。(并且,请参阅上一段,这可以在另一个站点上找到。)
答案4
我唯一真正考虑的问题是服务器负载。由于 DHCP 相对于当前处理器/网络能力而言是一项相对轻量级的服务,因此这一考虑变得不那么重要了。
当然,这都与网络规模有关。一个 C 类网络充满客户端是一回事,5 个 A 类网络则完全是另一回事。
尝试将其设置为您提到的 30 分钟,然后看看您的路由器对处理器负载的反应。
更多阅读材料请访问DHCP 常见问题解答(看着A.35. 租约应该有多长?)。