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

本文可帮助修复 DHCP 客户端无法获取 DHCP 分配的 IP 地址的问题。

原始 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 服务器会检查它是否来自 Superscope(如果已定义)。 否则,服务器将使用 NACK 数据包响应 DHCPRequest。

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

例如,假设 DHCP 客户端获取子网掩码为 255.255.255.255.0 的地址 172.17.3.x,并且客户端将移动到一个新段,其中 DHCP 服务器的地址为 172.17.1.x,子网掩码为 255.255.0.0。 当子网掩码/IP 地址比较在 DHCP 服务器上完成时,DHCP 服务器将保持静默,假设分配了该地址的段上的另一个 DHCP 服务器。 如果反向子网掩码,客户端将获取有效的地址。