DHCP 客户端可能无法获取 DHCP 分配的 IP 地址

本文有助于解决 DHCP 客户端无法获取 DHCP 分配的 IP 地址的问题。

适用于: Windows Server 2012 R2
原始 KB 编号: 167014

症状

当 DHCP 客户端从一个子网移动到另一个子网时,它可能无法在新子网上获取有效的 IP 地址。

解决方案

若要解决此问题,请执行以下方法之一:

  • 不要使用重叠的 IP 寻址方案。

  • 将客户端移动到新段后,运行以下命令:

    Ipconfig /Release
    Ipconfig /Renew
    

更多信息

再次启动以前具有 DHCP 分配地址的 DHCP 客户端时,客户端将进入 INIT-REBOOT 状态。 客户端将尝试通过发送 DHCPRequest 数据包来验证它是否仍可以使用同一地址,并使用以前分配的 IP 地址填充 DHCP 选项字段“DHCP 请求的地址”。

如果 DHCP 服务器保持无提示,则客户端假定以前的地址仍然有效并保留该地址。 如果 DHCP 服务器发送 NACK 数据包以响应 DHCPRequest,客户端将进入发现周期;它还请求 DHCPDiscover 数据包中以前分配的地址。

当 DHCP 服务器收到指定了以前分配的地址的 DHCPRequest 时,它首先通过检查“GIADDR”字段来检查它是否来自本地段。 如果它源自本地段,则 DHCP 服务器会将请求的地址与属于接收请求的本地接口的 IP 地址和子网掩码进行比较。

如果地址看起来位于同一子网上,则 DHCP 服务器将保持无提示,即使该地址不在地址池的范围内。 如果地址不是来自其自己的池,则 DHCP 服务器假定该地址是由同一段上的另一个 DHCP 服务器分配的。 如果地址未通过子网掩码/IP 地址检查,DHCP 服务器将检查它是否来自超范围(如果定义了一个)。 否则,服务器使用 NACK 数据包响应 DHCPRequest。

如果发送 DHCPRequest 的客户端请求的地址看起来位于同一子网上,但实际上分配了不同的子网掩码,则 DHCP 服务器将保持无提示,并且客户端无法获取新子网的有效 IP 地址。

例如,假设 DHCP 客户端获取地址 172.17.3.x,子网掩码为 255.255.255.0,客户端移动到 DHCP 服务器地址为 172.17.1.x 的新段,子网掩码为 255.255.0.0。 在 DHCP 服务器上完成子网掩码/IP 地址比较时,如果段上的另一个 DHCP 服务器分配了地址,则 DHCP 服务器将保持无提示。 如果子网掩码被反转,客户端将获取有效的地址。