场景:我使用 DHCP 服务器进行身份验证并为我的设备提供特定服务。
- 一切运行良好,我的客户端设备有一个有效的 IP 地址 192.168.0.2 和由 DHCP 服务器分配的 QoS 服务。
- 我的 DHCP 服务器崩溃了,但由于有可用的租用时间,设备仍然保留 IP 地址 192.168.0.2,并且能够与网络中的其他设备通信。
我想知道当 DHCP 服务器再次上线时究竟会发生什么。DHCP 服务器是否会知道我的客户端设备所持有的 DHCP 状态以及授予的 QoS 服务?还是必须再次对设备进行身份验证才能使用 QoS 服务?
如能就上述内容提供任何帮助或信息,我们将不胜感激。
答案1
通常,DHCP 服务器会将其租约数据保存到持久性存储中,因此在重新启动后,它确实会知道您的客户端设备的状态。但是,如果故障导致租约数据丢失,那么这将不成立,服务器将一无所知。
如果 DHCP 服务器只是将 QoS 服务与租约一起分配,然后就完成了,那么设备可以继续使用 QoS 服务,直到租约到期,即使 DHCP 服务器可能已经忘记了这一点。当客户端设备续订租约时,它还将再次被分配 QoS 服务,一切正常。但是,如果 DHCP 服务器在租约续订之间持续提供 QoS 服务,那么设备实际上可能会失去 QoS 服务,直到它续订租约。这取决于该 QoS 服务的实施方式细节。
答案2
我想知道当 DHCP 服务器再次上线时究竟会发生什么。DHCP 服务器是否会知道我的客户端设备所持有的 DHCP 状态以及授予的 QoS 服务?还是必须再次对设备进行身份验证才能使用 QoS 服务?
所有这些很大程度上取决于 DHCP 服务器发生了什么情况、它的“弹性”如何以及如何恢复服务。
大多数 DHCP 服务器会将状态记录到磁盘,以便至少可以尝试从中断的地方继续。显然,如果这不可能,如果它丢失了所有设置和租约信息,那么一切都将不复存在。
在任何一种情况下,客户端都不会“进行身份验证”。相反,它将继续使用该 IP 地址,直到其某个“续订时间”到达,然后它将尝试联系签发其当前租约的 DHCP 服务器,如果无法做到这一点,它将尝试通过广播一般 DHCP 请求来获取新的 IP 地址:
一旦租约期限已过 50%,DHCP 客户端就会自动尝试续订租约。每次计算机重新启动时,DHCP 客户端也会尝试续订其 IP 地址租约。要尝试续订租约,DHCP 客户端会直接向其从中获取租约的 DHCP 服务器发送 DHCPREQUEST 数据包。
如果 DHCP 服务器可用,它会续订租约并向客户端发送一个 DHCPACK 数据包,其中包含新的租约期限和任何更新的配置参数。客户端在收到确认后会更新其配置。如果 DHCP 服务器不可用,客户端将继续使用其当前的配置参数。
如果 DHCP 客户端第一次续订租约失败,则当当前租约期限的 87.5% 到期时,DHCP 客户端将广播 DHCPDISCOVER 数据包以更新其地址租约。在此阶段,DHCP 客户端接受任何 DHCP 服务器颁发的租约。
--https://www.serverbrain.org/network-services-2003/how-the-dhcp-lease-renewal-process-works-1.html
答案3
DHCP 服务器通常将租约存储在文件系统上,这意味着如果服务器崩溃并且租约文件未损坏,那么当 DHCP 服务器重新上线时,它将知道仍在租约中的地址。
DHCP 服务器不会强制执行任何操作 - 设备可以选择使用自己的地址和配置,而不受 DHCP 服务器的约束。DHCP 仅通过向客户端提供推荐参数并提供已知未被其他设备使用的 IP 地址来简化配置。
最糟糕的情况是租约文件损坏,DHCP 服务器将另一个设备租用另一个设备已租用的 IP 地址,导致两个设备使用相同的地址。