4. 動作原理

4.1. NIS の動作原理

少なくとも 1 台の NIS のサーバーがネットワーク上に必要です。 複数のサーバを稼動させることもできます。 この場合はそれぞれを異なった NIS 「ドメイン」のサーバとするか、 あるいは 2 台のサーバをひとつのドメイン上で協調して動作させることになります。 後者の構成では 1 台のサーバが「マスターサーバ」となり、 その他のサーバは全て「スレーブサーバ」と呼ばれます (これは 1 つの「ドメイン」を用いた場合の構成です)。 この両方を用い、ドメインを複数、それぞれに対するサーバも複数、 といった構成も可能です。

スレーブサーバは、 マスターサーバの NIS データベースのコピーを持つだけで、 マスターサーバの NIS データベースが変更されると、逐一それを受け取ります。 ネットワークに接続されている計算機の台数とネットワークの信頼性を考慮し、 スレーブサーバをインストールするかどうか (インストールする場合はその台数) を決めて下さい。 NIS クライアントは、NIS サーバが「落ちて」いたり、 レスポンスが遅かったりする場合には、 落ちていないサーバやもっとレスポンスの速いサーバとの接続を試みます。

NIS データベースは ASCII 形式のデータベースから変換された、 いわゆる DBM フォーマットになっています。例えば /etc/passwd/etc/group といったファイルは、 ASCII-DBM 変換プログラム (サーバソフトウェアに含まれている makedbm) を用いて直接 DBMフォーマットに変換できます。NIS のマスターサーバは、 ASCII 形式と DBM 形式のデータベースとの両方を持っていなくてはなりません。

スレーブサーバは NIS マップが変更されると通知を受けます (yppush プログラムが用いられます)。 するとスレーブサーバは必要な変更を自動的に行い、 データベースを同期させます。 NIS クライアントにこのような作業をする必要はありません。 クライアントは常に最新の DBM データベースの内容を NIS サーバに読みに行くからです。

ypbind の古いバージョンでは、 動作中の NIS サーバを探すのにブロードキャストを用いていました。 これにはセキュリティ上の問題がありました。 なぜなら誰かが NIS サーバをインストールして、 ブロードキャストの問い合わせに答えるようにできるからです。 新しいバージョンの ypbind (ypbind-3.3 または ypbind-mt) では、 サーバを設定ファイルから取得できます - したがってブロードキャストは不要です。

4.2. NIS+ の動作原理

NIS+ は Sun による新しいネットワークインフォメーションサービスです。 NIS と NIS+ の最も大きな違いは、NIS+ ではデータの暗号化と secure RPC を通した認証とが可能になっている点です。

NIS+ の命名モデルはツリー構造に基づいています。 ツリーのそれぞれのノードが NIS+ のオブジェクトに対応しており、 これには六つのタイプがあります。 ディレクトリ (directory), エントリ (entry), グループ (group), リンク (link), テーブル (table), プライベート (private) です。

NIS+ の名前空間でルートとなる NIS+ ディレクトリは root ディレクトリと呼ばれます。 NIS+ には二つの特別なディレクトリが存在します。 org_dirgroups_dir です。 org_dir ディレクトリにはすべての管理テーブルが含まれます。 例えば passwd, hosts, mail_aliases などです。 groups_dir ディレクトリにはアクセスコントロールに用いられる NIS+ グループオブジェクトが含まれます。 org_dirgroups_dir およびそれらの親ディレクトリを集めたものが NIS+ ドメインとして参照されます。