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