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

第 9 章 DHCP サービスの使用計画

DHCP サービスは、構築中のネットワークでも、既存のネットワークでも使用することができます。ネットワークの構築を行なっている場合は、DHCP サービスの設定を行う前に第 5 章「TCP/IP ネットワークの計画」を参照してください。ネットワークがすでに存在している場合には、この章をお読みください。

この章では、ネットワーク上で DHCP サービスを設定する前に行うべき作業について解説します。DHCP Manager で使用することを想定していますが、コマンド行ユーティリティの dhcpconfig を使用しても DHCP サービスの設定を行うことができます。

この章では、次の情報について説明します。

DHCP を使用するためのネットワークの準備

DHCP を使用するためにネットワークを構成する前に、情報を収集し、サーバー (複数も可) の設定方法について決定を行う必要があります。

以下の作業を行います。

ネットワークトポロジのマッピング

ネットワークの物理構造またはレイアウトについてまだ計画を立てていない場合には、ルーターとクライアントの配置、およびネットワークサービスの提供を行うサーバーの配置を調べます。ネットワークトポロジのマッピングにより、DHCP サービスに使用するサーバー、および DHCP サーバーがクライアントに提供することのできる構成情報を決定することができます。

ネットワークの計画については、第 5 章「TCP/IP ネットワークの計画」を参照してください。

DHCP 構成プロセスは、サーバーのシステムファイルとネットワークファイルから、いくつかのネットワーク情報を検索することができます。「システムファイルとネットマスクテーブルの更新」では、これらのファイルについて説明しています。クライアントに他のサービス情報を提供したい場合もあり、その場合にはサーバーのデータベースを検索する必要があります。ネットワークトポロジを調べる際に、クライアントに知らせておきたいすべてのサーバーの IP アドレスを記録しておきます。ネットワーク上に存在している可能性はあるが、その存在を DHCP 構成プロセスが検出できないネットワークサービスの例を次に示します。

避けなければならないネットワークトポロジ

DHCP は、複数のネットワークハードウェアインタフェースまたは複数の論理インタフェースのいずれかを介して、複数の IP ネットワークが同じネットワークハードウェア媒体を共有しているようなネットワーク環境では正しく動作しません。複数の IP ネットワークが同じ物理 LAN を通じて動作している場合、DHCP クライアントの要求はすべてのネットワークハードウェアインタフェースに到達し、それら IP ネットワークのすべてに対してそのクライアントが同時にアタッチされているように見えてしまいます。

DHCP は、適切な IP アドレスをクライアントに割り当てられるように、クライアントのネットワークアドレスを特定できなければなりません。複数のネットワークがハードウェア媒体上に存在する場合、サーバーはクライアントのネットワークを特定することができず、IP アドレスを割り当てることができません。

DHCP はどのネットワーク上でも使用することができますが、複数のネットワーク上では使用できません。この条件がユーザーのニーズにそぐわない場合は、ネットワークを再構成する必要があります。次のような再構成が推奨候補として挙げられます。

DHCP サーバー数の決定

データの保存方法は、DHCP クライアントをサポートするために必要なサーバー数に直接影響します。ローカルファイルを使用する方法では、1 つのサーバーは最大 10,000の クライアントをサポートできます。NIS+ を使用する場合、1 つのサーバーは最大 40,000 のクライアントをサポートすることができます。

「データ保存方法の選択」の節では、データの保存場所について説明しています。

システムファイルとネットマスクテーブルの更新

設定処理の間、DHCP Manager または dhcpconfig ユーティリティは、サーバー上のさまざまなシステムファイルを走査し、サーバーの設定に使用できる情報を収集します。

DHCP Manager または dhcpconfig を使用してサーバーの設定を行う前に、システムファイル内の情報が最新のものであることを確認する必要があります。サーバーの設定後にエラーが検出された場合は、サーバー上のマクロを手動で変更し、dhcptab 構成テーブルを更新してください。

表 9-1 は、DCHP サーバーの設定中に収集されるいくつかの情報と、情報の提供元を示します。DHCP をサーバー上に設定する前に、これらの情報が適切に設定されていることを確認してください。サーバーの設定後にシステムファイルを変更する場合には、DHCP Manager または dhcpconfig を再度実行し、変更を反映させる必要があります。

表 9-1 DHCP 構成のための情報

情報 

提供元 

説明 

時間帯 

システムの日時、時間帯設定 

日時と時間帯は Solaris のインストール時に初期設定される。date コマンドを使用すると、日時を変更できる。時間帯を変更するには、TZ 変数が設定されている /etc/TIMEZONE ファイルを編集する

