logo

動的ホスト構成プロトコル (DHCP)

動的ホスト構成プロトコルは、ネットワーク上のデバイス (コンピューター、スマートフォン、プリンターなど) に IP アドレスやその他のネットワーク構成パラメーターを割り当てるプロセスを自動化するために使用されるネットワーク プロトコルです。

DHCPとは何ですか?

DHCP はダイナミック ホスト コンフィギュレーション プロトコルの略です。これは、企業ネットワークのユーザーが通信するための重要な機能です。 DHCP は、企業がリソースの割り当てをスムーズに管理できるように支援します。 IPアドレス デスクトップ、ラップトップ、携帯電話などのエンドユーザー クライアントのデバイスに、以下を提供するために使用されるアプリケーション層プロトコルです。



Subnet Mask (Option 1 - e.g., 255.255.255.0) Router Address (Option 3 - e.g., 192.168.1.1) DNS Address (Option 6 - e.g., 8.8.8.8) Vendor Class Identifier (Option 43 - e.g.,  'unifi' = 192.168.1.9 ##where unifi = controller)>

DHCP は、 クライアントサーバーモデル そして発見、オファー、リクエスト、ACKに基づきます。

DHCP を使用する理由

DHCP は、プロセス全体を自動的かつ一元的に管理するのに役立ちます。 DHCP は、サーバーを使用するホストの一意の IP アドレスを維持するのに役立ちます。 DHCP サーバーは、TCP/IP 構成に関する情報を維持し、リース オファーの形式で DHCP 対応クライアントにアドレスの構成を提供します。

正規表現Java

DHCP のコンポーネント

DHCP の主なコンポーネントは次のとおりです。



  • DHCPサーバー: DHCP サーバーは、IP アドレスおよび構成に関連するその他の情報を保持するサーバーです。
  • DHCP クライアント: サーバーから設定情報を受信するデバイスです。これは、モバイル、ラップトップ、コンピュータ、または接続を必要とするその他の電子デバイスです。
  • DHCP リレー: DHCP リレーは基本的に、DHCP クライアントとサーバー間の通信チャネルとして機能します。
  • IP アドレス プール: これは、DHCP サーバーが所有する IP アドレスのプールまたはコンテナです。デバイスに割り当てることができるアドレスの範囲があります。
  • サブネット: サブネットは、ネットワークを制御下に置くために分割された IP ネットワークの小さな部分です。
  • リース: これは、サーバーから受信した情報が有効な期間を表しており、リースが期限切れになった場合、テナントはリースを再割り当てする必要があります。
  • DNS サーバー: DHCP サーバーは次のことも行うことができます。 DNS (ドメインネームシステム) サーバー情報を DHCP クライアントに送信し、ドメイン名を IP アドレスに解決できるようにします。
  • デフォルトゲートウェイ: DHCP サーバーは、デフォルト ゲートウェイに関する情報も提供できます。デフォルト ゲートウェイは、宛先がローカル ネットワークの外部にある場合にパケットが送信されるデバイスです。
  • オプション: DHCP サーバーは、サブネット マスク、ドメイン名、タイム サーバー情報などの追加の構成オプションをクライアントに提供できます。
  • リニューアル: DHCP クライアントは、有効な IP アドレスと構成情報を引き続き保持できるように、リースの期限が切れる前にリースの更新を要求できます。
  • フェイルオーバー: DHCP サーバーはフェイルオーバー用に構成できます。フェイルオーバーでは、2 つのサーバーが連携して冗長性を提供し、1 つのサーバーがダウンした場合でもクライアントが常に IP アドレスと構成情報を取得できるようにします。
  • 動的更新: DHCP サーバーは、DHCP クライアントの IP アドレスで DNS レコードを動的に更新するように構成することもできるため、ネットワーク リソースの管理が容易になります。
  • 監査ログ: DHCP サーバーはすべての DHCP トランザクションの監査ログを保存できるため、管理者はどのデバイスがどの IP アドレスを使用しているか、またリースがいつ割り当てられたり更新されているかを可視化できます。

オペレーションコード ハードウェアタイプ ハードウェア長 ホップ数
移行ID
秒数 フラグ
クライアントIPアドレス
あなたのIPアドレス
サーバのIPアドレス
ゲートウェイIPアドレス

クライアントハードウェアアドレス

(16バイト)



サーバーの名前

(64バイト)

ブートファイル名

(128バイト)

オプション

(可変長)

図. DHCPパケットフォーマット

  • ハードウェアの長さ: これは、物理アドレスの長さをバイト単位で定義する 8 ビットのフィールドです。たとえば、 イーサネット 値は 6 です。
  • ホップ数: これは、パケットが通過できる最大ホップ数を定義する 8 ビットのフィールドです。
  • トランザクションID: これは整数を格納する 4 バイトのフィールドです。トランザクション ID はクライアントによって設定され、応答と要求を照合するために使用されます。サーバーは応答で同じ値を返します。
  • 秒数: これは、クライアントが起動を開始してから経過した秒数を示す 16 ビットのフィールドです。
  • フラグ: これは 16 ビットのフィールドで、左端のビットのみが使用され、残りのビットは os に設定される必要があります。左端のビットは、サーバーからの強制ブロードキャスト応答を指定します。応答がクライアント (宛先) にユニキャストされる場合。 IPパケットのIPアドレスはクライアントに割り当てられたアドレスです。
  • クライアントIPアドレス: これは、クライアント IP アドレスを含む 4 バイトのフィールドです。クライアントがこの情報を持っていない場合、このフィールドの値は 0 になります。
  • あなたのIPアドレス: これは、クライアント IP アドレスを含む 4 バイトのフィールドです。これは、クライアントの要求に応じてサーバーによって埋められます。
  • サーバのIPアドレス: これは、サーバーの IP アドレスを含む 4 バイトのフィールドです。これはサーバーによって応答メッセージに埋められます。
  • ゲートウェイIPアドレス: これは、ルーターの IP アドレスを含む 4 バイトのフィールドです。 IT はサーバーによって応答メッセージに入力されます。
  • クライアントハードウェアアドレス: これは 実在住所 サーバーはクライアントから送信されたフレームからこのアドレスを取得できますが、アドレスがリクエスト メッセージ内でクライアントによって明示的に指定された方が効率的です。
  • サーバーの名前: これは 64 バイトのフィールドで、サーバーによって応答パケットにオプションで埋められます。これには、サーバーのドメイン名で構成されるヌル終了文字列が含まれます。サーバーがこのフィールドにデータを埋めたくない場合は、すべて 0 で埋める必要があります。
  • ブートファイル名: これは 128 バイトのフィールドで、サーバーが応答パケットにオプションで入力できます。これには、ブート ファイルの完全なパス名で構成されるヌル終了文字列が含まれます。クライアントはこのパスを使用して他の起動情報を取得できます。サーバーがこのフィールドにデータを入力したくない場合は、すべて 0 を入力する必要があります。
  • オプション: これは 2 つの目的を持つ 64 バイトのフィールドです。 IT 部門は追加情報または特定のベンダー情報を伝えることができます。このフィールドは応答メッセージ内でのみ使用されます。サーバーは、マジック クッキーと呼ばれる、値 99.130.83.99 の IP アドレス形式の数値を使用します。クライアントはメッセージの読み取りを完了すると、このマジック Cookie を探します。存在する場合、次の 60 バイトはオプションです。

DHCPの仕組み

DHCP は、TCP/IP プロトコルのアプリケーション層で動作します。 DHCP の主なタスクは、IP アドレスをクライアントに動的に割り当て、TCP/IP 構成に関する情報をクライアントに割り当てることです。詳細については、記事を参照してください。 DHCPの仕組み

DHCP ポート番号 サーバーの場合は 67、クライアントの場合は 68 です。これは、次を使用するクライアント/サーバー プロトコルです。 UDPサービス 。 IP アドレスはアドレスのプールから割り当てられます。 DHCP では、クライアントとサーバーは、接続を確立するために主に 4 つの DHCP メッセージを交換します。 ドラ プロセス中ですが、プロセス中に 8 つの DHCP メッセージがあります。

DHCPの仕組み

DHCPの仕組み

c ブール値

8 つの DHCP メッセージ

1. DHCP 検出メッセージ: これは、サーバーとクライアント間の通信プロセスで生成される最初のメッセージです。このメッセージは、ネットワーク内に DHCP サーバーが存在するかどうかを検出するために、クライアント ホストによって生成されます。このメッセージは、DHCP サーバーを見つけるためにネットワーク内に存在するすべてのデバイスにブロードキャストされます。このメッセージの長さは 342 または 576 バイトです

DHCP ディスカバーメッセージ

DHCP ディスカバーメッセージ

図にあるように、ソースは Macアドレス (クライアント PC) は 08002B2EAF2A、宛先 MAC アドレス (サーバー) は FFFFFFFFFFFF、送信元 IP アドレスは 0.0.0.0 (PC には今まで IP アドレスがなかったため)、宛先 IP アドレスは 255.255.255.255 (使用されている IP アドレス)放送用)。発見時には、ネットワーク内の DHCP サーバーを見つけるためにメッセージがブロードキャストされるため、ブロードキャスト IP アドレスと MAC アドレスが使用されます。

