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 伺服器會保持無訊息狀態。 如果子網掩碼反轉,用戶端會取得有效的位址。