Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)

検索パス

テーブルには、その「ローカル」ドメインについての情報だけが収められています。たとえば、doc.com. ドメイン内のテーブルには、doc.com. ドメインのユーザー、クライアント、およびサービスについての情報だけが収められています。 たとえば、sales.doc.com. ドメイン内のテーブルには、sales.doc.com. ドメインのユーザー、クライアント、およびサービスについての情報だけが収められています。

あるドメイン内のクライアントが、別のドメインに格納されている情報を見つけようとした場合、完全指定名を使用しなければなりません。環境変数 NIS_PATHに説明されているように、環境変数 NIS_PATH が正しく設定されていれば、NIS+ サービスによって自動的に処理されます。

情報を探すときにサーバーがたどる「検索パス」をどの NIS+ テーブルでも指定できます。この検索パスは、NIS+ テーブルをコロンで区切って順番に並べたものです。


table:table:table...

検索パス内のテーブル名は、完全指定する必要はありません。テーブル名は、コマンド行で入力された名前と同じように展開されます。サーバーが自分のローカルテーブル内に情報を検出できなかった場合、サーバーはクライアントにテーブルの検索パスを返します。クライアントはそのパスを使用して、その情報が見つかるかまたは最後まで、検索パスに名前があるすべてのテーブルを順番に探していきます。

検索パスのメリットを次に示します。次のようなドメイン階層があるとします。

この図は、manf.doc.com および sales.doc.com で構成される doc.com 階層を示しています。

下位にある 3 つのドメインの hosts テーブルの内容は次のようになります。

表 10–2 hosts テーブルの例

sales.doc.com. 

 

manf.doc.com. 

 

127.0.0.1

localhost

127.0.0.1

localhost

111.22.3.22

luna

123.45.6.1

sirius

111.22.3.24

phoebus

123.45.6.112

rigel

111.22.3.25

europa

123.45.6.90

antares

111.22.3.27

ganymede

123.45.6.101

polaris

111.22.3.28

mailhost

123.45.6.79

mailhost

ここで、sales.doc.com. ドメイン内の luna にログインしたユーザーが、別のクライアントにリモートログインする場合を考えてみます。このユーザーが完全指定名を指定しない場合、そのユーザーがリモートログインできるのは localhost phoebuseuropaganymede、および mailhost の 5 台のマシンだけです。

sales.doc.com. ドメインの hosts テーブルの検索パスに、manf.doc.com. ドメインの hosts テーブルが指定されていると仮定します。


hosts.org_dir.manf.doc.com.

これで sales.doc.com. ドメイン内のユーザーは、たとえば、rlogin sirius と入力することができ、NIS+ サーバーはこれを検出します。NIS+ サーバーはまずローカルドメインで sirius を探し、見つからなければ manf.doc.com. ドメイン内を探します。 クライアントは manf.doc.com. ドメインをどのように認識するのでしょうか。 第 2 章「NIS+ の紹介」で説明したように、この情報はディレクトリキャッシュに格納されています。これがディレクトリキャッシュにない場合、クライアントは、第 2 章「NIS+ の紹介」で説明したプロセスに従ってこの情報を入手します。

ただし、検索パスを指定する方法には、若干の欠点があります。ユーザーがたとえば、rlogin luba (luna でなく) などと間違った名前を入力した場合、サーバーは 1 つのテーブルではなく、3 つのテーブルを探さなければエラーメッセージを返せません。名前空間の全域に検索パスを設定した場合、1 つの操作は 2、3 のドメインではなく、10 個のドメイン内のテーブルを検索してから終了します。もう 1 つの欠点は、多数のクライアントが NIS+ テーブルにアクセスする必要があるとき、複数のサーバーのセットと通信するために、パフォーマンスの低下を招くという点です。

また、mailhost は別名として使用されることが多いため、特定のメールホストについての情報を探したいときは、その完全指定名 (mailhost.sales.doc.com. など ) を使用しなければなりません。そうしないと、NIS+ は検索したすべてのドメインで見つけたすべてのメールホストを返します。そうしないと、 NIS+ は、検索したすべてのドメインで見つかったメールホストをすべて返します。

テーブルの検索パスを指定するには、nistbladm コマンドで説明するように、nistbladm コマンドに -p オプションを付けて実行します。