2. DHCP は次のメッセージを提供します。 サーバーは、リースされていない IP アドレスとその他の TCP 構成情報を指定して、このメッセージでホストに応答します。このメッセージはサーバーによってブロードキャストされます。メッセージのサイズは 342 バイトです。ネットワーク内に複数の DHCP サーバーが存在する場合、クライアント ホストは受信した最初の DHCP OFFER メッセージを受け入れます。また、パケットにはサーバを識別するためのサーバIDが指定される。

DHCP オファー メッセージ

DHCP オファー メッセージ

ここで、オファー メッセージの場合、送信元 IP アドレスは 172.16.32.12 (例ではサーバーの IP アドレス)、宛先 IP アドレスは 255.255.255.255 (ブロードキャスト IP アドレス)、送信元 MAC アドレスは 00AA00123456、宛先 MAC アドレスはFFFFFFFFFFFF。ここで、オファー メッセージは DHCP サーバーによってブロードキャストされるため、宛先 IP アドレスはブロードキャスト IP アドレス、宛先 MAC アドレスは FFFFFFFFFFFF、送信元 IP アドレスはサーバー IP アドレス、MAC アドレスはサーバー MAC アドレスになります。

また、サーバーは、提供された IP アドレス 192.16.32.51 と 72 時間のリース時間を提供しました (この時間を過ぎると、ホストのエントリはサーバーから自動的に消去されます)。また、クライアント識別子はすべてのメッセージの PC MAC アドレス (08002B2EAF2A) です。

