DHCP実行プロセスの詳細な説明

この記事のほとんどは、以下を参照しています。

「インターネット ネットワーク プロトコル」

DHCP プロトコルの詳細な説明

DHCP の概要

DHCPと呼ばれるDynamic Host Configuration Protocol (Dynamic Host Configuration Protocol)前身は LAN ネットワーク プロトコルである BOOTP プロトコルで、UDP プロトコルを使用して動作し、IANA によって割り当てられた67 (サーバー側) と 68 (クライアント側) の2 つのポートを一律に使用します。DHCP は通常、LAN 環境で使用されます. その主な機能は、クライアントが IP アドレス、ゲートウェイ アドレス、DNS サーバー アドレスなどの情報を動的に取得し、アドレスの使用率を向上させることができるように、管理を一元化し、IP アドレスを割り当てることです。 .

簡単に言えば、その主な機能は、新しいホストがイントラネットに参加したときに、新しく追加されたイントラネット マシンに IP アドレスやその他の情報を動的に割り当てるためのプロトコルです。

さらに、DHCP は、クライアントが実行環境 PXE ( Pre-boot Execution Environment ) をプリブートするのを支援する機能も提供します。

これは DHCP が IP を割り当てるプロセスの簡単な記録です。PXE は単純なパスです。


PXE の機能としての DHCP :

ネットワーク管理者、つまり DHCP には、 IP を割り当てる機能があるだけでなく、クライアントがオペレーティング システム(PXE)を自動的にインストールできるようにする、より重要な機能もあります。

OS がインストールされていない一部の空のコンピューターでは、システムの起動時に PXE を使用して OS を初期化する必要がある場合があります。

現在、一般的なコンピュータのほとんどすべてのネットワーク カードが PXE ブートをサポートしています. PXE クライアントは、ネットワーク カードの ROM (読み取り専用メモリ) にあります. コンピュータの起動時に、BIOS が PXE クライアントをメモリに転送して実行します.
インストールが完了すると、コンピューターを再起動するように求められます。この時点で、再起動プロセス中にハード ディスクから起動するように BIOS を元に戻すだけで十分です。このようにして、インストールする必要があるオペレーティング システムは 1 つだけであることがわかります。このオペレーティング システムは、後でコンピュータを起動したときに使用されます。

BIOS 設定ページに PXE Boot to LAN の項目があり、Enabled に設定されている場合は、コンピュータがネットワークから起動し、設定ファイルとオペレーティング システム カーネルが PXE サーバーからダウンロードされて起動することを意味します。 Disabled に設定されている場合は、ローカルで起動され、BIOS が開始されることを意味します.最後に、ブート セクタを探します.オペレーティング システムがインストールされていない場合、ブート セクタは見つかりません。この時間に開始します。

PXE における DHCP の役割は、主に PXE クライアントに PXE サーバーの場所を提供することです。その後、PXE クライアントはサーバーと対話して、必要なファイルなどの情報を取得し、オペレーティング システムの初期化機能を完了します。 .. ここでは詳しく説明しませんが、大まかなフローチャートは次のとおりです。

画像

以下は、IP の DHCP 割り当ての一般的なプロセスを正式に紹介し始めます! ! !

DHCP プロトコルでは、DHCP サーバーはネットワーク管理者に似ています。共有 IP アドレスを設定するだけです。その後、新しく接続された各マシンは、DHCP プロトコルを介してこの共有 IP アドレスを適用し、IP の適用に成功すると正常に動作します。追加されたホストが使い果たされるのを待った後 (有効期限などに相当)、他のマシンで使用できるように DHCP サーバーに戻すことができます。

ワークフローを紹介する前に、IP アドレスの割り当て方法とリース テーブルを紹介しましょう。

アドレスを割り当てる方法は3 つあります。

  • 手動構成: 管理者は、特定のコンピューターごとにアドレスを指定するか、関連するコマンド (ifconfig、ip addr) を使用してアドレスを設定します。
  • 自動構成: サーバーは、ネットワークに初めて接続するコンピューターに永続的なアドレスを割り当てます. DHCP クライアントが DHCP サーバーから IP アドレスを初めて正常に割り当てられると、このアドレスを永久に使用します.
  • 動的構成: アドレスは、一定期間内にコンピュータにリースされます.クライアントが初めて DHCP サーバーから IP アドレスを割り当てられた後、クライアントはアドレスを永続的に使用しません.使用するたびに、DHCP クライアントはIP アドレスを解放し、リース期間が終了したら、顧客はリースを更新するか、アドレスを非アクティブ化する必要があります. ルーターの場合、頻繁に使用されるアドレス割り当て方法は動的構成です.

