ネットワークがクイズでわかる! 誰が正解?「TCP/IP」 第6回
DHCPの仕組みを理解しているのは誰だ!
IPアドレス未割り当ての端末とDHCPサーバの通信方法とは?
2011年08月31日 06時00分更新
クイズ「誰が正解?」の時間がやってきました。このクイズでは、ケンイチ君、いずみちゃん、竹田君の3人が私の質問に答えます。ただし、正解なのは1人だけですよ。クイズのテーマは「TCP/IP」、ネットワークの基本です。さてさて、誰が正解か当てられますか?
誰が正解?(間違いが2人いますので要注意!)
アドレス配布を自動化するDHCP
IPネットワークで通信を行なうにはIPアドレスやサブネットマスクなどの値が必要になる。しかし、1台1台重複しないようにIPアドレスを手動で設定するのはミスも起こりやすく、管理の手間もかかる。こうした背景から生まれたのが、重複しないIPアドレスを自動的に割り当てるDHCP(Dynamic Host ConfigurationProtocol )という仕組みである。
DHCPはクライアント/サーバ型のシステムであり、DHCPクライアントはOSのネットワーク機能として標準搭載されている。一方、DHCPサーバはサーバOSやルータ、スイッチなどのネットワーク機器に搭載されている。DHCPでのアドレス配布を実現するためには、まずDHCPサーバ上で配布するIPアドレスをストックしておく必要がある。
ブロードキャストを多用するIPアドレスの割り当て
では、実際のDHCPの動きを順繰りに見ていこう。
PCの起動時、DHCPのクライアントはまずDHCPサーバを探すため、所属するネットワーク上のすべてのホストにブロードキャストを実施する。ここではDHCPサーバを発見するための「DHCPDISCOVER」と呼ばれるパケットが送られる(図1)。
次にネットワーク内のDHCPサーバが、DHCPDISCOVERを受け取ったら、利用可能なIPアドレスやリース期限、DHCPサーバのIPアドレスなどの設定情報を「DHCPOFFER」というパケットで送る。ただ、この段階でもDHCPクライアントのIPアドレスは決まっていないので、送信はブロードキャストで行なわれる。
(図2)一方、DHCPクライアントはDHCPOFFERで設定情報を受け取っても、すぐにそれを適用はしない。まず、DHCPサーバに許可を求める「DHCPREQUEST」と呼ばれるパケットを送信するのだ。これは同じネットワーク内に複数のDHCPサーバがいた場合のことを想定しているからだ。基本的には先に到着したDHCPOFFERの設定情報を採用することが多く、利用する旨をレスポンスとして返す(図3)。
あとはDHCPサーバ側がDHCPACKで許可を出せば処理は完了。その後、継続してそのIPアドレスを使う場合はリース期間を更新していけばよい。一方、DHCPNAKであれば不許可になり、DHCPOFFERからやり直す(図4)。
これらのDHCPのやりとりはブロードキャストが多用される。DHCPクライアントのホストにIPアドレスがない段階では、送信元には空(0.0.0.0 )のアドレスが入れられるが、DHCPクライアントのホストのMACアドレスはDHCPサーバ側でも識別できる。そのため、DHCPサーバ側からはブロードキャストではなく、ユニキャストでDHCPOFFERなどを送信することが可能なのだ。しかし、OSによっては空(0.0.0.0)を宛先にしたパケットを送信できないため、IPアドレスが確定するまでは、ブロードキャストでやりとりする実装が多い。
ということで、ブロードキャストとユニキャストの違いは、OSやサーバの実装によるため、正誤の判定にはならない。正解は複数のDHCPサーバの存在を前提として、2回往復のやりとりを行なうとした竹田君だ。
初出時、タイトルの「DHCP」が「DCHP」になっておりましたので、お詫びし、訂正いたします。
本記事は、ネットワークマガジン2007年8月号の特集1『クイズでわかる 誰が正解?「TCP/IP」』を再編集したものです。内容は原則として掲載当時のものであり、現在とは異なる場合もあります。 |
この連載の記事
-
第8回
ネットワーク
名前解決の手法で正しいのはだれ? -
第7回
ネットワーク
スイッチのオートネゴシエーションは何をしてくれるの? -
第5回
ネットワーク
IPアドレスからMACアドレスを調べるARPはどこまで有効? -
第4回
ネットワーク
データ受信時の「ACK番号」はどう増える? -
第3回
ネットワーク
「スリーウェイハンドシェイク」の手順、わかっていますか? -
第2回
ネットワーク
「特別なIPアドレス」を正しくわかっているのは誰? -
第1回
ネットワーク
クイズのはじまりは「クラスとサブネット」 -
ネットワーク
ネットワークがクイズでわかる! 誰が正解?「TCP/IP」<目次> - この連載の一覧へ