3. DHCP 要求メッセージ: クライアントはオファー メッセージを受信すると、DHCP 要求メッセージをブロードキャストすることで応答します。クライアントは、同じ IP アドレスを持つ他のホストがネットワーク内に存在するかどうかを確認するために Gratuitous ARP を生成します。別のホストからの応答がない場合は、ネットワーク内に同じ TCP 構成を持つホストが存在しないため、IP アドレスの受け入れを示すメッセージがサーバーにブロードキャストされます。このメッセージにはクライアント ID も追加されます。

DHCPリクエストメッセージ

DHCPリクエストメッセージ

ここで、要求メッセージはクライアント PC によってブロードキャストされるため、送信元 IP アドレスは 0.0.0.0 (クライアントには現在 IP がないため)、宛先 IP アドレスは 255.255.255.255 (ブロードキャスト IP アドレス)、送信元 MAC アドレスは 08002B2EAF2A になります。 (PC MAC アドレス)、宛先 MAC アドレスは FFFFFFFFFFFF です。

注記 - このメッセージは、他のホストがその提供された IP を使用していないかどうかを確認するために、PC によって ARP 要求がブロードキャストされた後にブロードキャストされます。応答がない場合、クライアント ホストは、IP アドレスとその他の TCP/IP 構成の受け入れを示す DHCP 要求メッセージをサーバーにブロードキャストします。

4. DHCP 確認メッセージ: 受信したリクエスト メッセージに応答して、サーバーは指定されたクライアント ID を使用してエントリを作成し、提供された IP アドレスをリース時間でバインドします。これで、クライアントはサーバーから提供された IP アドレスを取得することになります。