DNS パラメータ 

/etc/resolv.conf

DHCP サーバーは /etc/resolv.conf を使用して、DNSドメイン名や DNS サーバーアドレスなどの DNS パラメータを検索する。resolv.conf についての詳細は、『Solaris ネーミングの設定と構成』の「DNS クライアントの設定」を参照

NIS+ パラメータ 

システムのドメイン名、nsswitch.conf、 NIS+

DHCP サーバーは domainname コマンドを使用してサーバーマシンのドメイン名を取得し、nsswitch.conf ファイルを使用してドメインベースの情報を検索する場所を特定する。サーバーマシンが NIS または NIS+ クライアントの場合、DHCP サーバーは NIS または NIS+ サービスを参照し、NIS/NIS+ サーバーの IP アドレスを取得する

デフォルトルーター 

システムのルーティングテーブル、管理者の入力 

DHCP サーバーはネットワークルーティングテーブルを検索し、ローカルネットワークに接続されているクライアントのデフォルトルーターを見つける。同一ネットワーク上にないクライアントについては、DHCP サーバーは管理者を通じて情報を取得しなければならない 

サブネットマスク 

ネットワークインタフェース、netmasks テーブル

DHCP サーバーはそれ自身のネットワークインタフェースを参照し、ローカルクライアント用のネットマスクとブロードキャストアドレスを特定する。リレーエージェントにより要求がすでに転送されている場合、サーバーはリレーエージェントのネットワーク上の netmasks テーブル内のサブネットマスクを検索する

ブロードキャストアドレス 

ネットワークインタフェース、netmasks テーブル

ローカルネットワークでは、DHCP サーバーはネットワークインタフェースに照会することにりブロードキャストアドレスを取得する。リモートネットワークでは、サーバーは BOOTP リレーエージェントの IP アドレスとリモートネットワークのネットマスクを使用して、そのネットワーク用のブロードキャストアドレスを計算する 

サーバー設定における決定事項

この節では、ネットワークで最初の DCHP サーバーを設定する前に決定する事項について説明します。トピックは DHCP Manager の構成ウィザード内のダイアログと並行して進行しますが、この節に示す情報は dhcpconfig ユーティリティを使用してサーバーの設定を行う場合にも有用です。

DHCP を使用するためのサーバーの選択

ネットワークトポロジを念頭に置き、次のガイドラインに従って、DHCP サーバーを設定するホストを選択します。

サーバーとしての要件は次のとおりです。

データ保存方法の選択

DHCP データを保存するときは、ローカルディレクトリ内のファイルを使用して保存するか、NIS+ ディレクトリサービスの NIS+ テーブルを使用して保存するかを選択できます。NIS+ は分散データベースであるため、複数のサーバーが同じデータベースにアクセスすることができます。NIS+ はまた、本質的に高速な情報検索機能を備えています。このオプションを使用するためには、サーバーマシンが NIS+ クライアントとして設定されていなければなりません。

ファイルを使用する方法は、DHCP クライアント数が 10,000 以下のサイトでは効率的ですが、NIS+ に比べると幾分遅く、1 つのファイルシステム上にすべての DHCP データを保存しなければなりません。ファイルに保存されたデータは、NFS マウントポイントを通じてエクスポートされている場合にのみ、複数の DHCP サーバーで共有することができます。

従来の NIS は、NIS+ とは異なり、データ保存オプションとしては推奨されません。これは、高速な増分更新がサポートされていないためです。ネットワークで NIS を使用している場合、データの保存にはファイルを使用する必要があります。

リースポリシーの設定

リースは、DHCP サーバーが DHCP クライアントに対して特定の IP アドレスの使用を許可する期間を指定するものです。サーバーの初期設定時に、リース期間と、クライアントがそれぞれのリース期間を更新することを許可するかどうかを示す、サイト全体に適用されるリースポリシーを指定する必要があります。サーバーは提供された情報を使用して、設定時に作成するデフォルトマクロ内のオプションの値を設定します。ユーザー自身が作成した構成マクロ内のオプションを設定することにより、特定のクライアント、または特定のクライアントタイプに異なるリースポリシーを設定することもできます。

リース期間は、リースが有効な時間数、日数、または週数として指定されます。クライアントが IP アドレスを割り当てられた場合 (あるいは、すでに割り当てられている IP アドレスについてリースのネゴシエーションを再度行う場合)、リース期間中に経過した時間数をクライアントの DHCP 肯定応答のタイムスタンプに加算することにより、リースが期限切れになる日時が計算されます。たとえば、DHCP 肯定応答のタイムスタンプが 1999 年 9 月 16 日 9:15 A.M. で、リース期間が 24 時間の場合、リース満了時間は 1999 年 9 月 17 日 9:15 A.M. になります。リース満了時は、クライアントの DHCP ネットワークレコード内に保存され、DHCP Manager または pntadm を使用して表示できます。

