このページの本文へ

ネットワークがクイズでわかる! 誰が正解?「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」』を再編集したものです。内容は原則として掲載当時のものであり、現在とは異なる場合もあります。

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード