ネットワークがクイズでわかる! 誰が正解?「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)。

図1 DHCPサーバを発見(DHCPDISCOVER)
次にネットワーク内のDHCPサーバが、DHCPDISCOVERを受け取ったら、利用可能なIPアドレスやリース期限、DHCPサーバのIPアドレスなどの設定情報を「DHCPOFFER」というパケットで送る。ただ、この段階でもDHCPクライアントのIPアドレスは決まっていないので、送信はブロードキャストで行なわれる。
(図2)
図2 IPアドレスを付与する(DHCPOFFER)
一方、DHCPクライアントはDHCPOFFERで設定情報を受け取っても、すぐにそれを適用はしない。まず、DHCPサーバに許可を求める「DHCPREQUEST」と呼ばれるパケットを送信するのだ。これは同じネットワーク内に複数のDHCPサーバがいた場合のことを想定しているからだ。基本的には先に到着したDHCPOFFERの設定情報を採用することが多く、利用する旨をレスポンスとして返す(図3)。

図3 使用許可をとる(DHCPREQUEST)
あとはDHCPサーバ側がDHCPACKで許可を出せば処理は完了。その後、継続してそのIPアドレスを使う場合はリース期間を更新していけばよい。一方、DHCPNAKであれば不許可になり、DHCPOFFERからやり直す(図4)。

図4 サーバの許可/不許可(DHCPACK/DHCPNAK)
これらの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」<目次>
- この連載の一覧へ