リース形態:

  • 静的リース テーブル: 静的リース ストレージ ファイルに対応し、サーバーは実行時にファイルから静的リース テーブルを読み取ります。(割り当てられた静的 IP を保存)
  • 動的リース テーブル: 定期的なストレージ ファイルに対応して、サーバーは定期的にリース テーブルをファイルに保存し、プログラムの開始時に最後に保存されたリース テーブルを読み取ります。(リース テーブルには、静的にリンクされたものを含め、現在割り当てられているすべてのリースが記録されます)。(割り当てられた動的 IP を保存します)
  • DHCP サーバーは常に要求を受動的に受け入れる状態にあり、クライアントからの要求があると、サーバーはクライアントの現在の状態とクライアントの情報を読み取り、静的リース テーブルと動的リース テーブルを検索します。対応するテーブル エントリを検索し、クライアントのステータスに応じてさまざまな応答を実行します。
  • クライアントの最初の要求を受信すると、DHCP サーバーは最初に静的リース テーブルを検索します。要求されたテーブル エントリがある場合は、クライアントの静的 IP アドレスを返します。それ以外の場合は、IP アドレス プールから使用可能な IP を選択してクライアントに割り当てます。動的データベースに情報を追加します。また、サーバーは定期的にリース テーブルを更新してファイル アーカイブに書き込みますが、このプロセス中に動的リース テーブルのリース期間をチェックします。

DHCP の一般的な実行プロセス

DHCP ワークフローは、次の 4 つのステップに大まかに分けられます。

  • 新しいホストが DHCP サーバーから IP アドレスを申請します (DHCP DIScover)
  • DHCP サーバーは、割り当てられた IP を新しいホストに送信します (DHCP オファー)
  • 新しいホストは DHCP 要求ブロードキャスト パケットを送信し、すべての DHCP サーバーに IP およびその他の情報 (DHCP 要求) を受け入れるサーバーを通知します。
  • 対象のDHCPサーバーは、DHCP ACKメッセージ確認パケットをブロードキャストして、ネットワーク内のすべてのホストに、適用されたIPアドレスが正常に使用できることを通知します(DHCP ACK)。

新しいホストは、DHCP サーバーから IP アドレスを申請します

ホストがネットワークに新しく参加するとき、ホストは自身の MAC アドレスしか知りません。ネットワーク内の他のホストに自分がやってくることを伝え、対応する IP やその他の情報を申請する必要があります. この手順は、DHCP Discoverと呼ばれることがよくあります.

新しいホストは、IP アドレス 0.0.0.0 を使用してブロードキャスト パケットを送信し、独自の MAC アドレスを提供し、新しいホストであることをすべてのホストに伝え、IP アドレスが必要になり、DHCP サーバーに IP の割り当てを要求します。

このブロードキャスト パケットは UDP をカプセル化し、UDP は BOOTP をカプセル化します。実際、DHCP は BOOTP の拡張バージョンですが、パケットをキャプチャする場合、表示される名前は依然として BOOTP プロトコルです。形式は次のとおりです。

画像

DHCP サーバーは、割り当てられた IP を新しいホストに送信します

DHCP サーバーは IP 管理者に相当します. 新しいホストが要求を送信した後、すぐに IP を受信して​​割り当てることができます (貸し出されていないアドレスから最初の空いている IP が選択されます). このプロセスは、DHCP オファーと呼ばれます同時に、DHCP サーバーは、この IP アドレスを他の DHCP クライアントに割り当てないように、このクライアントに提供された IP アドレスを予約します。

DHCP サーバーはどのように新しいホストを決定しますか?

DHCP サーバーは、MAC アドレスの一意性を使用して、要求を送信しているホストが新しいホストであることを判別します。

DHCP オファーの形式は次のようになり、新規参入者に割り当てられたアドレスが含まれます。

画像

