「クライアント」という用語は、ネットワーク上でクライアントとしての役割を実行している物理的なマシンについて言及するために使用される場合がありますが、ここで説明している DHCP クライアントはソフトウェアエンティティです。Solaris DHCP クライアントは、DHCP サーバーからそのネットワーク構成を受け取るように構成されているマシン上の Solaris オペレーティング環境で動作するデーモン (dhcpagent) です。他のベンダーの DHCP クライアントも Solaris DHCP サーバーのサービスを使用することができます。ただし、この節では Solaris DHCP クライアントについてのみ説明します。
この節の説明では 1 つのネットワークインタフェースを想定していることに注意してください。「複数のネットワークインタフェースを持つ DHCP クライアント」の項では 2 つ以上のネットワークインタフェースを備えたホストに関する重要な問題について説明しています。
Solaris DHCP クライアントは、Solaris オペレーティング環境のインストール時に、DHCP を使用してネットワークインタフェースを構成するように指定すると、システム上にインストールされ使用可能な状態になります。DHCP を使用するために Solaris クライアント上で行う作業はこれだけです。
すでに Solaris 環境を稼動しているマシンで、DHCP を使用してネットワークインタフェースを構成する場合は、「Solaris 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 ファイル内にコマンドが含まれている場合、それらのコマンドは ifconfig の dhcp start オプションに追加されます。dhcp とで使用されるオプションについては、ifconfig(1M) のマニュアルページを参照してください。
DHCP サーバーから情報パケットが取得されると、dhcpagent はネットワークインタフェースの設定、立ち上げを行い、そのインタフェースを IP アドレスのリース期間中制御します。dhcpagent は、メモリー内に保持された内部テーブル中に設定データを保持します。システム起動スクリプトは dhcpinfo コマンドを使用して dhcpagent のテーブルから設定オプションの値を抽出します。それらの値はシステムの設定に使用され、ネットワークの一部を形成します。
エージェントは、設定された時間が経過するまで (通常はリース期間の半分まで) そのまま待機し、DHCP サーバーにリースの延長を要求します。dhcpagent はそのインタフェースの停止、または IP アドレスの変更を検出した場合、ifconfig からの指示があるまでそのインタフェースの制御は行いません。また、dhcpagent は、そのインタフェースが適切に動作していること、および IP アドレスに変更がないことを検出すると、リースの更新要求をサーバーに送信します。リースが更新できない場合、dhcpagent はリース期間の満了時にそのインタフェースを停止させます。
Solaris DHCP クライアントは、通常のシステム動作時には管理を必要としません。 Solaris DHCP クライアントはシステムブート時に自動的に起動し、リースについてサーバーとネゴシエートし、システムの終了時に停止します。dhcpagent デーモンを手動で起動または停止することはできません。しかし必要であれば、クライアントマシン上でスーパーユーザーとして ifconfig コマンドを使用して、クライアントのネットワークインタフェースの管理に関与することができます。
ifconfig コマンドを使用すると、次のような操作が行えます。
DHCP クライアントの起動 - ifconfig interface dhcp start コマンドは、 IP アドレスと設定オプションの新規セットを取得するために、DHCP クライアントと DHCP サーバーの間の相互動作を開始します。このコマンドは、サーバー上のオプションの変更、たとえば、IP アドレスの追加、サブネットマスクの変更などを行い、変更結果を直ちにクライアントに反映させたい場合に便利です。
ネットワーク構成情報だけの要求 - ifconfig interface dhcp inform コマンドは、dhcpagent が IP アドレスを除くネットワーク構成パラメータを要求するようにします。このコマンドは、ネットワークインタフェースが有効な IP アドレスを持っているが、クライアントシステムが更新されたネットワークオプションを必要としているような場合に便利です。たとえば、 IP アドレスの管理には DHCP を使用しないが、ネットワーク上のホストの設定に DHCP を使用する場合が考えられます。
リースの延長要求 - ifconfig interface dhcp extend コマンドは、dhcpagent がリース期間の更新を要求するようにします。この操作は自動的に実行されますが、リース期間を変更し、クライアントが新しいリース期間をただちに使用するようにしたい場合には、次のリース更新を待つよりも、手動でこのコマンドを実行するようにします。
IP アドレスの解放 - ifconfig interface dhcp release コマンドは、dhcpagent がネットワークインタフェースで使用されている IP アドレスを放棄するようにします。この操作はリース満了時に自動的に実行されます。リース期間が長すぎ、ネットワークインタフェースを長期間停止させる必要がある場合、あるいは、ネットワークからシステムを切り離す場合は、このコマンドを発行するようにします。
IP アドレスの停止 - ifconfig interface dhcp drop コマンドは、dhcpagent がDCHP サーバーへの通知を行なわず、ネットワークインタフェースを停止するようにします。この操作により、クライアントは次回リブート時に同じ IP アドレスを使用することができます。
ネットワークインタフェースの上での ping の実行 - ifconfig interface dhcp ping コマンドは、インタフェースが DHCP の制御下にあるかどうかをテストします。
ネットワークインタフェースの DHCP 構成状態の表示 - ifconfig interface dhcp status コマンドは、DHCP クライアントの現在の状態を表示します。表示される情報には、IP アドレスとクライアントの結合状態、送信、受信、および拒否された要求数、一次インタフェースかどうかを示すフラグ、リースが獲得された時刻、満了した時刻、およびリースが更新された時刻と、更新予定時刻が含まれます。表示例を以下に示します。
# ifconfig hme0 dhcp status Interface State Sent Recv Declined Flags hme0 BOUND 1 1 0 [PRIMARY] (Began, Expires, Renew) = (07/15/1999 15:27, 07/17/1999 13:31, 07/16/1999 15:24) |
クライアントシステム上の /etc/default/dhcpagent ファイルには、dhcpagent のための設定可能パラメータが含まれています。テキストエディタを使用して、クライアントの動作に影響を与えるパラメータを変更することができます。このファイルにはわかりやすい注釈が付けられているので、パラメータの詳細についてはファイル内の注釈をお読みください。
DHCP を実行しているシステムが正常に停止するときは、dhcpagent デーモンが現在の構成情報を /etc/dhcp/interface.dhc ファイルに書き込みます。この場合、リースは開放されるのではなく放棄されるので、DHCP サーバーは、IP アドレスが実際には使用されていないことを認識できません。
システムのリブート時にリースがまだ有効である場合、リブート前に使用していたものと同じ IP アドレスとネットワーク構成情報を使用するために、DHCP クライアントは簡略化された要求を送信します。DHCP サーバーがこれを許可した場合、クライアントはシステムの停止時にディスクに書き込んだ情報を使用することができます。サーバーがこの情報の使用を許可しない場合には、クライアントは前述の DHCP プロトコルシークエンスを開始し、新しいネットワーク構成情報を取得します。
DHCP クライアントデーモンは、それぞれが独自の IP アドレスとリース期間を持つ、複数のインタフェースを、1 つのシステム上で同時に管理することができます。DHCP に対して複数のネットワークインタフェースが設定されている場合、クライアントはそれらのインタフェースを設定するために個別のリクエストを発行し、各インタフェースに対して個別のネットワーク構成オプションのセットを維持します。この場合、パラメータは個別に保存されますが、パラメータの中にはその性質上広域的なものがあり、それらは特定のネットワークインタフェースではなく、システム全体に適用されます。ホスト名、NIS ドメイン名、および時間帯のようなオプションが広域パラメータであり、これらのパラメータは各インタフェースについて同じ値を取ります。ただし、DHCP 管理者が入力した情報に誤りがある場合は、上記の事項には当てはまりません。広域パラメータの問い合わせに対して応答が 1 つだけ返されるようにするために、一次ネットワークインタフェース用のパラメータだけが要求されます。一次インタフェースとして扱うインタフェースについては、/etc/dhcp.interface ファイルに「primary」という語を挿入することができます。