• 家庭やオフィスのパソコンに自動的にIPアドレスを割り当てるしくみ
  • パソコンがDHCPサーバーにIPアドレスを要求し,DHCPサーバーはそれに応えてIPアドレスを与える
  • ほとんどのパソコンOSはDHCPのクライアント機能を備え,DHCPサーバー機能はさまざまな機器が持つ
写真2●DHCPはパソコンとサーバーの両方にある
DHCPクライアントはほとんどのパソコンOSが持っている。一方,DHCPサーバーは,サーバーOSなどが備えている。
図2●DHCPでパソコンがIPアドレスをもらうしくみ
パソコンは,(1)~(4)のDHCPのやりとりでサーバーからIPアドレスを割り当ててもらう。DHCP通信は(4)までだが,パソコンは割り当てられたIPアドレスがほかのパソコンでも使われていないかどうかチェックしてから,そのIPアドレスを利用した通信を始める。

 最近のオフィスでは,個々のユーザーが自分でパソコンにIPアドレスを手入力することはあまりない。自宅から持ってきたノート・パソコンを社内LANにつなぐだけで,インターネットにアクセスできるようになる。

 こうしたことを可能にしているのがDHCP注4)と呼ぶしくみである。これは,パソコンのIPアドレスを自動的に設定するための技術だ。

注4)DHCP dynamic host configulation protocolの略。RFC2131とRFC2132で提案されている。

パソコンに特別なソフトは要らない

 ユーザーがDHCPを利用するのはいたって簡単。特別なソフトをインストールするといった手間はいらない。WindowsやMac OSなどのパソコンOSは初めからDHCPの機能を備えており,設定をいじるだけで利用できるようになる(写真2[拡大表示])。

 ただし,DHCPを使えるようにするには一つ条件がある。それは,IPアドレス情報を各パソコンに配布するDHCPサーバーを用意することだ。DHCPサーバーはWindows2000 ServerといったサーバーOSが備えているほか,最近のブロードバンド・ルーターの多くが標準機能として内蔵している。

 DHCPのしくみを使えば,一般のユーザーはIPアドレスを設定する手間が省ける。管理者にとってもDHCPサーバーを見ているだけでIPアドレスを一元管理できるというメリットがある。

パソコンはブロードキャストで要求

 では,DHCPはどのようにパソコンにIPアドレスを割り当てているのだろうか。しくみを見てみよう(図2[拡大表示])。

 まず,パソコンはDHCPサーバーにIPアドレスを割り当ててもらうように要求メッセージ「DHCPディスカバー」を出す。この段階では通信相手のDHCPサーバーはもとより,自分自身のIPアドレスもわからない。そこでパソコンは,LANセグメント(サブネット)全体にパケットを送れるブロードキャストでメッセージを伝える注5)

注5)ブロードキャストでメッセージを伝える ブロードキャストが届かない別のサブネットにDHCPサーバーがある場合でも,ルーターの「リレー・エージェント」と呼ぶ機能を使えばDHCPを利用できる。リレー・エージェントはパソコンがブロードキャストしたDHCPリクエストを別のセグメントにあるDHCPサーバーに中継するために,ユニキャストで送る。この機能はたいていのローカル・ルーターが備えている。

 DHCPディスカバーを受け取ったDHCPサーバーは,割り当てる候補のIPアドレスを返信する。これはいわば“提案”といったもので,「DHCPオファー」と呼ばれている。DHCPサーバーはすでにパソコンのLAN上のアドレス(MAC(マック)アドレス)を知っているので,DHCPオファーはブロードキャストではなくそのMACアドレスにあててユニキャストで送る。

 このとき,DHCPサーバーが返信するのはIPアドレスだけではない。サブネット・マスク注6),DNSサーバーやデフォルト・ゲートウエイ注7)のIPアドレスなど,通信に必要なほかの設定値もいっしょに送るのである。

注6)サブネット・マスク LANのアドレス範囲を示すのに使うマスク値。
注7)デフォルト・ゲートウエイ 別のサブネットにあるコンピュータと通信する際に使うルーターのこと。

 DHCPサーバーからIPアドレスなどの“提案”を受け取ったパソコンは,「DHCPリクエスト」というメッセージで提案を受け入れると同時に正式にDHCPサーバーに申し込む。DHCPリクエストはブロードキャストで送られる。これは,複数のDHCPサーバーがある場合も考慮してのことだ。

 DHCPリクエストを受け取ったDHCPサーバーのうち,自分の提案したIPアドレスをリクエストされたサーバーは「DHCPアック」でそれを承認し,IPアドレスが確定する。なお,自分の提案したIPアドレスに対するDHCPリクエストが戻ってこなかったDHCPサーバーは,そのIPアドレスを再び割り当てられる状態に戻す。

最後に重複していないか確認

 しかし,これでパソコンがそのIPアドレスを問題なく使えるようになったわけではない。ほかのパソコンが同じIPアドレスを使っているかもしれないからだ。

 そこでIPアドレスの確認を行う。ここで使うのがARP(アープ)と呼ぶプロトコル。これはあるIPアドレスを持つパソコンのMACアドレスを見つけるためのしくみ。本来は,LAN上の通信相手を見つけるためのものだが,これをIPアドレスの重複をチェックするために使う。

 DHCPでIPアドレスをもらったばかりのパソコンは,まずARP要求をブロードキャストする。もし応答が返ってきたら,それは同じIPアドレスを持つパソコンがすでにあるということになる。その場合,パソコンはDHCPサーバーからもらったIPアドレスを破棄してまた最初からやり直す。