この特集のトップページへ
Chapter 2:Windows NT 4.0のTCP/IPサービス 〜WINSとDHCP〜

2.6.1 DHCPの動作

 DHCPは,IPアドレスを含めたTCP/IPの構成パラメータをDHCPクライアントに渡すためのプロトコルである。そのため,クライアントはIPアドレスを所持していない状態で通信を始めなければならない。通常,DHCPクライアントは次のような手順でIPアドレスとオプションパラメータを受け取る。

Fig.2-6 DHCPの動作
fig.2-6

 DHCPクライアントは,起動すると,DHCPサーバーを探索するためにDHCPDISCOVERパケットをブロードキャストする。DHCPDISCOVERパケットはUDPで送出され,送信先のETHERNETアドレスはFFFFFFFFFFFF,送信元のIPアドレスは0.0.0.0,送信元のポート番号は68番,送信先のIPアドレスは255.255.255.255,送信先のポート番号は67番となっている。つまりDHCPは,UDPであり,クライアントは68番ポート,サーバーは67番ポートを用いる。送信先のIPアドレスを見るとわかるように,リミテッドブロードキャストを用いるため,ルータを越えてDHCPを利用するためには,DHCPの要求をDHCPサーバーに転送するDHCP Relay Agentが必要となる。DHCP Relay Agentは通常ルータでサポートされるが,Windows NT Serverを利用することもできる。

  1. DHCPサーバーは,DHCPDISCOVERパケットを受け取ると,送信元がDHCPサーバーで,送信先が255.255.255.255のDHCPOFFERパケットを返す。送信先のETHERNETアドレスは,クライアントのMACアドレスになっている。DHCPOFFERパケットには,クライアントが使用すべきIPアドレスと,DHCPのオプションパラメータ(サブネットマスクやDNSサーバーのIPアドレスなど)が含まれている。
     
  2. DHCPOFFERパケットを受け取ったDHCPクライアントは,使用するIPアドレスを選択し,DHCPREQUESTパケットを返す。この時点では,まだ送信元のIPアドレスは0.0.0.0である。
     
  3. DHCPサーバーは,DHCPREQUESTパケットを受け取ると,DHCPACKパケットを返す。DHCPクライアントは,DHCPACKパケットを受信した時点で,DHCPサーバーから提供されたIPアドレスとオプションパラメータに基づいてTCP/IPを構成し,通信可能な状態となる。

 DHCPクライアントがWindowsである場合,以前にDHCPでIPアドレスを取得したことがあれば,そのIPアドレスを再取得するべくDHCPサーバーに要求する。以前に取得したIPアドレスはレジストリに格納されている。この要求は,DHCPREQUESTパケットで行われる。したがって,Windowsクライアントであれば,DHCPを使用していても,同じIPアドレスを使用し続ける可能性が高くなる。なお,そのIPアドレスがすでに使用されている場合は,DHCPサーバーから別のIPアドレスを使うように要請される。

 DHCPサーバーがDHCPクライアントにIPアドレスを割り当てることを,DHCPでは「リース(貸し出し)」と呼ぶ。DHCPサーバーからリースされたIPアドレスは,DHCPサーバーで定められたリース期限の範囲内でのみ使用することができる。DHCPクライアントは,リース期間内であれば,起動時にDHCPサーバーにアクセスできなかったとしても,以前にリースされたIPアドレスを使用して通信することができる。

 DHCPクライアントは,リース期限を越えて,勝手にIPアドレスを使用してはならない。したがって,DHCPクライアントがリース期限を越えてIPアドレスを使用するためには,リース期限を更新しなければならない。Windowsの場合,リース期限の半分が過ぎた時点で,IPアドレスをリースしたDHCPサーバーにリース期限の更新を求める。このとき更新に成功すると,リース期限は延長される。しかし,DHCPサーバーがダウンしているなどの理由で更新に失敗すると,リース期限の87.5%が経過した時点で,ほかのDHCPサーバーへIPアドレスのリース要求を送信するため,ブロードキャストを開始する。この要求は新規にIPアドレスをリースしてもらうための要求である。どのDHCPサーバーにもアクセスできず,リース期限が経過してしまうと,DHCPクライアントはIPアドレスの使用を中止する。IPアドレスの使用を中止すると,通信中のセッションがあっても,それらはすべて中止される。

 DHCPクライアントは,正常に終了すると,IPアドレスを返却するためにDHCPサーバーに対してDHCPRELEASEパケットを送信する※注。これにより,DHCPサーバーはそのIPアドレスを別のDHCPクライアントにリースできるようになる。DHCPRELEASEパケットが送信されなくても,リース期限内に更新要求がなければ,リース期限の経過に伴ってIPアドレスは解放され,別のDHCPクライアントにリースできるようになる。

※注)Windows 98/Me/2000ともにデフォルトの設定では,OSの終了時にはリースされたIPアドレスを解放しない。DHCPクライアントがWindows 2000の場合は,Windows 2000 DHCPサーバーのオプション設定で終了時にDHCPRELEASEパケットを送信するように設定できる。具体的には,[002 Microsoft DHCPリースのシャットダウン時の解放オプション]を使用する。Windows 98/Meの場合は,レジストリを変更することでこのパケットを送信可能になる。設定方法は,米 Microsoft社が提供する下記サポート技術情報を参照してほしい。

How to Cause Windows 98 to Release DHCP Lease Information at Shutdown(Q217035)

PREV 13/16 NEXT