リース期間は、期限切れになった IP アドレスが迅速に回収されるように、比較的小さな値に設定します。ただし、DHCP サービスが利用できなくなった場合、DHCP サービスを提供しているマシン (複数も可) が回復できるまで、クライアントが動作を継続できるような長さでなければなりません。一般に、予想されるサーバーのダウンタイムの 2 倍の時間を指定するようにします。たとえば、故障部品を検出、交換し、サーバーをリブートするのに 4 時間かかるとすれば、8 時間をリース期間に指定します。

リースネゴシエーションオプションは、リースが満了する前に、クライアントが提供されたリースについてサーバーとネゴシエーションできるかどうかを決めるものです。リースについてのネゴシエーションが許可されている場合には、クライアントはそのリースで残っている時間を計測し、リース期間の半分が経過した時点で、リース期間を元の値まで延長するように、DHCP サーバーに要求します。リースネゴシエーションを不許可にする設定は、 IP アドレス数以上のマシンが存在するため、時間制限を IP アドレスの使用に課す方が好ましい環境に向いています。十分な数の IP アドレスがある場合は、クライアントが自身のネットワークインタフェースを停止して、新規のリースを取得しようとすることにより、TCP 接続 (NFS や telnet など) に悪影響をおよぼすことを回避するために、リースネゴシエーションを許可するようにします。リースネゴシエーションはサーバー設定時にサイト全体に渡って設定することが可能であり、また設定マクロの LeaseNeg オプションを使用して、特定のクライアントまたは特定のクライアントタイプにだけ設定することもできます。


注 -

ネットワーク上でサービスを提供しているシステムはそれ自身の IP アドレスを保持する必要があり、短期的なリースの対象としてはいけません。永続的なリースにより IP アドレスを割り当てるのではなく、予約済みの (手動設定の) IP アドレスを割り当てることにより、そのようなマシンにも DHCP を使用することができます。これにより、マシンの IP アドレスがいつ使用されなくなるのかを検出することができます。


DHCP クライアントのためのルーターの決定

クライアントは、ルーターを使用してローカルネットワークの外側にあるネットワークと通信を行うので、ルーターを使用するためにはルーターの IP アドレスを把握していなければなりません。

DHCP サーバーの設定時に、クライアントが使用可能なルーターの IP アドレスを提供する必要があります。DHCP Manager を使用する場合には、ルーター発見プロトコルを使用することにより、クライアント自身がルーターを検出するように指定することもできます。

ネットワーク上のクライアントがルーター発見をサポートしている場合、ルーターが 1 つしかない場合でも、IP アドレスを指定するのではなく、ルーター発見プロトコルを使用するようにします。ルーター発見プロトコルを使用すると、クライアントはネットワーク内でのルーター変更に容易に対応できます。たとえば、ルーターに故障が発生し、新しいアドレスを持つルーターに置き変わった場合でも、新しいルーターのアドレスを取得するために新しいネットワーク構成を取得しなくても、クライアントは自動的に新しいアドレスを検出できます。

IP アドレス管理のための決定事項

この節では、DHCP で管理される IP アドレスを設定する際に必要となる決定事項について説明します。トピックは DHCP Manager のアドレスウィザードのダイアログと並行して進行しますが、この節に示す情報は dhcpconfig ユーティリティを使用して決定を行う場合にも有用です。

DHCP サービスの設定の一環として、サーバーにおける IP アドレスの扱い方を決定します。ネットワークに複数の DHCP サーバーが必要な場合、アドレス管理の分担方法を決定し、各サーバーにそれぞれの役割を割り当てるようにします。サーバーの設定を開始する前に、次の事項について決定します。

IP アドレスの数と範囲

DHCP Manager を使用すると、サーバーの初期設定時に、総アドレス数とブロックの開始アドレスを指定することにより、そのブロック分の IP アドレス、またはその範囲内の IP アドレスを DHCP の管理下に追加することができます。DHCP Manager はこの情報から連続するアドレスのリストを作成します。アドレスが連続していない複数のブロックがある場合は、初期設定の後で DHCP Manager のアドレスウィザードを再起動して、他のアドレスを追加することができます。

IP アドレスの設定を行う前に、追加したい初期アドレスブロックにアドレスがいくつあるか、またその範囲内の開始アドレスの IP アドレスを把握しておきます。

クライアントホスト名の生成

