この章では、「Network Information Service Plus (NIS+)」の概要を説明します。また NIS+ を設定する前に行うべき作業を列挙し、NIS+ 名前空間の最低要件について確認したうえで、NIS+ の設定方法を 2 通り紹介します。
NIS+ はネットワークネームサービスの一種です。NIS と似ていますが、機能はさらに豊富になっています。NIS の拡張機能というより新しいソフトウェアプログラムであるといえます。
NIS+ は (ワークステーションのアドレス、セキュリティ情報、メール情報、Ethernet インタフェースおよびネットワークサービスに関する情報などの) 情報を 1 ヵ所に格納して、ネットワーク上のすべてのワークステーションからアクセスできるようにします。このように構成されたネットワーク情報を、NIS+「名前空間」と呼びます。
NIS+ 名前空間は UNIX のファイルシステムに似た階層構造になっているため、組織の論理上の階層に合わせて構成できます。名前空間における情報の配置は、物理的な配置とは関係ありません。NIS+ 名前空間は複数のドメインに分割が可能で、それぞれ独立して管理できます。クライアントは、適切なアクセス権を持っていれば自分のドメインだけでなく他のドメインの情報にもアクセスできます。
NIS+ では、NIS+ 名前空間への情報の保存やその情報へのアクセスにクライアントサーバーモデルを使用します。それぞれのドメインは、複数のサーバーによってサポートされます。主となるサーバーを「マスター」サーバー、補助用のサーバーを「複製」サーバーと呼びます。ネットワーク情報は、NIS+ 内部のデータベースにある 16 個の標準 NIS+ テーブルに格納されます。マスターサーバーと複製サーバーの両方で NIS+ サーバーソフトウェアが動作しており、NIS+ テーブルのコピーを維持しています。マスターサーバーの NIS+ データに変更が加えられると、その内容は自動的に複製サーバーに順次反映されます。
NIS+ では高機能のセキュリティシステムによって、名前空間の構造と保存されている情報が保護されます。このシステムは、情報にアクセスしようとしているクライアントが正当なものであるかどうかを認証と承認によって確認します。「認証」では、情報を要求しているのがネットワーク上の正当なユーザーであるかどうかを確認します。「承認」では、ユーザーが情報を所有したり修正したりできるかどうかを確認します。
Solaris のクライアントは、ネームサービススイッチ (/etc/nsswitch.conf ファイル) を使用して、ワークステーションがネットワーク情報を検索する場所を指定します。ネットワーク情報が保存されているのは、ローカルの /etc ディレクトリのファイル、NIS、DNS、NIS+ です。ネームサービススイッチには、情報の種類ごとに異なる情報源を指定することもできます。
NIS+ の詳細は、『Solaris ネーミングの管理』を参照してください。
NIS+ 名前空間を構成する前に、次の作業を行う必要があります。
NIS+ を使用するすべてのマシンの nsswitch.conf ファイルを正しく構成します。詳細は、第 1 章「ネームサービススイッチの設定」を参照してください。
NIS+ 名前空間のレイアウトを設計します。これには次の 2 つの作業があります。
名前空間の設計
どんなドメイン名を付けるか
サブドメインを作るか
サブドメインを作るとしたら、それらをどのように編成するか
どのマシンをどのドメインに入れるか
ドメインを上位のドメインあるいはインターネットに接続するか
サーバー要件の確認
各ドメインに複製サーバーをいくつ置くか
必要なサーバーの種類、処理速度、メモリ容量は
サーバーのディスク容量はどれくらい必要か
設計に関する詳細な検討項目や指針については、『NIS+ への移行』を参照してください。
名前空間がすでに存在している場合、NIS+ に移行するための準備をします。「名前空間がすでに存在する場合の設定」を参照してください。
ルートサーバーマシンを選択します。
ルートマスターサーバーとして使用できるシステムが少なくとも 1 つは稼動していることを確認します。ルートマスターサーバーでは、/etc/passwd などのシステム情報ファイルに少なくとも 1 人のユーザー (root) が登録されていなければなりません 。通常のマシンのシステム情報ファイルには root が存在しますので、これが問題となることはないはずです。
NIS ドメインがすでに存在する場合は、NIS+ 名前空間にも既存のものと同じフラットな構造のドメインを使用できます (階層構造にあとから変更可能)。NIS から NIS+ への移行は、『NIS+ への移行』を読んで、計画や準備に関する重要事項を確認してから行なってください。NIS+ のスクリプトを使用すると、NIS マップのデータを利用して簡単に NIS+ を起動できます。第 4 章「スクリプトを使用した NIS+ の設定」では、NIS+ スクリプトを使用してシステムファイルや NIS マップから NIS+ 名前空間を作成する方法を説明します。
ただし、名前空間がすでに存在している場合、スクリプトをスムーズに実行するため NIS+ への移行用の設定が必要です。詳細は、『NIS+ への移行』を参照してください。
準備に関する主な注意事項は次のとおりです。
「ドメインとホストには同じ名前を使用しない」
たとえば、ドメインが sales の場合、マシンの名前には sales を付けないでください。同様に、home という名前のマシンを使用している場合は、home という名前のドメインは作成しないでください。これはサブドメインの場合も同様です。たとえば、west という名前のマシンを使用している場合は、sales.west.myco.com というサブディレクトリを作成しないようにします。
「ホスト名にはドットを使用しない」
NIS+ では、マシン名とドメイン名の間や、親とサブドメインの間の区切りにドット (ピリオド) を使用します。このため、マシン名の中ではドットを使用できません。使用している場合は、NIS+ に移行する前に (スクリプトを実行する前に) 必ず変更してください。ホスト名中のドットは、ハイフンに置き換えます。たとえば、sales.alpha という名前は、sales-alpha という名前に置き換えます
データのロード元のローカル /etc ファイル、または NIS マップのエントリを確認する。偽造されたエントリや誤ったエントリがなく、正しいデータが、所定の場所に正しい書式で記録されていることを確認し、エントリの中で、古いもの、無効なもの、破損しているものは削除します。また、不完全なエントリも削除します。構成完了後は、いつでもエントリを追加できます。必要なエントリをあとから追加する方が、不完全なエントリや破損しているエントリを読み込もうとするよりも簡単です。
Solaris 2.4 以前では、/var/nis ディレクトリに hostname.dict、hostname.log という 2 つのファイルと、サブディレクトリ /var/nis/hostname がありました。Solaris 2.5 の NIS+ では、2 つのファイル名は trans.log、data.dict となり、サブディレクトリ名は /var/nis/data となります。Solaris 2.5 ではこれらのファイルの内容も変更されており、Solaris 2.4 以前との互換性はなくなっています。したがって、これらのファイルやディレクトリを Solaris 2.4 での名前にしてしまうと、Solaris 2.4、2.5 双方の rpc.nisd で機能しなくなります。ディレクトリ名もファイル名も変更しないでください。
ここでは、NIS+ 名前空間の 2 通りの構成方法を紹介します。
「設定 (構成) 用のスクリプトを使う方法」
第 2 章、第 3 章で説明するように、nisserver、nispopulate、nisclient という 3 つのスクリプトを使って NIS+ 名前空間を構成します 。簡単に済ませることができるため、こちらの方法をお勧めします。
「NIS+ コマンドを使う方法」
第 4 章から第 9 章で説明するように、NIS+ コマンドを使うとスクリプトを使う場合より柔軟に構成を決めることができますが、それだけ難しく、NIS+ 管理者としての経験が必要になります。スクリプトによる標準構成では要件を満たせないといった場合に限り使用してください。
NIS+ コマンドを使って構成する場合、NIS+ ネームサービスを使う各マシンの /etc ディレクトリに正しい nsswitch.conf ファイルが必ず格納されるようにしてください (第 1 章「ネームサービススイッチの設定」を参照)。この作業は、NIS+ 構成スクリプトを使った場合は自動的に行われます。
NIS+ ディレクトリ、NIS+ ドメイン、NIS+ サーバー、NIS+ 名前空間を削除する方法については、『Solaris ネーミングの管理』を参照してください。