Part3では,Case1:貸し出し期限が切れたら,Case2:サーバーが複数あったら,Case3:ルーターが途中にあったら,Case4:サーバーがダウンしていたら---という,実際の現場で使ったときに起こる典型的な4つのケースを想定して,そのときにDHCPがどう動くのかを見ていこう。

Case1 貸し出し期限が切れたら
期限の半分になったらみずから期間延長を要求

 基本編Step2でも少し触れたが,DHCPで割り当てられた設定情報にはリース(貸し出し)期限がついてくる。つまり,パソコンがもらったIPアドレスなどの情報は,いつかは返さなければならない。でも,サーバー・マシンなどは,ずっと電源を入れっぱなしにしていたりする。こうしたケースではDHCPを利用できないのだろうか。

何度でも延長できる

 本当は,このような心配はいらない。DHCPでは,リース期限が切れるまでに,期限を延長するしくみがあるからだ。設定情報を割り当てられたパソコンは,リース期限の残り半分を切ると,自動的にDHCPサーバーにリース期限の延長を要求する(図1)。

図1●割り当てられた設定情報はいつまで使えるのか<br>割り当てられたIPアドレスなどの設定情報にはリース期限が付いているが,この期限が切れるまでにパソコンは更新手続きをすれば,いくらでも延長できる。
図1●割り当てられた設定情報はいつまで使えるのか
割り当てられたIPアドレスなどの設定情報にはリース期限が付いているが,この期限が切れるまでにパソコンは更新手続きをすれば,いくらでも延長できる。
[画像のクリックで拡大表示]

 延長要求といっても,特別なパケットをDHCPサーバーへ送るわけではない。基本編で見てきたやりとりをそのまま使う。具体的には,パソコンがDHCPリクエスト・パケットをDHCPサーバーに送る。これだけである。

 この延長要求は,パソコンが起動している限り,何度でもできる。このため,サーバー・マシンのように電源を入れっぱなしにしているコンピュータでも,ずっと同じIPアドレスを使い続けることができる。

 ただ,延長要求に対してDHCPサーバーから応答(DHCPアック)がないと,期限延長要求は失敗に終わる。この場合,パソコンはリース期限が切れるまで定期的に何度も延長要求を繰り返す。

 こうして何度も延長要求を繰り返し,それでもなおDHCPサーバーから応答がないままリース期限が切れてしまったら,パソコンは使っていたIPアドレスなどの設定情報を無効にする。

なぜ延長要求だとわかるのか

 通常のDHCPリクエスト・パケットなのに,なぜDHCPサーバーは,期限延長要求だと判断できるのだろうか。

 実は,DHCPサーバーは最初にパソコンに設定情報を割り当てたとき,割り当てたIPアドレスなどの情報とパソコンのMACアドレスの対応関係を記録する。このため,DHCPサーバーがリクエスト・パケットを受信すると,すでに割り当て済みのパソコンからのリクエストだとがわかり,期限延長要求だと判断する。

 ちなみに,ここでのDHCPリクエストはユニキャストになる。パソコンが最初に設定情報をもらったときに,DHCPサーバーのIPアドレスを覚えているからだ。RFCでは,リース期限の半分が過ぎた時点でDHCPサーバーへユニキャストで延長要求を送り,リース期限の87.5%を過ぎたらブロードキャストにすることを推奨している。

Case2 サーバーが複数あったら
パソコンからのメッセージはどのサーバーにも届くから大丈夫

 DHCPサーバーがダウンしたら,設定情報がもらえないので,パソコンはLANにつながらなくなる。そこで,DHCPでは複数のDHCPサーバーを同じネットワークにおくことも想定している。

サーバー1台のときとまったく同じ

 基本編Step1で見てきたDHCPのやりとりに沿って,2台のDHCPサーバーがあったらどうなるかを見てみよう。

 パソコンが最初に出すDHCPディスカバーはブロードキャストだから,2台のDHCPサーバーのどちらにも届く(図2(1))。すると,どちらのDHCPサーバーも,パソコンにオファー・パケットを送ってIPアドレスなどを提案する(2)。

図2●DHCPサーバーが複数あってもDHCP通信は1台のときと同じ<br>パソコンからのメッセージはブロードキャストなので,DHCPサーバーが複数あっても問題は起こらない。
図2●DHCPサーバーが複数あってもDHCP通信は1台のときと同じ
パソコンからのメッセージはブロードキャストなので,DHCPサーバーが複数あっても問題は起こらない。
[画像のクリックで拡大表示]

 これに対して,パソコンは採用する情報を一つだけ選ぶ。どのように選ぶかは,OSの種類などによって違うが,Windowsの場合は先に受信した提案を優先する。そして,本申請にあたるDHCPリクエスト・パケットをブロードキャストで送信する(3)。ここもブロードキャストなので,2台のDHCPサーバーのどちらにも届く。

 このリクエスト・パケットには,パソコンが選んだDHCPサーバーのIPアドレスと,そのDHCPサーバーに提案されたIPアドレスが書き込まれている。だから,DHCPサーバーは自分の提案が採用されたかどうかがわかる。

 したがって,このリクエスト・パケットを受け取ったDHCPサーバーのうち,自分が提案した情報が採用された方は,DHCPアック・パケットを出して,提案した情報を確定させる。

 一方,採用されなかったDHCPサーバーは,仮に確保していたIPアドレスなどの情報をほかに割り当てられるようにする。

 つまり,パソコンからのパケットはブロードキャストなので,どのDHCPサーバーも受信できるため,DHCPサーバーが複数あってもやりとり自体は1台のときと同じで済む。