DHCP 本来の動的な特性により、IP アドレスはそれを使用するシステムのホスト名に恒久的に関連付けられる訳ではありません。Solaris DHCP サーバーは、オプションが指定されている場合には、各 IP アドレスに関連付けられたクライアント名を生成することができます。生成されたクライアント名は、/etc/hosts または NIS/NIS+ ホストテーブル内の IP アドレスに対応付けられます。クライアント名は、プレフィックス、つまりルート名、それに加え、サーバーによって割り当てられたダッシュと数字を使用します。たとえば、ルート名が charlie の場合、クライアント名は charlie-1charlie-2charlie-3 ... のようになります。

デフォルトでは、生成されたクライアント名は、それを管理する DHCP サーバーの名前で始まります。これは、複数の DHCP サーバーが存在する環境で便利です。ある特定の DHCP サーバーが管理するクライアントを DHCP ネットワークテーブルで簡単に見つけることができます。ルート名は、ユーザーが選択した名前に変更することもできます。

IP アドレスを設定する前に、サーバーがクライアント名を生成するようにするかどうかを決定し、そのように決定した場合、クライアント名に使用するルート名を決定します。


注 -

クライアント名は DNS ドメインに自動的に追加されないため、クライアント名はユーザーのネームサービス (NIS/NIS+) ドメインの外側では認識されませんが、手動で DNS にロードすることができます。DNSについての詳細は、『Solaris ネーミングの管理』「DNSの管理」と、in.named(1M) のマニュアルページを参照してください。


デフォルトのクライアント設定マクロ

Solaris DHCP で、マクロは複数のネットワーク構成オプションとその設定値の集まりです。マクロは DHCP クライアントに送信するネットワーク構成情報を決定するために使用されます。

DHCP サーバーの初期設定時に、システムファイルから収集された情報とシステム管理者が指定した情報から、次のようないくつかのマクロが生成されます。

ネットワークアドレスマクロは、そのネットワーク上に配置されているすべてのクライアントに対して自動的に処理されます。ロケールマクロはサーバーマクロに含まれるため、サーバーマクロを処理する際に処理されます。

最初のネットワークに対する IP アドレスの設定時に、設定中のアドレスを使用して、すべての DHCP クライアントに対して使用するクライアント設定マクロを選択する必要があります。デフォルトでは、サーバーマクロが選択されます。これは、このサーバーを使用するすべてのクライアントが必要とする情報をサーバーマクロが含んでいるためです。クライアントはネットワークアドレスマクロに含まれるオプションを、サーバーマクロに含まれるオプションの前に受け取ります。マクロ処理の順序についての詳細は、「マクロ処理の順序」を参照してください。

動的および永続的リースタイプ

リースタイプは、リースポリシー (リース期間とネゴシエーション) を設定中のアドレスに対して使用するかどうかを決定します。サーバーの初期設定時に、DHCP Manager は、追加するアドレスについて動的リースまたは永続的リースのいずれかを選択できるようにしています。dhcpconfig ユーティリティでは、動的リースのみが許可されます。

アドレスが動的リースを持つ場合、DHCP サーバーは、そのアドレスをクライアントに割り当て、リース期間を延長し、さらに、そのアドレスが使用されなくなったときは、検出、回収することにより、そのアドレスを管理することができます。アドレスが永続的リースを持つ場合、DHCP サーバーはそのアドレスをクライアントに割り当てるだけで、その後クライアントは明示的にそのアドレスを解放するまでそのアドレスを所有します。アドレスが解放されると、サーバーはそのアドレスを他のクライアントに割り当てることができます。そのアドレスは、永続的リースタイプに設定されている限り、リースポリシーの対象となることはありません。

IP アドレスの範囲を設定した場合、選択したリースタイプはその範囲内のすべてのアドレスに適用されます。DHCP の利点を最大限に活かすためには、ほとんどのアドレスに対して動的リースを使用する必要があります。必要があれば、後で個々のアドレスを永続的リースに変更することもできますが、永続的リースの総数は最小限に抑えるようにします。

予約済みアドレスとリースタイプ

アドレスは、特定のクライアントに手動で割り当てることにより予約することができます。予約されたアドレスは、関連付けられた永続的リースまたは動的リースを持つことができます。予約されたアドレスが永続的リースで割り当てられた場合、そのアドレスは、そのアドレスに結合されているクライアントにのみ割り当てることができ、DHCP サーバーはそのアドレスを他のクライアントには割り当てることはできません。また、DHCP サーバーはそのアドレスを回収することもできません。