上の図からわかるように、DHCP サーバーはブロードキャスト パケットも送信します。これは、新しいホストの MAC は確認されますが、対応する IP アドレスが確認できないため、新しいホストはブロードキャスト パケットを介してのみ受け入れることができるためです。

DHCP サーバーは、IP の割り当てに加えて、サブネット マスク、ゲートウェイ、IPD アドレスのリース期間などの情報も割り当てます。

新しいホストは DHCP 要求ブロードキャスト パケットを送信して、他の DHCP サーバーに通知します。

最初のステップはデータ パケットをブロードキャストすることであるため、このネットワークに複数の DHCP サーバーがある場合、多くの IP アドレスに適用される可能性があります。このとき、一定のルールに従って選択し、他の DHCP サーバーに通知する必要があります。

通常、新しいホストは最初の DHCP オファー、つまり最初に到着したオファーを選択します。次に、DHCP 要求ブロードキャスト パケットがネットワークに送信されます。これには、==クライアントの MAC アドレス、受け入れられたリースの IP アドレス、このリースを提供した DHCP サーバーのアドレス== などが含まれており、次のことを伝えます。この時点で、他の DHCP サーバーは、次の IP リース リクエスタにそれらを提供するために、提供された IP アドレスを取り消します。

画像

この時点では、DHCP サーバーからの最終確認が得られていないため、クライアントは送信元 IP アドレスとして 0.0.0.0、宛先アドレスとして 255.255.255.255 を使用してブロードキャストを送信します。BOOTP で、特定の DHCP サーバーによって割り当てられた IP を受け入れます。

ターゲット DHCP サーバーが DHCP ACK メッセージ確認パケットをブロードキャストする

DHCP サーバーがクライアントの DHCP 要求を受信すると、DHCP ACK メッセージ パケットをブロードキャストしてクライアントに返し、クライアントの選択が受け入れられたことを示し、この IP アドレスの合法的なリース情報とその他の構成情報をブロードキャスト パケットがクライアントに送信されます。

画像

  • クライアントは DHCP ack ブロードキャストを受信した後、この IP アドレスに対する 3 つの ARP 解決要求をネットワークに送信して競合検出を実行し、ネットワーク上の他のマシンがこの IP アドレスを使用しているかどうかを確認します。クライアントは DHCP 拒否パケットを DHCP サーバーに送信し、IP アドレスのリースを拒否して、DHCP 検出メッセージを再送信します。この時点で、DHCP サーバー管理コンソールでは、IP アドレスは BAD_ADDRESS として表示されます。
  • ネットワーク上の他のホストがこの IP アドレスを使用していない場合、クライアントの TCP/IP はリースで提供された IP アドレスを使用して初期化を完了し、他のネットワークのホストと通信できるようにします。

このとき、ネットワーク内の他のホストも、このデータ パケットを通じて新しいホストの関連情報を知ることができます。

再ログイン後、新しく追加されたホストは再実行する必要はありませんが、以前に適用された IP を使用して DHCP 要求を直接送信します。DHCP サーバーはそれを受信すると、現在の IP がまだ使用可能 (他のホストに割り当てられていない) かどうかを判断し、使用可能な場合は ACK メッセージを返します。利用できない場合は、DHCP NAK メッセージ セグメントを返して、新しく追加されたホストに DHCP Discover と後続のプロセスを再実行する必要があることを通知します。

DHCP パケットの種類

実際、上記の 4 つの手順は、4 つのメッセージ タイプに対応しています。

また、上記は実際には正常な作業中のプロセスであり、異常なプロセスがあるに違いないこともわかります。たとえば、割り当てられた IP アドレスの競合などです。次に、処理する対応するメッセージが存在する必要があります。

DHCP には合計 8 つのメッセージ タイプがあります。

