Windows Server DHCPとは?

どうも、Miyaです。

パソコンやスマホなどの通信機器を扱うにあたって、必要なのがIPアドレスです。
パケットを届けるためには通信機器のIPアドレスという言わば住所が分からないと届けることが出来ません。
但し、クライアントにIPアドレスを設定させるのはちょっと敷居が高いなぁということで登場したのがDHCP(Dynamic Host Configuration Protocol)サーバーです。
DHCPを構築することによってクライアントのIPアドレスを自動配布し、ユーザーはIPアドレスを意識することなく通信することが可能となっております。

スポンサーリンク:

DHCPを利用するメリット

DHCPを使用すると、クライアント端末のネットワーク環境を自動設定することが出来ます。
逆に言えば、DHCPを利用しないとクライアント端末をネットワークに追加する度にIPアドレス、デフォルトルーターなどを手動で設定する必要があります。
また、同じネットワーク内に同じIPアドレスの重複出来ないため、人為的ミスは許されません。

一般家庭などの小規模ネットワークならまだしも、企業ネットワークとなると数千、数万の端末のネットワーク設定をする必要がありますし、何よりも管理が大変です。
そこでDHCPを利用し、適切な情報を使用してすべてのクライアント端末を構成することで、管理者の運用を楽にします。

WindowsOSでは[IPアドレスを自動的に取得する]になっていれば、DHCPサーバーによるIPアドレスの取得となっております。
DHCPとは

DHCPを利用することで軽減される管理は以下の通りになります。
DHCPとは

DHCPの仕組み

DHCPはリースと呼ばれる方法を使用して、IPアドレスを動的に割り当てています。
IPアドレスのリースには期限を設けることができ、数時間から数日間とするのが一般的です。
このリース期間が切れると、クライアントはDHCPから取得したIPアドレスを返却します。
「あれ、じゃあリース期間を過ぎるとネットワークに接続できなくなるの?」
そんなことはありません。取得したIPアドレスを返すことを想定して、事前にIPアドレスの更新要求をDHCPサーバーに投げます。

しかし、何故IPアドレスにリースに期限を設けているの?ということなんですが、IPアドレスの枯渇を防ぐためです。
IPアドレスの返却が行われないという事は、ユーザーがパソコンの電源を落としていても、IPアドレスを掴んだまま離しません。
DHCPが保有するIPアドレスの数が足らなくなった場合、新たにネットワークに端末を追加してもIPアドレスを配布することが出来なくなります。
だからって、単にリース期間を短くすればいいってことでありません。短くするにつれて、クライアントとサーバー間で通信が増えるのでパフォーマンスが低下します。
ですので、その辺りを考慮してリース期間を決定する必要があります。

IPアドレスを割り当てる仕組み

それでは、DHCPサーバーがDHCPクライアントにIPアドレスを配布する全体像を説明します。
DHCPとは

  1. DHCPクライアントは、サブネット内のコンピュータにブロードキャストします
  2. ブロードキャストを受け取ったコンピュータの中にDHCPサーバーが存在した場合は、DHCPサーバーが反応します
  3. DHCPサーバーは、リースを生成します
  4. DHCPサーバーは、生成したIPアドレスをクライアントに配布します

かみ砕いて言うと、DHCPクライアントが通信できる全てのコンピュータに対して、「DHCPサーバーはどこですか?」と問い合わせをして、それに対してDHCPサーバーが応答します。

リース生成の仕組み

では、DHCPサーバーがクライアントにIPアドレスを配布すためのリースの生成方法についてご紹介します。
実はDHCPサーバーでリースを生成する際には、クライアントといくつかの手順を踏んだうえで行われます。
これを理解しておくことで、「DHCPサーバーからIPアドレスが取得できない」なんて問題のトラブルシューティングが容易になります。

DHCPとは

  1. DHCPクライアントは、サブネット内のコンピュータに対してDHCPDISCOVERパケットをブロードキャストします。
  2. DHCPDISCOVERを受け取ったDHCPサーバーがDHCPOFFERパケットでクライアントに応答します。
  3. DHCPOFFERを受け取ったクライアントは、サーバーIDを含んだDHCPREQUESTをブロードキャストします。この時の約束事として、クライアントはDHCPOFFERを複数のDHCPサーバーから受け取る可能性がありますが、その場合は先着順となります。クライアントがDHCPREQUESTにサーバーIDを含むことによって、どのサーバーのDHCPOFFERを受け取ったかを通知します。図の場合ですと、DHCP Server01が先にDHCPOFFERで応答しています。
  4. DHCPREQUESTを受け取ったDHCPサーバーは、リースするIPアドレスとクライアント情報をDHCPデータベースに格納します。一方で、無残にもDHCPOFFERが遅れたDHCPサーバーはDHCPREQUESTに含まれるサーバーIDから「クライアントに拒否された」ということを認識します。
  5. DHCPサーバーは、クライアントに対してDHCPACKを送信し、何らかの理由でIPアドレスが提供できなくった場合、DHCPNAKを送信します。

リース更新の仕組み

序盤で説明した通り、DHCPクライアントはリースされたIPアドレスの期限が近づくとDHCPサーバに対して更新要求を投げます。
通常、DHCPクライアントはリース期間の50%に達するとリースの更新を試みます。
DHCPとは

  1. クライアントは、DHCPREQUESTをブロードキャストします。
  2. 元のIPアドレスをリースしたDHCPサーバがDHCPACKをクライアントに送り返します。

但し、クライアントが更新処理の際にDHCPサーバーと通信ができない場合、クライアントはリース期間の87.5%が経過するまで待機します。
待機して更新処理をしたにも関わらず更新に失敗する場合は、構成されているデフォルトルーターに接続し、IPアドレスを生成しようと試みます。
デフォルトルーターとの通信も失敗した場合、クライアントは新しいサブネットにいると認識し、再びDHCPDISCOVERからDHCPの検出を開始します。

おわりに

クライアントがDHCPサーバーからIPアドレスを貰えないってのは、企業に限らず、一般家庭でもよく耳にする事象です。
その時に、どのパケットで通信が途絶えているのかを素早く判断するためにも、これらを理解しておくことが重要となっております。
今回は、「DHCPとは?」という概要部分をご説明しましたが、次回はDHCPサーバーの構築や管理について触れたいと思います。

それでは、よいWindows Serverライフをっ♪

スポンサーリンク