ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
IPネットワークにおいて、IPv4アドレスの動的割り当てを含む各種のネットワークに関する設定を自動で行なうための通信プロトコル。
IPv4用がRFC 2131とRFC 2132で定義される。ポート番号は、クライアントには67/udp、サーバーには68/udpが用いられる。IPv6用のDHCPv6は異なるプロトコルである。
このDHCP以前にも、動的にホストの設定(IPアドレスを含む)を解決するためのプロトコルが存在した。
IPアドレスと追加の情報を得られる関連するプロトコルに、次のようなものがある。
例えば、RARPを用いると、MACアドレスからIPアドレスを得ることができる。ICMPでも、IPアドレスこそ得られないものの「Redirect」(type=5)メッセージでルーターの存在を、「Address Mask Request/Reply」(type=17/18)メッセージでネットワークマスクを、「Information Request/Reply」(type=15/16)メッセージでその他の情報を、それぞれ通知可能である。
そしてBOOTPはコンフィグレーション情報の転送機構を提供した。IPアドレスに加え、様々な情報を通知できる。
そしてDHCPは、このうち拡張性が高いBOOTPの拡張として作られたものの一つである。
ブロードキャストで通信するため、DHCPサーバーとDHCPクライアントは同一ネットワークになければならない。ただし、ルーターにDHCPリレーの機能を設定すると、別ネットワークのクライアントに対してIPアドレスを与えることができる。
複数のDHCPサーバーを置くことはできるが、それぞれのサーバーがリースするIPアドレスの範囲が重なってはならない。そのため、DHCPサーバーの冗長化は困難である。ただ、市販のソフトでは、冗長化を実現しているものもある。
VLANトランキングの状態でDHCPサーバーに接続すると、物理的には1台のDHCPサーバーで、複数のVLANでDHCP運用が可能である。
DHCPはBOOTPの拡張であり、メッセージフォーマット等はほぼそのままである。BOOTPクライアントは、一切の変更無くDHCPサーバーと相互運用が可能である。
先頭より順番に、次の情報が格納される。
DHCPにおいては、snameやfileなどの巨大なフィールドは殆ど意味を成さない。しかしBOOTPの拡張という立場を取っているため、DHCPはパケットが大きい。
DHCPはBOOTPとの互換のため、必要な情報は全てオプションによって渡される。
BOOTPではベンダー拡張という扱いで、オプションは補足程度の扱いでしかないためオプション番号欄は8ビットしかない。DHCPで多用したために使える番号の残りも少なくなっている。これを教訓に、DHCPv6はオプション番号欄を16ビットとした。従ってDHCPとDHCPv6ではオプション番号に互換性がない。
オプション番号の浪費を防ぐため、オプション番号を一つだけ確保してオプション内をサブオプションで区切る実装もあるが、データ長も8ビットしかないので多くのデータをまとめることはできない。
以下は、BOOTP用のものも含めて全て記載する。RFC番号の記載がないものは全てRFC 2132で規定されている。
まず、コンフィギュレーション設定要求を開始し、DHCPサーバーより返信を待つ。
情報が届いたら、コンフィグレーション送付を開始し、DHCPサーバーよりACKを待つ。
DHCPサーバーよりACKが届いたら手順終了である。
DHCPDISCOVERメッセージを受け取ったDHCPサーバーは、応答に対してDHCPOFFERメッセージを返信する。
そしてクライアントは、応答したDHCPサーバーからDHCPOFFERメッセージを受け取る。DHCPOFFERメッセージには、DHCPサーバーからの「提案」が書かれている。まだ提案の段階であり、決定ではない。
DHCPOFFERメッセージには、使用可能なIPアドレスに加え、要求した様々な情報がオプションとして含まれる。
ネットワーク内には複数のDHCPサーバーがあって良い。
複数のDHCPサーバーが存在する場合、DHCPクライアントは幾つかのサーバーからDHCPOFFERメッセージを受けとる可能性があり、DHCPクライアントは受信したDHCPOFFERの中から一つを選ぶことになる。
サーバーを選択した場合、クライアントはその提案を受け入れ、選んだものをDHCPREQUESTメッセージで公知し、どのDHCPサーバーからの提案を選択したのかを通知する。
DHCPREQUESTは、受け入れたIPアドレス→DHCPサーバーのIPアドレスの通信とする。
DHCPREQUESTメッセージを受け取ったDHCPサーバーのうち、選択されたDHCPサーバーは、そのIPアドレスをクライアントへリース(貸し出し)する。選択されなかったDHCPサーバーは、提案したアドレスを、元のように使用可能に戻す。
選択されたDHCPサーバーは、クライアントに対して肯定応答(DHCPACK)を返信する。この応答には、要求した内容やリリース時間など追加の構成情報も含まれている。クライアントは、このACKメッセージの内容を使うことになる。
この手順をもって、クライアントはIPアドレスと構成パラメーターを有効期限が切れるまで使用できるようになる。
クライアントは、リース期間の半分を経過した時点で、必要に応じてリース期間の更新を始める。
クライアントはDHCPREQUESTメッセージをDHCPサーバーに送信し、更新の要求を行なう。
DHCPサーバーは、この要求を受け入れた場合はクライアントにDHCPACKメッセージを返信する。要求に応じられない場合は無視をする。
DHCPサーバーが要求に応答しない場合、クライアントは一定期間ごとにDHCPREQUESTを送信する。それでも応答がなく、リースの有効期限が切れてしまった場合、クライアントは使用していたIPアドレスを放棄しなければならない。更に通信したい場合には、DHCPDISCOVERの送信からやり直しとなる。
クライアントは、リース期間中においてIPアドレスが不要になった場合、DHCPRELEASEメッセージをDHCPサーバーに送信することで、リースを終了する。
サーバーは、そのクライアントのIPアドレスを再び使用可能なアドレスとして管理下に置き、次回の要求にそなえる。
なお、DHCPRELEASEを送信した時点でそのクライアントにはIPアドレスが無くなることになるため、このDHCPRELEASEメッセージに対しDHCPサーバーは応答をしない(できない)。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます