A dynamic IP address is an addressing method where a DHCP server automatically assigns temporary addresses from a pool to client devices on a lease basis, allowing organizations to support large numbers of laptops, phones, and other devices without manual configuration. The DHCP process defined in RFC 2131 manages address discovery, offer, request, and acknowledgment, with addresses returning to the pool when leases expire, enabling a single pool to serve more devices over time. Operational success depends on proper pool sizing, lease duration management, and monitoring correlation with lease records, as misconfiguration or rogue servers can cause connectivity failures, address conflicts, and security vulnerabilities.
動的IPアドレスの仕組み
動的IPアドレスは通常、DHCPサーバーによって割り当てられます。DHCPサーバーは、設定されたプールからアドレスを割り当て、それぞれを一定期間のリースとして追跡します。
- 「ディスカバリ(Discover)」:IPアドレスを持たないクライアントは、自身のネットワークセグメント上で利用可能なDHCPサーバーを見つけるために、ブロードキャストでリクエストを送信します。
- オファー:1台以上のサーバーが、プール内の未使用アドレスや、デフォルトゲートウェイ、DNSサーバーなどの設定オプションを含むオファーを返信します。
- リクエスト:クライアントはオファーを選択し、選択したサーバーに対してそのアドレスを要求します。
- 確認(Acknowledge):サーバーがリースを確認してバインディングを記録すると、クライアントはそのアドレスの使用を開始します。
- 更新または期限切れ:リース期間が終了する前に、クライアントは更新を要求します。更新に失敗した場合、またはクライアントが接続を切断した場合、そのIPアドレスはプールに戻され、別のデバイスに割り当てられるようになります。
上記のやり取りは、IPv4 向けに RFC 2131 で定義されている DHCP プロセスに従っています。サーバーは再接続したクライアントに対して同じアドレスを再割り当てする場合があるため、動的アドレスが必ず変更されるとは限りません。管理者は、リース期間、プール範囲、および予約を設定することで、アドレスの安定性を制御します。
動的IPアドレスに関する一般的な問題
クライアントがIPアドレスを取得できず、169.254.0.0/16の範囲のリンクローカルアドレスに切り替わります。これは、スコープのサイズが接続しているデバイス数よりも小さく設定されている場合や、リース時間が長いために、すでに接続を切断したデバイスによってアドレスが占有されたままになっている場合に、よく発生します。
管理対象外のルーターやアクセスポイントは、DHCPリクエストに応答し、クライアントに誤ったゲートウェイやDNSサーバーを割り当ててしまいます。ユーザーからは、どのサーバーが最初に応答するかによって、一部のデバイスにのみ影響する接続の問題が報告されています。
動的範囲内で静的アドレスが設定された場合、または別々のサーバー上のスコープが重複している場合、2台のデバイスが同じアドレスを割り当てられてしまいます。症状としては、影響を受けたホストでの断続的な接続切断や、重複アドレスに関する警告などが挙げられます。
デバイスがアドレスを変更した際、動的更新に失敗したり、クリーンアップが設定されていなかったりすると、その古いAレコードやPTRレコードがDNSに残ってしまうことがあります。その結果、名前解決を行った際に、現在は別のデバイスに属しているアドレスが返されてしまいます。
リモートサブネット上のクライアントは、ルーターがDHCPブロードキャストをサーバーに転送しないため、IPアドレスを取得できません。サーバーのログにはそのセグメントからのリクエストが記録されておらず、この問題を解決するには、ルーターのインターフェースにリレーエージェントを設定する必要があります。