Solaris のシステム管理 (第 3 巻)

Solaris DHCP クライアント

「クライアント」という用語は、ネットワーク上でクライアントとしての役割を実行している物理的なマシンについて言及するために使用される場合がありますが、ここで説明している DHCP クライアントはソフトウェアエンティティです。Solaris DHCP クライアントは、DHCP サーバーからそのネットワーク構成を受け取るように構成されているマシン上の Solaris オペレーティング環境で動作するデーモン (dhcpagent) です。他のベンダーの DHCP クライアントも Solaris DHCP サーバーのサービスを使用することができます。ただし、この節では Solaris DHCP クライアントについてのみ説明します。

この節の説明では 1 つのネットワークインタフェースを想定していることに注意してください。「複数のネットワークインタフェースを持つ DHCP クライアント」の項では 2 つ以上のネットワークインタフェースを備えたホストに関する重要な問題について説明しています。

DHCP クライアントのインストール

Solaris DHCP クライアントは、Solaris オペレーティング環境のインストール時に、DHCP を使用してネットワークインタフェースを構成するように指定すると、システム上にインストールされ使用可能な状態になります。DHCP を使用するために Solaris クライアント上で行う作業はこれだけです。

すでに Solaris 環境を稼動しているマシンで、DHCP を使用してネットワークインタフェースを構成する場合は、「Solaris DHCP クライアントの設定および設定解除」を参照してください。

DHCP クライアントの起動

dhcpagent デーモンは、システムのブートに関与する他のプロセスが必要とする構成情報を取得します。このため、dhcpagent はシステム起動スクリプトによってブート処理の初期段階で起動されます。ブートは、ネットワーク構成情報が取得されるまで遅延されることになります。

/etc/dhcp.interface ファイル (たとえば、Sun Enterprise UltraTM マシン上の /etc/dhcp.hme0) が存在すると、起動スクリプトは、DHCP が指定されたインタフェース上で使用されることを認識します。dhcp.interface ファイルを検出すると、起動スクリプトは dhcpagent を起動します。

起動後、dhcpagent はネットワークインタフェースの設定を行う指示を受信するまで待機します。起動スクリプトは ifconfig interface dhcp start コマンドを発行し、「DHCP の動作」で説明しているように、dhcpagent に DHCP を起動するよう指示します。dhcp.interface ファイル内にコマンドが含まれている場合、それらのコマンドは ifconfigdhcp start オプションに追加されます。dhcp とで使用されるオプションについては、ifconfig(1M) のマニュアルページを参照してください。

DHCP クライアントのネットワーク構成情報の管理方法

DHCP サーバーから情報パケットが取得されると、dhcpagent はネットワークインタフェースの設定、立ち上げを行い、そのインタフェースを IP アドレスのリース期間中制御します。dhcpagent は、メモリー内に保持された内部テーブル中に設定データを保持します。システム起動スクリプトは dhcpinfo コマンドを使用して dhcpagent のテーブルから設定オプションの値を抽出します。それらの値はシステムの設定に使用され、ネットワークの一部を形成します。

エージェントは、設定された時間が経過するまで (通常はリース期間の半分まで) そのまま待機し、DHCP サーバーにリースの延長を要求します。dhcpagent はそのインタフェースの停止、または IP アドレスの変更を検出した場合、ifconfig からの指示があるまでそのインタフェースの制御は行いません。また、dhcpagent は、そのインタフェースが適切に動作していること、および IP アドレスに変更がないことを検出すると、リースの更新要求をサーバーに送信します。リースが更新できない場合、dhcpagent はリース期間の満了時にそのインタフェースを停止させます。

DHCP のクライアントの管理

Solaris DHCP クライアントは、通常のシステム動作時には管理を必要としません。 Solaris DHCP クライアントはシステムブート時に自動的に起動し、リースについてサーバーとネゴシエートし、システムの終了時に停止します。dhcpagent デーモンを手動で起動または停止することはできません。しかし必要であれば、クライアントマシン上でスーパーユーザーとして ifconfig コマンドを使用して、クライアントのネットワークインタフェースの管理に関与することができます。

DHCP クライアントで使用する ifconfig コマンド

ifconfig コマンドを使用すると、次のような操作が行えます。

DHCP クライアント用のパラメータファイル

クライアントシステム上の /etc/default/dhcpagent ファイルには、dhcpagent のための設定可能パラメータが含まれています。テキストエディタを使用して、クライアントの動作に影響を与えるパラメータを変更することができます。このファイルにはわかりやすい注釈が付けられているので、パラメータの詳細についてはファイル内の注釈をお読みください。

DHCP クライアントのシャットダウン

DHCP を実行しているシステムが正常に停止するときは、dhcpagent デーモンが現在の構成情報を /etc/dhcp/interface.dhc ファイルに書き込みます。この場合、リースは開放されるのではなく放棄されるので、DHCP サーバーは、IP アドレスが実際には使用されていないことを認識できません。

システムのリブート時にリースがまだ有効である場合、リブート前に使用していたものと同じ IP アドレスとネットワーク構成情報を使用するために、DHCP クライアントは簡略化された要求を送信します。DHCP サーバーがこれを許可した場合、クライアントはシステムの停止時にディスクに書き込んだ情報を使用することができます。サーバーがこの情報の使用を許可しない場合には、クライアントは前述の DHCP プロトコルシークエンスを開始し、新しいネットワーク構成情報を取得します。

複数のネットワークインタフェースを持つ DHCP クライアント

DHCP クライアントデーモンは、それぞれが独自の IP アドレスとリース期間を持つ、複数のインタフェースを、1 つのシステム上で同時に管理することができます。DHCP に対して複数のネットワークインタフェースが設定されている場合、クライアントはそれらのインタフェースを設定するために個別のリクエストを発行し、各インタフェースに対して個別のネットワーク構成オプションのセットを維持します。この場合、パラメータは個別に保存されますが、パラメータの中にはその性質上広域的なものがあり、それらは特定のネットワークインタフェースではなく、システム全体に適用されます。ホスト名、NIS ドメイン名、および時間帯のようなオプションが広域パラメータであり、これらのパラメータは各インタフェースについて同じ値を取ります。ただし、DHCP 管理者が入力した情報に誤りがある場合は、上記の事項には当てはまりません。広域パラメータの問い合わせに対して応答が 1 つだけ返されるようにするために、一次ネットワークインタフェース用のパラメータだけが要求されます。一次インタフェースとして扱うインタフェースについては、/etc/dhcp.interface ファイルに「primary」という語を挿入することができます。