バイトから文字列へのPython
DHCP確認メッセージ

DHCP確認メッセージ

ここで、サーバーは、提供された IP アドレスとリース時間を使用してクライアント ホストのエントリを作成します。この IP アドレスは、サーバーによって他のホストに提供されることはありません。宛先 MAC アドレスは FFFFFFFFFFFF、宛先 IP アドレスは 255.255.255.255、送信元 IP アドレスは 172.16.32.12、送信元 MAC アドレスは 00AA00123456 (サーバー MAC アドレス) です。

5. DHCP 否定応答メッセージ: DHCP サーバーは、構成されたスコープに従って無効な IP アドレスの要求を受信するたびに、DHCP Nak メッセージをクライアントに送信します。たとえば、サーバーに未使用の IP アドレスがない場合、またはプールが空の場合、このメッセージはサーバーからクライアントに送信されます。

6. DHCP の低下: DHCP クライアントは、提供された構成パラメータが異なるか無効であると判断した場合、DHCP 拒否メッセージをサーバーに送信します。無償の返信があった場合 ARP 任意のホストがクライアントに送信すると、クライアントは、提供された IP アドレスがすでに使用中であることを示す DHCP 拒否メッセージをサーバーに送信します。

修飾キー

7. DHCP リリース: DHCP クライアントは、DHCP リリース パケットをサーバーに送信して、IP アドレスを解放し、残りのリース時間をキャンセルします。

8. DHCP は次のことを通知します。 クライアント アドレスが IP アドレスを手動で取得した場合、クライアントは DHCP 情報を使用して、ドメイン名などの他のローカル構成パラメータを取得します。 DHCP インフォーム メッセージに応答して、DHCP サーバーは、新しい IP アドレスを割り当てることなく、クライアントに適したローカル構成で DHCP ACK メッセージを生成します。この DHCP ACK メッセージはクライアントにユニキャストされます。

注記 - サーバーが別のネットワークに存在する場合、DHCP リレー エージェントによってすべてのメッセージをユニキャストすることもできます。

DHCP の利点

  • IPアドレスを一元管理。
  • 一元化および自動化 TCP/IPの設定
  • 新しいクライアントをネットワークに簡単に追加できます。
  • IP アドレスを再利用すると、必要な IP アドレスの総数が減ります。
  • ワイヤレス ネットワーク上の別の場所に移動するポータブル デバイスなど、頻繁に更新する必要があるクライアントの IP アドレス変更を効率的に処理します。
  • 各クライアントを再構成する必要がなく、DHCP サーバー上の IP アドレス空間を簡単に再構成できます。
  • DHCP プロトコルは、ネットワーク管理者に集中領域からネットワークを構成する方法を提供します。
  • DHCP の助けを借りて、新しいユーザーの簡単な処理と IP アドレスの再利用を実現できます。

DHCP の欠点

  • IP の競合が発生する可能性があります。
  • DHCP の問題は、クライアントがあらゆるサーバーを受け入れることです。したがって、他のサーバーが近くにある場合、クライアントがそのサーバーに接続し、そのサーバーがクライアントに不正なデータを送信する可能性があります。
  • DHCP サーバーが存在しない場合、クライアントはネットワークにアクセスできません。
  • 新しいIPアドレスが割り当てられた場合、本機の名前は変更されません。

DHCP に関するよくある質問 – FAQ

DHCP に関する一般的な問題は何ですか?

DHCP サーバーが適切に設定されていない場合、IP アドレスの競合、不正な接続などの問題が発生する可能性があります。 サブネットマスク 、間違ったデフォルト ゲートウェイ 、または IP アドレス プールが不十分です。

DHCPで使用されるポートはどれですか?

DHCP は、サーバーでは UDP ポート 67 を使用し、クライアントでは UDP ポート 68 を使用します。

DHCP はどの層のプロトコルですか?

DHCP は、 アプリケーション層プロトコル。

DHCP が推奨されるのはなぜですか?

これは、静的アドレス割り当てよりも効率的な IP アドレス管理方法です。 DHCP は安定したトランスポート層プロトコルを採用しています。