予約されたアドレスが動的リースで割り当てられた場合、そのアドレスは、そのアドレスが結合されているクライアントにだけ割り当てることができますが、そのクライアントはリース期間を計測し、そのアドレスが予約されていないものとして、リースの延長についてネゴシエートする必要があります。これにより、ネットワークテーブルを参照することで、そのクライアントがいつそのアドレスを使用しているかを追跡することができます。

初期設定時には、すべての IP アドレスに対して予約済みアドレスを生成することはできません。これは、予約済みアドレスが特定のアドレスに対してのみ使用するためのものだからです。

複数の DHCP サーバーを使用するための計画

複数の DHCP サーバーを設定して、IP アドレスを管理する場合には、次のガイドラインに従ってください。

リモートネットワーク構成の計画

初期設定が完了すると、リモートネットワーク内の IP アドレスを DHCP の管理下に置くことができます。ところが、システムファイルはサーバーに対してローカルではないため、ほとんどの情報は検索できず、デフォルト値を取得することはできません。そのため、ユーザー自身が情報を提供する必要があります。リモートネットワークの設定を行う前に、次の情報を入手しておきます。

DHCP ネットワークを追加する手順については、「DHCP ネットワークの追加、変更、削除」を参照してください。

DHCP を設定するためのツールの選択

ここまでの節で説明したように、情報を収集し、設定方法について決定を行うと、DHCP サーバーの設定準備が完了したことになります。GUI 対応の DHCP Manager、またはコマンド行ユーティリティの dhcpconfig を使用して、サーバーの設定を行うことができます。どちらのツールを使用しても、オプションを選択したり、DHCP サーバーが使用する dhcptab とネットワークテーブルを作成するためのデータを入力したりできます。

DHCP Manager の機能

DHCP Manager は Java 対応のグラフィカルツールであり、DHCP 構成ウィザードを提供します。DHCP 構成ウィザードは DHCP サーバーとして設定されていないシステム上で DHCP Manager を最初に実行したときに自動的に起動されます。DHCP 構成ウィザードは、一連のダイアログボックスで構成され、サーバーの設定に必要な基本的な情報、たとえば、データ保存方式、リースポリシー、DNS/NIS/NIS+ サーバーとドメイン、ルーターのアドレスなどの入力を求めます。情報の中には、ウィザードによりシステムファイルから取得されるものがあります。これらの情報は正しいことを確認するだけでよく、必要な場合にのみ訂正します。

ダイアログボックスに従って作業を進め、情報を確認します。すると、DHCP サーバーデーモンがサーバーシステム上で起動され、ネットワークのための IP アドレスを設定するために、追加アドレスウィザードを起動するよう求められます。初期設定時には、DHCP に対してサーバーのネットワークだけが設定され、その他のサーバーオプションにはデフォルト値が与えられます。初期設定が完了した後で DHCP Manager を再度起動すると、ネットワークを追加したり、他のサーバーオプションを変更したりできます。

dhcpconfig 機能

dhcpconfig ユーティリティは、dhtadm コマンドと pntadm コマンド用のラッパー (wrapper) スクリプトです。dhcpconfig ユーティリティは、dhcptab を読み込む間隔、DHCP サービスが提供するタイムアウト値などのサーバー起動オプションの入力を求めます。またこのユーティリティは、「システムファイルとネットマスクテーブルの更新」で説明しているシステムファイルからその他の情報も取得します。システムファイルから取得された情報は見ることができないため、dhcpconfig を起動する前にシステムファイルを更新しておくことが重要です。

なお、dhcpconfig はシステムファイルを更新した後で、再度実行することができ、DHCP データを適切に更新できます。

DHCP Manager と dhcpconfig の比較

表 9-2 に、2 つのサーバー設定ツールの相違点を示します。

表 9-2 DHCP Manager と dhcpconfig の比較

比較項目 

DHCP Manager 

dhcpconfig

システムから収集したネットワーク情報の表示 

システムファイルから収集された情報を表示でき、必要があれば変更可能 

dhcpconfig が収集した情報は見ることができない。生成後に dhcptab とネットワークテーブルを調べる必要がある

ユーザーに求められる設定経験 

デフォルト値を使用することで基本的でないサーバーオプションの入力を省略し、設定作業を高速化。基本的でないオプションは初期設定後に変更可能 

設定作業中にすべてのサーバーオプションを入力。後でオプションを変更するには、dhcpconfig を再度起動するか、dhtadmpntadm コマンドを使用する

ユーザー入力のチェック 

入力時にユーザー入力の有効性をチェックする 

入力時にユーザー入力の有効性をチェックしない 

次の章では、DHCP Manager と dhcpconfig の両方を使用したサーバーの設定手順について説明します。