- 家庭やオフィスのパソコンに自動的にIPアドレスを割り当てるしくみ
- パソコンがDHCPサーバーにIPアドレスを要求し,DHCPサーバーはそれに応えてIPアドレスを与える
- ほとんどのパソコンOSはDHCPのクライアント機能を備え,DHCPサーバー機能はさまざまな機器が持つ
最近のオフィスでは,個々のユーザーが自分でパソコンに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アドレスを破棄してまた最初からやり直す。