9. DHCP の概要

DHCP(Dynamic Host Configuration Protocol:動的ホスト構成プロトコル)は、ネットワーク上のデバイスに IP アドレスやその他のネットワーク構成パラメーターを自動的に割り当てるために使用される、基本的なネットワーキングプロトコルです。

DHCP とは?

DHCP をデバイス向けの電話会社のようなものだと考えてみてください。新しい電話を入手したとき、通信を開始するためには電話番号が必要です。キャリアに連絡し、番号を割り当ててもらいます。同様に、デバイスがネットワークに接続するとき、他のデバイスと通信するためには IP アドレスが必要です。DHCP はこの IP アドレスを提供するサービスです。

この IP アドレスは通常、特定の期間「リース(貸与)」されます。リースが切れる前に、デバイスはそれを更新でき、継続的な接続を保証します。この自動化されたプロセスは、あらゆるネットワークでのデバイス管理に不可欠です。

DHCP サーバーの役割

DHCP サーバーは、IP アドレスのプールを管理し、それをクライアントデバイスにリースする責任を負います。一般的なホームネットワークでは、ルーターが DHCP サーバーとして機能することがよくあります。大規模なネットワークでは、専用のサーバーがこのタスクを処理します。

DHCP を使用することには大きな利点があります。

  • 自動化: ネットワーク管理者は、すべてのデバイスを手動で構成する必要がなくなり、時間と労力を節約できます。
  • 正確性: IP アドレスの重複割り当てといった一般的なエラーを防ぎ、ネットワークの競合を引き起こす可能性を排除します。

ホストが IP アドレスを要求し、受信するプロセスを合理化するために、すべての物理ネットワークには独自の DHCP サーバーが必要です。このプロトコルはアプリケーション層で動作し、ネットワークの構成サービス(概念的にdhcp layerと呼ばれることもある)の重要な部分を形成します。

4 ステップの DHCP プロセス

デバイスが DHCP を介して IP アドレスを取得するプロセスには、4 ステップの交換が含まれ、これは頭字語 DORA でよく記憶されます。

  1. DHCP Discover(発見): クライアントデバイスは、利用可能な DHCP サーバーを見つけるために、ネットワーク全体にDISCOVERメッセージをブロードキャストします。
  2. DHCP Offer(提供): Discover メッセージを受信した DHCP サーバーは、OFFERメッセージで応答できます。このメッセージには、提案された IP アドレス、サブネットマスク、ゲートウェイアドレス、およびリース期間が含まれます。
  3. DHCP Request(要求): クライアントは 1 つ以上のオファーを受信し、そのうちの 1 つを選択します。次に、どのオファーを受け入れたかをすべての DHCP サーバーに通知するために、REQUESTメッセージをブロードキャストします。
  4. DHCP Acknowledgment (ACK)(確認応答): 受け入れられたオファーを作成したサーバーは、リースを確定し、構成を完了するために最終的なACKメッセージをクライアントに送信します。

完全なプロトコルはより複雑ですが、これら 4 つのステップが、DHCP がホストをネットワーク上で動的に構成する中核をなしています。

ログインして学習進捗を保存

サインイン

演習

練習あるのみです!動的 IP アドレス指定とネットワーク構成の理解を深めるための実践的なラボを次に示します。

  1. Linux で IP アドレス指定を管理する - ipコマンドを使用してインターフェイスを検査し、特にdhclientを使用して動的 IP アドレスを取得する方法を練習し、DHCP の知識を直接適用します。
  2. Linux で MAC アドレスと IP アドレスを識別する - ip aコマンドを使用して、DHCP によって割り当てられた IP アドレスを含むネットワークアドレス情報や、ネットワークインターフェイスを検査する方法を学びます。
  3. Linux で IP アドレスの種類と到達可能性を調査する - pingip aを使用して IP アドレス指定とネットワーク到達可能性を調査し、動的に割り当てられた IP がネットワーク内でどのように機能するかを理解するのに役立ちます。

これらのラボは、動的 IP 割り当てとネットワーク構成の概念を実際のシナリオに適用し、Linux ネットワーキングへの自信を築くのに役立ちます。

クイズ

DHCP プロセスの 4 つのステップを順番に挙げてください。回答は英語で、大文字の単語をカンマとスペースで区切って記述してください。