Solaris DHCP の管理

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 を起動し、DHCP サーバーからネットワーク構成情報が到着するのを待ちます。

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

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

Solaris 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 デーモンに対する調整可能なパラメータが含まれています。テキストエディタを使用して、クライアントの動作に影響を与えるパラメータを変更することができます。このファイルには詳しい説明が記載されてい るので、 dhcpagent のマニュアルページと併せて、このファイルも参照してください。

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

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

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

DHCP クライアントシステムとネームサービス

Solaris システムでは、次のネームサービスがサポートされています。 DNS、 NIS、 NIS+、およびローカルファイル (/etc/inet/hosts) これらのネームサービスを使用するためには、ある程度の事前構成が必要です。 使用するネームサービスを指定するために、ネームサービススイッチ構成ファイル (nsswitch.conf(4) を参照) を正しく設定する必要があります。

ネームサービスのクライアントとしてシステムを構成しないと、DHCP クライアントシステムでネームサービスを使用することはできません。

次の表は、DHCP に関連する問題をネームサービスごとに要約したものです。この表には、各ネームサービスに対してクライアントを設定する上で役立つマニュアルへのリンクが示されています。

表 1–4 DHCP クライアントシステムに対するネームサービスクライアント設定情報

ネームサービス  

クライアントの設定に関する注意 

NIS 

Solaris DHCP を使ってクライアントシステム上に Solaris オペレーティング環境をインストールする場合には、構成マクロに NISservs オプションと NISdmain オプションを指定すれば、NIS サーバーの IP アドレスと NIS ドメイン名をクライアントに渡すことができます。これによって、クライアントは自動的に NIS クライアントになります。

DHCP クライアントシステムで Solaris オペレーティング環境がすでに動作している場合、DHCP サーバーが NIS 情報をクライアントに送信しても、クライアントシステムが自動的に NIS クライアントとして構成されるわけではありません。 

DHCP クライアントシステムに NIS 情報を送信するように DHCP サーバーが構成されている場合には、クライアントで次の dhcpinfo コマンドを実行すれば、これらの値を見ることができます。

# /sbin/dhcpinfo NISdmain

# /sbin/dhcpinfo NISservs

NIS ドメイン名と NIS サーバーの値は、システムを NIS クライアントとして構成するときに使用します。 

Solaris DHCP クライアントシステムを NIS クライアントとして設定する場合には、『Solaris ネーミングの設定と構成』の「NIS サービスの構成」に示されている標準的な方法を使います。


注 –

スクリプトを作成すれば、dhcpinfoypinit を使って、DHCP クライアントシステムにおける NIS クライアントの構成を自動的に行うことができます。


NIS+ 

予約されていない IP アドレス (アドレスは常に同じであるとは限らない) を DHCP クライアントシステムが受け取る場合には、非標準的な方法で DHCP クライアントシステムを NIS+ クライアントとして設定する必要があります。これについては、NIS+ クライアントとしての DHCP クライアントの設定を参照してください。この手順が必要な理由は、NIS+ ではサービス要求を認証するためのセキュリティ手段が使用されるためです。セキュリティ手段は IP アドレスによって異なります。

DHCP クライアントシステムに IP アドレスが手動で割り当てられている (クライアントのアドレスは常に同じ) 場合には、NIS+ クライアントを標準的な方法で設定できます。これについては、『Solaris ネーミングの設定と構成』の「NIS+ クライアントの構成」を参照してください。

/etc/inet/hosts

ネームサービスとして /etc/inet/hosts を使用する DHCP クライアントシステムには、/etc/inet/hosts ファイルを設定する必要があります。

DHCP クライアントシステム自身の /etc/inet/hosts ファイルには、そのホスト名が DHCP ツールによって追加されます。 ただし、同じネットワークにある他のシステムの /etc/inet/hosts ファイルには、このホスト名を手動で追加する必要があります。さらに、DHCP サーバーシステムが名前を解決するために /etc/inet/hosts を使用する場合は、このシステムにもクライアントのホスト名を手動で追加する必要があります。

DNS  

DHCP クライアントシステムが DNS ドメイン名を DHCP から取得する場合には、クライアントシステムの /etc/resolv.conf ファイルは自動的に構成されます。/etc/inet/hosts ファイルを使用するシステムで DNS を実際に使用するためには、/etc/nsswitch.conf ファイルの hosts 行に dns を追加する必要があります。これについては、『Solaris ネーミングの設定と構成』を参照してください。

