DHCPREQUEST is a Dynamic Host Configuration Protocol message that clients send to request specific IP address configuration parameters from DHCP servers, serving as the critical third step in the DORA exchange where a lease becomes binding once confirmed with DHCPACK. The message is used in multiple scenarios including selecting a server's offer, confirming a remembered address after reboot, and renewing or extending existing leases, with different transmission methods depending on the situation. Network administrators must understand DHCPREQUEST behavior for troubleshooting lease issues, managing server load on networks with thousands of clients, and detecting security threats like rogue servers and address conflicts, as the message operates unauthenticated in the base protocol and requires proper relay agent configuration and firewall rules to function correctly.
DHCPREQUESTの仕組み
クライアントはいくつかの状況でDHCPREQUESTを送信しますが、メッセージの内容はそれぞれ異なります。最もよく知られているのは、RFC 2131で説明されている初期のDORA交換の3番目のステップです。
- サーバーの選択:DHCPDISCOVERを送信した後、クライアントは複数のサーバーからオファーを受け取る場合があります。クライアントはそれらの中から1つを選択し、選択したサーバーの識別子とオファーされたアドレスを含むDHCPREQUESTをブロードキャストします。
- 他のサーバーへの通知:メッセージはブロードキャストされるため、オファーが選択されなかったサーバーはサーバー識別子を認識し、拒否されたことを把握して、予約していたアドレスを解放することができます。
- 応答の受信:選択されたサーバーは、リースを確認し、設定オプションを送信するために DHCPACK で応答します。そのアドレスを割り当てられなくなった場合は、DHCPNAK で応答します。
- 更新または再バインディング:リースの有効期限が近づくと、クライアントは再度 DHCPREQUEST を送信します。更新時には元のサーバーに対してユニキャストで送信し、再バインディング時には任意のサーバーに対してブロードキャストで送信します。
再起動後に以前のリースを記憶しているクライアントは、現在のネットワーク上でそのアドレスが依然として有効であることを確認するために、DHCPDISCOVER を送信せずに DHCPREQUEST を送信する場合もあります。その場合、サーバー識別子は含まれないため、そのバインディングを認識しているサーバーであればどれでも応答することができます。
DHCPREQUESTに関する一般的な問題
別のVLANやサブネットに移動したクライアントは、依然として以前のアドレスを要求し続け、そのたびにDHCPNAKを受信することがよくあります。通常はディスカバリを再開することで回復しますが、再試行を続けるクライアントは、キャッシュが古くなっているか、サーバー側のスコープ設定が間違っていることを示しています。
リレーエージェントが存在しない場合や、そのヘルパーアドレスが間違っている場合、ブロードキャストされる DHCPREQUEST メッセージはサーバーに到達しません。その結果、クライアントはタイムアウトとなり、パケットキャプチャではクライアント VLAN 上で応答のないリクエストが確認されます。
不正なサーバーや設定ミスのある 2 台目のサーバーは、リクエストに対して DHCPNAK や競合するオファーを送信する可能性があります。その結果、クライアントは有効なリースを失ったり、誤ったゲートウェイやDNS設定を受け取ったりすることになります。また、キャプチャされたリクエストに含まれるサーバー識別子から、どのサーバーが選択されたかがわかります。
リース時間が非常に短い場合や、多数のクライアントが同時に再起動すると、DHCPREQUESTメッセージが集中して送信され、サーバーの応答が遅くなります。リース時間を延長するか、再起動のタイミングをずらすことで、このピークを軽減できます。
フェイルオーバーペアにおいて、最新のリースデータを持たないパートナーは、更新要求に対してDHCPNAKで応答するか、またはそれを無視する場合があります。クライアントはアドレスを放棄するため、まずフェイルオーバーの状態とリースの同期状況を確認してください。