DHCPとは
まず、DHCPの概要を説明します。
DHCPとは
DHCPとは、「Dynamic Host Configuration Protocol」の略で、コンピュータがネットワーク接続するために必要なIPアドレスなどの情報を自動的に割り当てるプロトコルです。
DHCPを利用して、自動的に設定できる情報には、以下の項目です。
- IPアドレス
- サブネットマスク
- デフォルトルータ
- DNS
※上記以外にも様々な情報を設定することができます。

クライアントに、自動的にIPアドレスなどのネットワークに接続に必要な情報を設定できるのは、とても便利です。数台のクライアントであれば、この割り当て作業もさほど大変な作業ではありませんが、台数が多くなると管理が大変です。
ネットワークに接続する端末が増える都度、追加するクライアント用にIPアドレスなどを割り当てなければならないからです。
それでは、クライアントを使用する利用者に自分で、設定してもらえば、よいのではないか?
そう思われるかもしれませんが、設定するネットワーク情報には、ルールがいろいろあり、例えば、IPアドレスは、重複してはならないルールがあります。そのルールを破ると、期待通りの通信を行うことができなくなってしまいます。
また、間違えて、デフォルトゲートウェイのIPアドレスがクライアントに割り与えられてしまうと、間違えて設定されたクライアントと同じネットワークに属する他のクライアントが、自分と異なるネットワークやインターネットに接続できなくなってしまいます。
ネットワークの設定には、ある程度のネットワークに関する知識が必要で、1つも間違えることもなく、全ての項目を正しく設定を行う必要があります。
たとえ、ネットワークに詳しい人ばかりだとしても、人間ですから間違えて設定してしまうこともあります。そういった意味でも、間違いなく確実にネットワークの設定を割り当てることができるDHCPは、たくさんクライアントがあるネットワークでは、重宝します。
このように、DHCPを用いることで、ネットワーク管理が容易となり、ネットワーク管理者は、例えクライアントの数が多くとも容易に一元管理することができるようになります。
クライアントの設定
DHCPによる自動的なネットワークの設定を有効にするには、クライアント側で、「自動的にIPアドレスを取得する」設定にするだけで、クライアントは自動的にIPアドレスを取得できるようになります。
例えば、WindowsXPの端末では、TCP/IPのプロパティーを自動取得にします。

上の図は、Windows XPでの設定ですが、基本的にどのOSでも、同様な設定が行えるようになっています。
Nintendo DSや3DS、PSP、PS VITAのような携帯用ゲーム機や、地上デジタルテレビなども「自動的にIPアドレスを取得する」という設定項目があります。
このように、DHCPを利用するための設定や作業は、敷居の高いものではなく、簡単に利用することができます。
DHCPの動作
ここでは、DHCPの動作の流れを説明して行きます。
DHCPの動作の流れは、下図のように行われます。

1.DHCP Discover
クライアントはブロードキャスト「255.255.255.255」で、IPアドレスを割り当てるように要求を行います。
2.DHCP Offer
この要求を、DHCPサーバは受け取り、送信元に「このIPアドレスはどうですか?」という提案(DHCP Offer)を送ります。この時、宛先MACアドレスには、送信元クライアントのMACアドレス宛てに送信します。
3.DHCP Request
クライアントは、DHCP Offerで受け取った提案で良ければ、「その情報を使わせて下さい」という申請(DHCP Request)をブロードキャストします。
4.DHCP ACK
DHCPサーバは、クライアントに承認(DHCP ACK)メッセージを送信します。
この流れを見て不思議に思うかもしれません。クライアントはDHCP Offerを受け取って、なぜ、すぐにその情報で設定しないのかということです。
これは、複数のDHCPサーバが存在している状態を想定しているからです。1つのDHCP Discoverに対して、2つ以上のDHCP Offerがあった場合に、クライアントがどれか1つを選んでDHCP Requestを送信できるようにする為です。
また、クライアントとDHCPサーバ間では、ブロードキャストによる通信が行われます。その為、ブロードキャストを遮断するルータを超えた先のネットワークにDHCPサーバがある場合は、DHCPを利用できないという制限があります。
※ルータを超えた先のDHCPサーバにアクセスするには、DHCPリレーエージェントが必要になります。通常、この機能は、ルータでサポートされています。
DHCP(リースの更新と解放)
DHCPサーバが、DHCPクライアントにIPアドレスを割り当てることをリース(貸し出し)と言います。
このリースされるIPアドレスは、DHCPサーバで定めているリース期限内だけ使用することが許されています。DHCPクライアントは、リース期限を越えて、IPアドレスを使用することは出来ません。
そこで、DHCPクライアントはリース期限を越えて、IPアドレスを使用したい場合には、リース期限の更新の要求を行います。

また、DHCPクライアントが、電源を切るなど、IPアドレスが不要になった場合には、下図のようにDHCP Releaseを行います。

Windowsの場合、リース期限の半分が過ぎた時点で、IPアドレスをリースしてもらったDHCPサーバにリース期限の更新を要求します。この更新が成功するとリース期限が延長されます。
もし、DHCPサーバがダウンしているなどの理由で更新に失敗した場合、DHCPクライアントは、さらに、リース期限の87.5%が経過した時点で、他のDHCPサーバにIPアドレスをリースしてもらう為に、DHCP Requestをブロードキャストします。
どのDHCPサーバにも更新の許可を受け取れなかった場合は、リース期間が満了するのでDHCPクライアントはIPアドレスの使用を停止するようになっています。