今回取り上げるDHCPは、クライアントにIPアドレスを動的に割り当てるプロトコルだ。このため、IPアドレスが突然変わったり、再起動したら別のIPアドレスが割り当てられたりすると思われがちだが、実際は同じIPアドレスを使い続けることが多い。Wiresharkを使って確認しよう。

使用期限を延長する

 DHCPでは、IPアドレスやデフォルトゲートウエイなどのネットワーク情報をサーバーが管理する。DHCPを利用するクライアントがサーバーにIPアドレスなどの情報を要求すると、原則として未使用のIPアドレスを割り当てる。この方法とは別に、クライアントが同じIPアドレスを使い続けられるようにする仕組みが二つあるのだ。

 一つは、クライアントが割り当てられたIPアドレスの使用期限が半分になると、期限延長を延長する仕組み(図1(1))。

 もう一つは、一度ネットワークから外れたクライアントが再接続したときに、以前使っていたIPアドレスの使用を要求する仕組みである(同(2))。

図1●DHCPでは、以前使っていたIPアドレスを使い続けようとする
図1●DHCPでは、以前使っていたIPアドレスを使い続けようとする
DHCPを使ったネットワークシステムでは、DHCPサーバーがネットワーク情報を動的に割り当てる。しかし実際は、クライアントがリースの有効期限が切れる前に更新要求を出して期限を延長したり、期限切れであっても以前使っていたIPアドレスの使用を要求したりしてなるべく同じIPアドレスを使い続けようとする。
[画像のクリックで拡大表示]

 IPアドレスを要求するパソコンで、パケットキャプチャーを実行した(図2)。表示フィルタに「bootp」と入力して、DHCPのパケットに絞り込む。最初に送信したDHCPパケットを見ると、以前使っていたIPアドレスを指定したDHCP Requestを、ブロードキャスト送信している。このDHCP Requestを受信したサーバーが、このIPアドレスを使用可能ならDHCP ACKを、使用不可ならDHCP NACKを返す、というのが基本だ。

図2●以前使っていたIPアドレスを使い続けたいときに送信するRequestパケット
図2●以前使っていたIPアドレスを使い続けたいときに送信するRequestパケット
IPアドレスをDHCPサーバーに要求するパソコンでパケットキャプチャーを実行した。DHCPのやり取りに絞り込むときは表示フィルタで「bootp」を指定する。以前使っていたIPアドレスを使うために、そのIPアドレスを指定したDHCP Requestパケットをブロードキャスト送信している(図1(2)のケース)。
[画像のクリックで拡大表示]
▼DHCP
Dynamic Host Configuration Protocolの略。インターネット関連技術の標準仕様であるRFCで定義されているものの、BOOTP(Bootstrap Protocol)という技術を徐々に拡張したせいか、OSや機器によって実装が一部異なる。
▼デフォルトゲートウエイ
同一セグメント以外の宛先にパケットを送信するときに、最初に転送するIPアドレス。
▼IPアドレスの使用期限
正確には、リースの有効期限という。DHCPでは、サーバーがIPアドレスを貸し出すという考え方をしている。