はじめに
パソコンやスマートフォンを家庭や会社のネットワークへ接続すると、多くの場合はIPv4アドレスを手入力しなくても通信を始められます。端末が自動的に設定を受け取れるのは、DHCPがネットワーク内のサーバーとやり取りしているためです。
この記事では、DHCPv4がIPv4アドレスなどを自動設定する仕組みを解説します。読み終えると、Discover・Offer・Request・ACKの4段階と、取得したアドレスをリースとして更新する理由を説明できるようになります。
DHCPとは
DHCP(Dynamic Host Configuration Protocol)は、端末へIPv4アドレスと通信に必要な設定情報を自動的に渡す仕組みです。設定を要求する端末をDHCPクライアント、アドレスと設定情報を管理して応答する機器をDHCPサーバーと呼びます。
家庭用ルーターは、一般にDHCPサーバーの機能を備えています。端末をWi-FiやLANへ接続するたびにIPv4アドレスを手入力しなくてもよいため、設定の手間を減らし、管理している範囲からアドレスを割り当てられます。
IPv6にもDHCPv6という別の仕組みがありますが、メッセージやアドレス設定の考え方はDHCPv4と同一ではありません。この記事では、IPv4で使うDHCPv4を対象とします。
DHCPで自動設定される情報
DHCPはIPv4アドレスだけを配布するものではありません。DHCPオプションを使うことで、端末がネットワークで通信するための情報も通知できます。
- IPv4アドレス:ネットワーク上で端末を識別する
- サブネットマスク:ネットワーク部とホスト部の境界を示す
- デフォルトゲートウェイ:別のネットワークへ送るときの中継先を示す
- DNSサーバー:ドメイン名を名前解決するときの問い合わせ先を示す
IPv4アドレスとサブネットマスクの関係は、IPv4アドレスとは?ネットワーク部・ホスト部とサブネットマスクを解説で解説しています。DNSサーバーの役割は、DNSとは?ドメイン名からIPアドレスを調べる名前解決の仕組みを解説を参照してください。
DORAでIPv4アドレスを取得する流れ
DHCPクライアントが新しくIPv4設定を取得するときは、一般に4種類のメッセージを順番に交換します。頭文字を取ってDORAと呼ばれる流れです。
- DHCPDISCOVER:クライアントが、応答できるDHCPサーバーを探します。
- DHCPOFFER:サーバーが、利用可能なIPv4アドレスや設定情報を提案します。
- DHCPREQUEST:クライアントが利用する提案を選び、そのサーバーとほかのサーバーへ選択結果を知らせます。
- DHCPACK:選ばれたサーバーが割り当てを確定し、リース期間を含む設定情報を返します。

複数のサーバーからDHCPOFFERが届く場合、クライアントはその中から一つを選びます。DHCPREQUESTをブロードキャストすることで、選ばれたサーバーは処理を続け、選ばれなかったサーバーは自分の提案が採用されなかったことを判断できます。
最初の問い合わせでブロードキャストを使う理由
DHCPを開始する時点のクライアントは、まだ利用できるIPv4アドレスを持たず、DHCPサーバーのアドレスも知らない場合があります。そのため、最初のDHCPDISCOVERを同じネットワーク内へブロードキャストし、応答できるサーバーを探します。
DHCPREQUESTも初期割り当てではブロードキャストされます。これにより、提案した複数のサーバーへ、クライアントがどの提案を選んだかを一度に知らせられます。ブロードキャストとマルチキャストの違いは、ブロードキャストとマルチキャストとは?違いや用途を分かりやすく解説で解説しています。
リースと更新の仕組み
DHCPで割り当てるIPv4アドレスには、通常、利用できる期限が設定されます。この期限付きの割り当てをリースと呼びます。使われなくなったアドレスをサーバーが再び割り当てられるため、限られたアドレスを固定したままにせず管理できます。
クライアントは期限が切れるまで何もしないのではなく、途中でDHCPREQUESTを送り、リースの延長を試みます。まずは割り当て元のサーバーへユニキャストで更新を求め、応答がない状態が続くと、ほかのDHCPサーバーにも届くようブロードキャストで更新を試みます。
更新に成功すれば同じIPv4アドレスを継続して利用できます。リース期限までに更新できなければ、そのアドレスの利用を停止し、改めて設定を取得する必要があります。
DHCPリレーで別ネットワークのサーバーを利用する
ブロードキャストは通常、ルーターを越えて別のネットワークまでは届きません。そのため、ネットワークごとにDHCPサーバーを設置しなければ、離れた場所にある一台のサーバーへ問い合わせられないように見えます。
この問題を解決するのがDHCPリレーエージェントです。リレーエージェントはクライアント側のネットワークでDHCPメッセージを受け取り、別のネットワークにあるDHCPサーバーへ転送します。サーバーからの応答もクライアント側へ中継するため、複数のネットワークを一台または少数のDHCPサーバーで管理できます。
DHCP予約と端末への手動設定の違い
同じ端末に毎回同じIPv4アドレスを使わせたい場合でも、必ず端末側へ手動入力する必要はありません。DHCPサーバーでMACアドレスなどの識別情報とIPv4アドレスを対応付けるDHCP予約を使えます。
| 設定方法 | アドレスを決める場所 | 主な特徴 |
|---|---|---|
| 通常のDHCP割り当て | DHCPサーバー | 管理範囲から自動的に割り当てる |
| DHCP予約 | DHCPサーバー | 特定の端末へ同じアドレスを割り当てやすい |
| 端末への手動設定 | 各端末 | DHCPを使わず、端末ごとに設定と重複を管理する |
DHCP予約は端末がDHCPで設定を受け取る点では通常の割り当てと同じです。サーバーやプリンターなどでアドレスを固定したいときに、設定をサーバー側へ集約できる利点があります。
まとめ
DHCPは、端末へIPv4アドレスやサブネットマスク、デフォルトゲートウェイ、DNSサーバーなどを自動設定する仕組みです。新しい割り当てでは、DHCPDISCOVER、DHCPOFFER、DHCPREQUEST、DHCPACKの4段階でサーバーを探し、提案を選び、リースを確定します。
最初はクライアントが自身のIPv4アドレスやサーバーの場所を知らないため、ブロードキャストを使用します。取得後は期限が来る前にリースを更新し、別ネットワークのサーバーを利用する場合はDHCPリレーエージェントがメッセージを中継します。
コメント