Part2では,どうやってパソコンが設定情報を取得しているのかというDHCPの本質を確認していく。Step1:やりとりを追いかけてみよう, Step2:もらえる設定情報は何だろう,Step3:パケットの中を覗いてみよう,という3つのステップに分けて,DHCPのしくみを詳細に説明しよう。

Step1 やりとりを追いかけてみよう
四つのメッセージを交わせば設定情報がもらえる

 どんな設定情報がもらえるかという話はStep2に任せて,Step1ではDHCPのやりとりを見ていこう。

 その前に,DHCP通信のプレーヤから確認しておこう。

 登場するプレーヤは二人。IPアドレスなどの設定情報を割り当ててもらうDHCPクライアントと,設定情報を一元管理してDHCPクライアントに情報を割り当てるDHCPサーバーだ。

 この二人が通信し合うことでDHCP通信は成り立つ。当然そこには,どんな手順でどんなフォーマットのパケットをやりとりするかというプロトコルが決まっている。この決まりがDHCPである。そして,実際にこの決まりに従って動くプログラムが二人のプレーヤの正体である。

 DHCPクライアント用のプログラムは,WindowsやMacOSなど,たいていのパソコン用OSが標準で持っている(図1)。例えばWindowsでは,ネットワーク設定の画面からTCP/IPのプロパティを開き,「IPアドレスを自動的に取得する」と書かれたフィールドにチェックを付ければDHCPクライアント用のプログラムが有効になる。

図1●DHCPはどこにある?<br>IPアドレスなどの設定情報をもらうDHCPクライアントは,ほとんどのパソコンOSが備えている。一方,DHCPサーバーはサーバーOSやブロードバンド・ルーターが持っている。
図1●DHCPはどこにある?
IPアドレスなどの設定情報をもらうDHCPクライアントは,ほとんどのパソコンOSが備えている。一方,DHCPサーバーはサーバーOSやブロードバンド・ルーターが持っている。
[画像のクリックで拡大表示]

 一方のDHCPサーバー用プログラムは,WindowsやLinux(リナックス)などのサーバーOSが標準で持っている。こうしたサーバーOSは,DHCPクライアント用ソフトも持っており,二つの役割を時と場合に応じて使い分ける。また,ブロードバンド・ルーターもDHCPサーバー用ソフトが内蔵されている。家庭などでブロードバンド・ルーターにパソコンをつなぐだけでインターネットへアクセスできるのは,このDHCPサーバーのおかげである。

通信はパソコン側から始まる

 DHCP通信のプレーヤを確認したところで,実際のやりとりを順番に見ていこう。

 最初はDHCPクライアントであるパソコンから始まる。パソコンが「私にIPアドレスなどの設定情報を割り当てて下さい」といった要求するメッセージを送信するのだ。このメッセージはDHCPディスカバーと呼ばれる(図2(1))。

図2●DHCP通信は四つのメッセージのやりとりで成り立つ
図2●DHCP通信は四つのメッセージのやりとりで成り立つ
パソコンがサブネット全体に届くブロードキャストで設定情報を要求することから始まる。

 このメッセージを受け取ったDHCPサーバーは,パソコンに対して「このIPアドレスでどうですか」と提案するDHCPオファー・パケットを返信する(2)。DHCPサーバーはあらかじめ自分が割り当てられるIPアドレスを確保しているので,その中から選んで提案することになる。

 IPアドレスが提案されても,これで終わりではない。DHCPサーバーからのオファー・パケットを受信したパソコンは,DHCPサーバーから提案されたIPアドレスを実際に使いたい旨を伝える(3)。このメッセージはDHCPリクエストと呼ばれる。「リクエスト」と名が付いていることからもわかるように,こちらが正式な申請だと考えればよいだろう。

 そして最後に,このDHCPリクエストを受信したDHCPサーバーが,パソコンに対して,使用許諾にあたるDHCPアックを送る(4)。

 以上,(1)DHCPディスカバー,(2)DHCPオファー,(3)DHCPリクエスト,(4)DHCPアック――という四つのやりとりを経て,パソコンとDHCPサーバーのやりとりが完了し,パソコンはDHCPサーバーから設定情報を得る。このあとの実用編などで出てくる例外的な処理も,実はこの四つのやりとりの応用である。つまり,この四つのやりとりさえ押さえておけば,DHCP通信の知識の土台は完成だ。