跳至主要內容

DHCPの仕組み:DORAプロセスとIPアドレス自動割り当て

コピーしました

Wi-Fiに接続したり、イーサネットケーブルを差し込んだりするたびに、デバイスは動的ホスト構成プロトコル(DHCP)という裏方のヒーローのおかげで、必要なすべてのネットワーク設定を魔法のように取得しています。

DHCPとは?

動的ホスト構成プロトコル(DHCP)は、ネットワークに接続されたデバイスにIPアドレスやその他の通信パラメーターを自動的に割り当てるために使用される標準的なネットワークプロトコルです。デバイス(ラップトップ、スマートフォン、スマートテレビなど)をパーティーに到着したゲスト、DHCPサーバーをパーティーの主催者だと想像してみてください。DHCPサーバーの仕事は、すべてのゲストが自分の「住所」(IPアドレス)を持ち、他のゲストと話す方法や出口(デフォルトゲートウェイとDNSサーバー)を見つける方法を知っていることを確認することです。

DHCPがなければ、ネットワーク上のすべてのデバイスにこれらのパラメーターを手動で設定する必要があります。これは時間がかかるだけでなく、特に大規模なネットワークではエラーが発生しやすくなります。

DHCPが解決する問題

DHCPが登場する前は、ネットワーク管理者はネットワーク上のすべてのコンピューターにIPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバーを手動で設定する必要がありました。これは、いくつかの理由でたちまち悪夢となりました。

  • 時間と手間がかかる: 少数のデバイスであれば管理可能ですが、数百または数千のデバイスを持つネットワークでは、手動設定は事実上不可能です。
  • エラーが発生しやすい: ヒューマンエラーは避けられません。IPアドレスの入力ミスは簡単にIPアドレスの競合を引き起こし、2つのデバイスが同じアドレスを使用しようとしてしまいます。これにより、どちらのデバイスも適切に通信できなくなります。
  • 柔軟性の欠如: デバイスがあるネットワークから別のネットワークに移動する場合(例:自宅からオフィスにラップトップを持ち運ぶ場合)、IP構成を変更する必要があります。これを手動で行うのは退屈で非効率です。
  • リソース管理の不備: 手動割り当てでは、どのIPアドレスが使用中で、どれが利用可能かを追跡することも困難でした。DHCPは、IPアドレスの効率的なリースと再利用を可能にします。

DHCPは、このプロセスを自動化することでこれらすべての課題を解決し、ネットワーク管理をよりシンプル、効率的、かつ信頼性の高いものにすることを目的としています。

DHCPの主要コンポーネント

DHCPシステムは、主にいくつかの重要なコンポーネントで構成されています。

1. DHCPサーバー

DHCPサーバーは、ネットワーク上のデバイスであり、通常はルーター、専用サーバー、または多目的サーバーであり、IPアドレスやその他のネットワーク構成の管理と割り当てを担当します。IPアドレスのプールを維持し、どのIPアドレスが割り当てられ、どれが利用可能かを追跡します。

2. DHCPクライアント

DHCPクライアントは、DHCPサーバーからネットワーク構成を取得する必要があるすべてのデバイスです。これには、コンピューター、スマートフォン、タブレット、スマートテレビ、ゲーム機、その他ネットワークに接続するほぼすべてのデバイスが含まれます。

3. IPアドレスプール

DHCPサーバーは、割り当て可能なIPアドレスの範囲を維持しています。この範囲は、IPアドレスプールまたはスコープと呼ばれます。クライアントがIPアドレスを要求すると、サーバーはこのプールから未使用のアドレスを選択します。

4. リースタイム(Lease Time)

DHCPサーバーがIPアドレスを割り当てると、リース時間とともに提供されます。この時間は、クライアントがその特定のIPアドレスを使用できる期間を定義します。リース時間は数分から数日までさまざまです。リース時間が経過すると、クライアントは更新するか、新しいIPアドレスを要求する必要があります。これにより、未使用のIPアドレスの効率的な再利用が促進されます。

5. DHCPリレーエージェント

大規模なネットワークでは、DHCPサーバーがクライアントとは異なるブロードキャストドメインまたはサブネットに配置されている場合があります。このような場合、DHCPリレーエージェント(多くの場合ルーター)がDHCPブロードキャストメッセージを転送するために使用されます。ブロードキャストメッセージは通常ルーターの境界を越えないため、リレーエージェントはクライアントのブロードキャスト要求を受信し、それをDHCPサーバーにユニキャストで転送し、サーバーの応答をクライアントに転送し直します。

DHCP DORAプロセス詳解

DHCPプロトコルは、DORAプロセスとして知られる4段階の相互作用プロセスを通じてIPアドレスを割り当てます。DORAは、Discover(発見)、Offer(提供)、Request(要求)、Acknowledge(確認)の頭文字をとったものです。各ステップを詳しく見ていきましょう。

1. Discover(発見)

DHCPクライアント(例:ラップトップ)が起動し、ネットワークに接続しようとすると、IPアドレスがありません。IPアドレスを取得するために、DHCP Discoverメッセージをローカルネットワークにブロードキャストします。このメッセージは、まるで「DHCPサーバーはいますか?IPアドレスが必要です!」と大声で叫んでいるかのようです。

このメッセージには、クライアントのMACアドレス(物理アドレス)が含まれており、応答するDHCPサーバーが誰にIPアドレスを提供するべきかを知ることができます。クライアントにはまだIPアドレスがないため、Discoverメッセージの送信元IPアドレスは0.0.0.0で、宛先IPアドレスはブロードキャストアドレス255.255.255.255です。

2. Offer(提供)

DHCP Discoverメッセージを受信し、利用可能なIPアドレスをプール内に持っているDHCPサーバーは、応答としてDHCP Offerメッセージを送信します。このOfferメッセージには通常、以下が含まれます。

  • 提案されたIPアドレス。
  • サブネットマスク。
  • デフォルトゲートウェイ。
  • DNSサーバーのアドレス。
  • 提案されたリース時間。
  • オファーを行っているDHCPサーバーのIPアドレス。

ネットワーク上に複数のDHCPサーバーがある場合、クライアントは複数のOfferメッセージを受信する可能性があります。クライアントは通常、最初に受信したOfferを受け入れます。

3. Request(要求)

1つ以上のDHCP Offerメッセージを受信した後、クライアントはその中から1つを選択し(通常は最初に受信したもの)、DHCP Requestメッセージを送信します。この要求メッセージはネットワーク上のすべてのDHCPサーバーにブロードキャストされ、クライアントがいずれかのオファーを受け入れたことを通知します。

DHCP Requestメッセージには、クライアントが選択したIPアドレスと、そのオファーを行ったDHCPサーバーの識別子が含まれています。これにより、選択されなかった他のDHCPサーバーには、提供したIPアドレスを利用可能なプールに戻すことができることが暗黙的に伝えられます。

4. Acknowledge(確認)

選択されたDHCPサーバーがクライアントのDHCP Requestメッセージを受信すると、最終的な**DHCP Acknowledge (ACK)**メッセージを送信します。このACKメッセージは、IPアドレスのリースを正式に確認し、以下のような必要なすべての構成パラメーターを含んでいます。

  • クライアントに受け入れられたIPアドレス。
  • サブネットマスク。
  • デフォルトゲートウェイ。
  • DNSサーバーのアドレス。
  • 最終的なリース時間。

クライアントがACKメッセージを受信すると、これらの新しい設定でネットワークインターフェースカードを設定し、正式にネットワークに接続されます。

DHCPリース更新

IPアドレスのリースは一時的なものです。リースが期限切れになる前に、DHCPクライアントは既存のIPアドレスを更新しようとします。このプロセスは通常、2つの段階で行われます。

1. 更新時間(T1)