クライアントシステムでローカル名の解決に NIS または NIS+ を使用する場合は、次の点に注意してください。  

  • NIS – NIS サーバーで DNS 転送が可能な場合は (デフォルトでは可能)、NIS クライアントシステムでも DNS を使用できます。 この場合には、DNS クライアントとしての設定は必要ありません。NIS サーバーで DNS 転送が可能でない場合は、DNS クライアントになると、クライアントシステムで DNS を使用することができます。DNS クライアントになる方法については、『Solaris ネーミングの設定と構成』の「DNS クライアントの構成」を参照してください。クライアントが DNS ドメイン名を DHCP サーバーから取得する場合には、DNS クライアントに必要な /etc/resolv.conf ファイルは自動的に構成されます。したがって、この場合には、nsswitch.conf ファイルの構成だけが必要です。

  • NIS+ – nsswitch.conf ファイルを編集すれば、DNS を使用するように NIS+ クライアントシステムを構成することができます。編集方法については、『Solaris ネーミングの設定と構成』の「/etc/nsswitch.conf ファイルの修正」を参照してください。

クライアントホスト名の登録

DHCP サービスで使用する IP アドレスのホスト名を DHCP サーバーが生成するようにすると、DHCP サーバーがこれらのホスト名を NIS+、/etc/inet/hosts、または DNS ネームサービスに登録できます。 ホスト名の登録を NIS で行うことはできません。NIS には、NIS マップの更新や伝達をプログラムで行うためのプロトコルが備わっていないからです。


注 –

DNS サーバーと DHCP サーバーが同じシステムで動作している場合のみ、DHCP サーバーは、生成したホスト名を DNS に登録することができます。


DHCP クライアントがそのホスト名を指定し、DHCP サーバーが動的な更新をすることができるように DNS サーバーが構成されている場合には、DNS サーバーと DHCP サーバーが異なるシステムで動作していても、DHCP サーバーがクライアントに代わって DNS を更新することができます。この機能の使用方法については、DHCP サーバーによる動的 DNS 更新の有効化 を参照してください。

次の表は、DHCP クライアントシステムのホスト名の登録についてネームサービスごとに示したものです。

表 1–5 ネームサービスへのクライアントホスト名の登録

 

ホスト名を登録する人またはもの 

ネームサービス 

DHCP が生成したホスト名 

DHCP クライアントが指定したホスト名 

NIS 

NIS 管理者 

NIS 管理者 

NIS+ 

DHCP ツール 

DHCP ツール 

/etc/inet/hosts

DHCP ツール 

DHCP ツール 

DNS 

DHCP ツール (DNS サーバーが DHCP サーバーと同じシステムで動作している場合) 

DNS 管理者 (DNS サーバーが異なるシステムで動作している場合) 

DHCP サーバー (動的 DNS 更新が可能に構成されている場合) 

DNS 管理者 (DHCP サーバーがそのように構成されていない場合) 

Solaris DHCP クライアントは、DHCP 要求に特定のホスト名を指定できます。ただし、DHCP クライアントがそのように構成されている必要があります。構成方法については、特定のホスト名に応答するように Solaris クライアントを有効にする方法を参照してください。Solaris 以外のクライアントでこの機能がサポートされているかどうかについては、それぞれのマニュアルを参照してください。

複数のネットワークインタフェースを備えた DHCP クライアントシステム

DHCP クライアントデーモンは、それぞれが独自の IP アドレスとリース期間を持つ、複数のインタフェースを、1 つのシステム上で同時に管理することができます。DHCP に対して複数のネットワークインタフェースが構成されている場合、クライアントはそれらのインタフェースを構成するために個別の要求を発行し、各インタフェースに対して個別のネットワーク構成オプションのセットを維持します。この場合、パラメータは個別に保存されますが、パラメータの中にはその性質上広域的なものがあります。そのようなパラメータは、特定のネットワークインタフェースではなく、システム全体に適用されます。

たとえば、ホスト名、NIS ドメイン名、時間帯などのオプションは広域パラメータであり、各インタフェースに対して同じ値を取ります。ただし、DHCP 管理者が入力した情報に誤りがあるために、これらの値が異なっている場合があります。広域パラメータの問い合わせに対して応答が 1 つだけ返されるようにするために、一次ネットワークインタフェース用のパラメータだけが要求されます。一次インタフェースとして取り扱いたいインタフェースには、/etc/dhcp.interface ファイルに primary という語を挿入することができます。