DHCP クライアントが DHCP 割り当て IP アドレスの取得に失敗する可能性がある

この記事は、DHCP クライアントが DHCP 割り当て IP アドレスを取得できない問題を解決するのに役立ちます。

適用対象: Windows Server 2012 R2
元の KB 番号: 167014

現象

DHCP クライアントをあるサブネットから別のサブネットに移動すると、新しいサブネットで有効な IP アドレスを取得できない可能性があります。

解決方法

この問題を回避するには、次のいずれかの方法を実行します。

  • 重複する IP アドレス指定スキームは使用しないでください。

  • クライアントを新しいセグメントに移動した後、次のコマンドを実行します。

    Ipconfig /Release
    Ipconfig /Renew
    

詳細

以前に DHCP 割り当てアドレスを持っていた DHCP クライアントが再度起動されると、クライアントは INIT-REBOOT 状態になります。 クライアントは、DHCPRequest パケットを送信し、DHCP オプション フィールド "DHCP 要求されたアドレス" に以前に割り当てられた IP アドレスを入力することで、同じアドレスを引き続き使用できることを確認しようとします。

DHCP サーバーがサイレント状態のままの場合、クライアントは前のアドレスがまだ有効であると見なして保持します。 DHCP サーバーが DHCPRequest に応答して NACK パケットを送信すると、クライアントは検出サイクルに入ります。また、DHCPDiscover パケットで以前に割り当てられたアドレスも要求します。

DHCP サーバーは、以前に割り当てられたアドレスが指定された DHCPRequest を受信すると、まず GIADDR フィールドを確認して、ローカル セグメントから送信されたかどうかを確認します。 ローカル セグメントから発信された場合、DHCP サーバーは要求されたアドレスを、要求を受信したローカル インターフェイスに属する IP アドレスとサブネット マスクと比較します。

アドレスが同じサブネット上にあるように見える場合、アドレスがアドレスのプールの範囲内にない場合でも、DHCP サーバーはサイレントのままです。 DHCP サーバーは、アドレスが同じセグメント上の別の DHCP サーバーによって割り当てられたと想定します (そのアドレスが独自のプールからでない場合)。 アドレスがサブネット マスク/IP アドレスチェックに失敗した場合、DHCP サーバーはスーパースコープから送信されたかどうかを確認します (定義されている場合)。 そうでない場合、サーバーは NACK パケットを使用して DHCPRequest に応答します。

DHCPRequest を送信するクライアントが、同じサブネット上にあるように見えるが、実際には別のサブネット マスクで割り当てられたアドレスを要求している場合、DHCP サーバーはサイレントのままになり、クライアントは新しいサブネットの有効な IP アドレスを取得できません。

たとえば、DHCP クライアントは、サブネット マスクが 255.255.255.0 のアドレス 172.17.3.x を取得し、DHCP サーバーのアドレスが 255.255.0.0 の 172.17.1.x である新しいセグメントにクライアントを移動するとします。 DHCP サーバーでサブネット マスク/IP アドレスの比較が行われると、DHCP サーバーは、アドレスが割り当てられたセグメント上の別の DHCP サーバーと仮定して、サイレントのままです。 サブネット マスクが反転した場合、クライアントは有効なアドレスを取得します。