リース時間の50%が経過すると(T1時間と呼ばれることが多い)、クライアントはユニキャストのDHCP Requestメッセージを、最初にIPアドレスを割り当てたDHCPサーバーに直接送信します。これは、クライアントがサーバーに「このIPアドレスを使い続けてもいいですか?」と直接尋ねているかのようです。

サーバーがDHCP ACKメッセージで応答した場合、リースは延長され、新しいリース期間はこの時点から始まります。

2. 再バインド時間(T2)

T1時間で元のサーバーから応答がない場合(例:サーバーがオフラインになっている場合)、クライアントはしばらく待機します。リース時間の87.5%が経過すると(T2時間と呼ばれることが多い)、クライアントはブロードキャストのDHCP Requestメッセージを送信します。今度は、元のサーバーだけでなく、ネットワーク上のすべてのDHCPサーバーにブロードキャストし、いずれかのサーバーからの応答を求めます。これは、クライアントが「どのDHCPサーバーでもいいので、このIPアドレスの更新を手伝ってくれませんか?」と叫んでいるかのようです。

応答したDHCPサーバーは、DHCP ACKメッセージを送信してリースを更新できます。

リース期限切れ

T2時間後もクライアントがリースを正常に更新できなかった場合、リースが完全に期限切れになると、現在のIPアドレスを放棄し、新しいIPアドレスを取得するためにDORAプロセス全体を最初からやり直す必要があります。この時点では、クライアントはネットワーク上で通信できません。

その他のDHCPメッセージタイプ

DORAプロセスに関わるメッセージ以外にも、重要なDHCPメッセージタイプがあります。

  • DHCPNAK (Negative Acknowledgment): サーバーは、無効なDHCP Requestを受信した場合(例:クライアントがすでに他のデバイスで使用されているIPアドレスを要求した場合や、サーバーのプール内にないアドレスを要求した場合)、またはクライアントが期限切れのリースを更新しようとした場合に、このメッセージを送信します。
  • DHCPDECLINE (Decline): クライアントは、サーバーから提供されたIPアドレスを拒否するためにこのメッセージを送信できます。これは通常、クライアントがサーバーから提供されたIPアドレスがネットワーク上の他のデバイスによってすでに使用されている(IPアドレスの競合)ことを検出した場合に発生します。
  • DHCPRELEASE (Release): クライアントは、IPアドレスが不要になったことをサーバーに積極的に通知し、サーバーの利用可能なプールに解放するためにこのメッセージを送信できます。これは通常、デバイスがオフラインになったり、シャットダウンされたりした場合に発生します。

DHCPの利点

DHCPは現代のネットワークに不可欠な部分であり、大きな利点をもたらします。

  • 自動構成: IPアドレスの手動設定の必要がなくなり、膨大な時間と労力を節約できます。
  • エラーの削減: 自動化により、IPアドレスの競合やその他の構成エラーのリスクが大幅に低減されます。
  • 効率的なIPアドレス管理: リースシステムを通じて、DHCPは未使用のIPアドレスを効率的に再利用し、アドレス枯渇の問題を防ぎます。
  • モビリティのサポート: デバイスは異なるネットワーク間を簡単に移動でき、接続時に適切な構成を自動的に取得します。
  • 集中管理: ネットワーク管理者は、中央のDHCPサーバーでIPアドレスの割り当てを制御および監視できます。

まとめ

DHCPプロトコルは、私たちの日常的なネットワーク接続を支える縁の下の力持ちです。デバイスがインターネットにシームレスに接続するたびに、DHCPサーバーは舞台裏でDORAプロセスを調整し、デバイスが必要なすべてを持っていることを確認しています。DHCPがどのように機能するかを理解することは、ネットワークインフラストラクチャへの深い洞察を提供するだけでなく、接続の問題をトラブルシューティングする際の知識も与えてくれます。

自宅でWi-Fiに接続している場合でも、オフィスでイーサネットに接続している場合でも、DHCPは静かにその役割を果たし、ネットワーク体験を可能な限りスムーズかつシームレスにしています。