メッセージタイプ 例証する
ディスカバー(0x01) DHCP クライアントは、IP アドレスを要求するときに DHCP サーバーの場所を認識していないため、ローカル ネットワークで Discover 要求メッセージをブロードキャストして、ネットワーク上の DHCP サーバーを検出します。Discover メッセージを受信したすべての DHCP サーバーは応答メッセージを送信し、DHCP クライアントはこのメッセージに基づいてネットワーク内に存在する DHCP サーバーの場所を知ることができます。
オファー(0x02) DHCP サーバーは Discover メッセージを受信すると、構成済みのアドレス プールで適切な IP アドレスを検索し、対応するリース期間とその他の構成情報 (ゲートウェイ、DNS サーバーなど) を追加して、Offer メッセージを作成します。 DHCP クライアントに送信され、サーバーが IP アドレスを提供できることをユーザーに通知します。しかし、このメッセージは DHCP クライアントに IP アドレスを提供できることを伝えるだけであり、最後にクライアントは ARP を使用して IP アドレスが重複しているかどうかを検出する必要があります。
リクエスト(0x03) DHCP クライアントは多数のオファー要求メッセージを受信する可能性があるため、これらの応答のいずれかを選択する必要があります。通常、最初のオファー応答メッセージのサーバーがそれ自体のターゲット サーバーとして選択され、ブロードキャスト要求メッセージがサーバーに送信され、選択されたサーバーに割り当てられた IP アドレスを取得することを希望することが通知されます。さらに、IP アドレスの取得に成功した後、DHCP クライアントはユニキャスト Request メッセージを DHCP サーバーに送信し、アドレスのリース期間が 50% に達したときにリースの更新を要求します. 87.5% の確率で、ブロードキャスト Request 要求リースの更新を要求するメッセージが再度送信されます
ACK(0x05) DHCP サーバーは、要求メッセージを受信した後、要求メッセージで運ばれたユーザー MAC に従って、対応するリース レコードがあるかどうかを検索し、存在する場合は、ACK 応答メッセージを送信して、割り当てられた IP アドレスを使用できることをユーザーに通知します。使用済み。
ウォント(0x06) DHCP サーバーが要求メッセージを受信した後、対応するリース レコードを見つけられない場合、または何らかの理由で IP アドレスを正常に割り当てることができない場合、適切な IP アドレスを取得できないことをユーザーに通知するために、DHCP クライアントに NAK 応答メッセージを送信します。割り当てられます。
リリース(0x07) DHCP クライアントが割り当てられた IP アドレスを使用する必要がなくなった場合 (通常、クライアントがシャットダウンまたはオフラインになった場合など)、DHCP サーバーに RELEASE 要求メッセージを積極的に送信して、ユーザーが不要になったことをサーバーに通知します。 IP アドレスを割り当て、DHCP サーバーに対応する IP アドレスの解放を要求します。
辞退(0x04) DHCP クライアントは、DHCP サーバーから ACK 応答メッセージを受信した後、サーバーによって割り当てられたアドレスが競合している、またはアドレス競合の検出によって他の理由で使用できないことがわかった場合、拒否要求メッセージを DHCP サーバーに送信して、割り当てられた IP アドレスが使用できないことをサーバーに通知し、新しい IP アドレスを取得します。
nフォーム(0x08) DHCP クライアントが DHCP サーバーからより詳細な構成情報を取得する必要がある場合、通知要求メッセージを DHCP サーバーに送信します。メッセージを受信した後、DHCP サーバーはリースに従って対応する構成情報を検索し、送信します。 DHCP クライアントは ACK 応答メッセージを送信します。今は基本駄目。

IPアドレスの取り消しと更新

IP アドレスのリサイクル: 通常、DHCP によって適用されるアドレスには時間制限があります。つまり、割り当てられた IP アドレスは、制限時間が経過するとリサイクルされます。

IP アドレスの更新: DHCP プロトコルでは、リース期間が 50% に達すると、クライアントは IP アドレスを提供した DHCP サーバーに DHCP 要求メッセージ パケットを直接送信します。クライアント コンピューターは、サーバーから応答された DHCP ACK メッセージ パケットを受信すると、新しいリース期間と、パケットで提供されるその他の更新された TCP/IP パラメーターに従って構成を更新します。このようにして、IP リースの更新が完了します。

リースの 50% が経過したときに更新がない場合、クライアントは、リースの 87.5% が経過したときに、IP アドレスを提供した DHCP に再度接続します。それでも失敗する場合、クライアントは IP アドレスを放棄し、リースが 100% になったときに再度適用する必要があります。この時点で使用可能な DHCP がない場合、クライアントは以前に取得したサブネット情報に従って関連するアドレスをランダムに取得し、5 分ごとに再試行します。

おすすめ

転載: blog.csdn.net/qq_53578500/article/details/126666506