最初に,DHCP(動的ホスト構成プロトコル)を利用してIPアドレスを割り当てるプロセスについて確認しておきたい。DHCPサーバーとDHCPクライアントは,以下の手順に従ってパケットをやり取りし,最終的に割り当てるIPアドレスを決定する(図1)。

図1●DHCPでIPアドレスを割り当てる手順
DHCPメッセージをやり取りしてIPアドレスを割り当てる。
  1. クライアントはDHCPサーバーを探すためにDHCP DISCOVERパケットを送信する。
  2. DHCP DISCOVERパケットを受信したDHCPサーバーは,アドレス・プールの中からクライアントにリースするIPアドレスを1つ選択する。そしてARP(アドレス解決プロトコル)リクエストをネットワークに送信し,そのIPアドレスが使用されていないことを確認する。ARP応答が返ってこなければ,そのアドレスは使われていないことになる。
  3. リースするIPアドレスが決まったら,DHCPサーバーはそのアドレスをDHCP OFFERパケットに格納して送信する。
  4. クライアントは,提示されたIPアドレスを受け入れることを,DHCP REQUESTパケットを送信してDHCPサーバーに通知する。
  5. DHCPサーバーは,DHCP ACKパケットを返信してクライアントに承認したことを通知する。

 重要な点は,ここで紹介したプロセスがすべてブロードキャストを利用して行われることだ。言い換えれば,ルーターを介した環境では,DHCPクライアント,DHCPサーバー間でこれらのプロセスを実行できないのである。このときに利用するのがリレー・エージェントである。

 リレー・エージェントは,異なるサブネットにあるクライアントとサーバーの間でDHCP/BOOTPメッセージを転送する機能だ(図2)。リレー・エージェントは,クライアントがブロードキャストしたDHCPメッセージをユニキャストでほかのセグメントにあるDHCPサーバーに転送する。DHCPサーバーから応答を受け取ったら,それをクライアントの存在するセグメントにブロードキャストする。DHCPサーバーとの通信をユニキャストで行うため,ルーターを介した環境でもIPアドレスの割り当てプロセスを実行できる仕組みだ。

図2●リレー・エージェントを使って異なるサブネット間でDHCPを利用する仕組み
リレー・エージェントは,クライアントから受け取ったブロードキャスト・メッセージを,DHCPサーバーにユニキャストで転送する。DHCPサーバーから応答を受け取ったら,それをクライアントのあるサブネットにブロードキャストする。

 設問では,ipconfigコマンドを実行した結果,APIPA(自動プライベートIPアドレス指定)の機能によって169.254.1.200/16というIPアドレスが割り当てられていることが分かる。これは,サブネット間でDHCPのプロセスが正しく動作せず,DHCPサーバーからIPアドレスを受け取れなかったことを意味する。「169.254.x.x」というIPアドレスは,LINKLOCALアドレスと呼ばれ,外部と接続されていない単一のネットワーク・セグメントだけで利用できるアドレス空間として定義されている。セグメントを越えて通信できるようにするためには,リレー・エージェントを利用してDHCPで適切なIPアドレスを割り当てなくてはならない。

 リレー・エージェントを利用する方法は2つある。1つはリレー・エージェント機能を備えたルーターを使用する方法だ。サブネット間のルーティングを行うルーターがDHCP/BOOTPリレー・エージェント機能をサポートしている場合は,それを有効にすればよい。

 もう1つは,クライアントが存在するサブネット上に,リレー・エージェントとして機能するコンピュータを用意する方法である。Windows NT Server 4.0以降のサーバー系Windowsは,DHCPリレー・エージェント・サービスをインストールすることで,リレー・エージェントとして動作させることができる。新たにサーバーを用意する代わりに,既存のサーバーにリレー・エージェントとしての役割を兼ねさせることも可能だ。

 Windows Server 2003をDHCPリレー・エージェントとして動作させる方法は以下の通りである(図3)。

  1. [ルーティングとリモートアクセス]を開く。
  2. 画面左側のコンソール・ツリーを展開して[全般]を右クリックし,[新しいルーティングプロトコル]メニューをクリックする。
  3. 表示された[新しいルーティングプロトコル]ダイアログ・ボックスで,[DHCPリレーエージェント]-[OK]の順にクリックする。
  4. コンソール・ツリーで[DHCPリレーエージェント]を右クリックし,[プロパティ]メニューを選択する。
  5. 表示されたダイアログ・ボックスの[全般]タブで,[サーバーアドレス]にDHCPサーバーのIPアドレスを入力し,[追加]ボタンをクリックする。
図3●DHCPリレー・エージェントの設定
[ルーティングとリモートアクセス]の画面で[DHCPリレーエージェント]を有効にした後,DHCPサーバーのIPアドレスなどを設定する。

日経Windowsプロ2005年7月号掲載
藤田 将幸=グローバルナレッジネットワーク