この章では、ネットワーク情報サービス (NIS) からネットワーク情報サービスプラス (NIS+) へ移行する場合の問題点について説明します。ここでは、2 つのネームサービスの違いについて説明し、推奨する移行方法の概要を示します。
NIS と NIS+ の間には、移行に影響を与える相違点がいくつかあります。たとえば、NIS は、1 つのドメイン (またはいくつかの別々のドメイン) を持つ平坦な (階層型ではない) 名前空間を使用しますが、NIS+ は、DNS に似たドメイン階層を使用します。このため、NIS+ に変換する前に、NIS+ の名前空間を設計する必要があります。また、 NIS+ にはセキュリティを強化するための機能があります。これにより、名前空間内の情報だけでなく、名前空間の構造的な構成要素へのアクセスも制限されます。
このような相違点から、NIS+ が単に NIS をアップグレードしたものではなく、完全に新しい製品であることがわかります。NIS から NIS+ へ移行する際は、主にこれらの製品間の相違がポイントになります。
この章では、これらの相違点について、次に示す一般的な用語を使って説明します。NIS+ への移行を正しく行うには、これらの用語を理解することが重要です。
NIS+ は、NIS に置き換わるものとして設計されており、単に NIS をアップグレードしたものではありません。このことは、NIS+ のドメイン構造を調べると明らかです。NIS のドメインは平坦で、階層を持つことができません。これに対して、NIS+ のドメインは平坦な場合もありますが、階層構造のドメインを作成できます。この階層は、ルートドメインと、その下の任意の数のサブドメインから構成されます。
NIS のドメイン構造は、1980 年代に一般的であったクライアントとサーバー間のコンピューティングネットワークの管理の要件に対応したものでした。つまり、数百のクライアントと少数の多目的サーバーを持つ、クライアントとサーバー間のネットワークを対象としていました。
NIS+ は、世界中のサイトの専用サーバー 10〜100 台によってサポートされるクライアント 100〜10000 台をサポートするネットワークを対象としています。こうしたネットワークは、複数の「信頼性の低い」公衆ネットワークに接続されています。このようなネットワークの規模と構成を維持するには、新しい独立した管理方式が必要です。NIS+ のドメイン構造は、次の図に示すように、DNS のドメイン構造に似ています。
ドメインを階層構造にすると、規模の小さいものから非常に大きいものまで、広い範囲のネットワークに NIS+ を使用することができます。また、NIS+ のサービスを組織の成長に対応させることもできます。NIS+ ドメインの構造の詳細については、『Solaris ネーミングの管理』を参照してください。
NIS+ が提供する相互運用性とは、NIS からの移行と、NIS サービスによって提供されていた DNS とを継続して併用できることを意味します。 NIS+ には、NIS からの移行に役立つ NIS 互換モードと情報転送ユーティリティがあります。NIS 互換モードを使用すると、Solaris オペレーティング環境 のソフトウェアを実行する NIS+ サーバーは、NIS クライアントからの要求に応じる一方で、NIS+ クライアントからの要求にも引き続き応じることができます。また、管理者は、情報転送ユーティリティを使って NIS のマップと NIS+ のテーブルを同期させることができます。
NIS 互換モードの設定に必要な手順は、標準 NIS+ サーバーで使用する手順と若干異なります。また、NIS 互換モードは、NIS+ 名前空間内のテーブルとセキュリティ上の関連を持っています。手順の違いとセキュリティとの関連については、『Solaris ネーミングの設定と構成』、『Solaris ネーミングの管理』を参照してください。
NIS+ サーバーが NIS 互換モードで実行されている場合、NIS のクライアントコンピュータは、 NIS+ のクライアントコンピュータとは異なる方法で NIS+ 名前空間にアクセスします。次にこの違いを示します。
NIS+ サーバー上で rpc.nisd に -Y -B オプションを付けて実行している場合、NIS+ サーバー内で解決できない NIS のクライアントマシンからのホスト要求を DNS に転送することができます。しかし、NIS+ クライアントからのこのような要求は転送されません。NIS+ クライアントマシンの DNS 要求の転送は、/etc/resolv.conf ファイルと /etc/nsswitch.conf ファイルの構成によって制御されます。詳細については、『Solaris ネーミングの管理』を参照してください。
許可を持つ NIS+ の管理者は、passwd コマンドを使用して、パスワードの有効期限やロックの設定など、パスワードに関連するすべての管理業務を実行できます。NIS+ クライアントのユーザーは、passwd コマンドを使用して、自分自身のパスワードを変更できます。
ローカルサブネット上のすべてのサーバーが応答しなくなった場合でも、NIS+ クライアントマシンは、そのドメインの複製サーバーのどれかと通信できれば、そのネームサービスの呼び出しに応答を得ることができます。NIS クライアントマシンは、サーバー名が設定されていないと、そのサブネットの外部にあるネットワーク上の情報にアクセスすることができません。サーバー名は、ypset によって、または Solaris NIS クライアントの場合には ypset サブネットの外部にあるネットワーク上の情報にアクセスすることによって設定されます。
NIS クライアントマシンは、受信中のデータが承認された NIS サーバーから送信されたものかどうかについては確認できません。これに対して、承認された NIS+ クライアントでは、承認された NIS+ サーバーからデータが送信されていることを確認できます。
NIS 環境では、サーバーが応答しなくなったとき、NIS の yp_match() 呼び出しは、サーバーが応答して要求に応じるまで、呼び出しを試行し続けます。NIS+ の API (アプリケーションプログラムインタフェース) では、このような事態が発生すると、アプリケーションに対してエラーメッセージを返します。
Solaris 2.3 以降のリリースでは、NIS 互換モードで DNS 転送をサポートします。Solaris 2.2 では、DNS 転送を可能にする「パッチ (patch #101022-06)」が提供されています。DNS 転送を可能にするパッチは、Solaris 2.0 と 2.1 では利用できません 。
NIS+ ドメインは、インターネットに直接接続することはできませんが、ネームサービススイッチによって、NIS+ クライアントマシンをインターネットに接続することはできます。クライアントは、そのスイッチ構成ファイル (/etc/nsswitch.conf) を設定して、NIS+ テーブルだけでなく、DNS ゾーンファイルや NIS マップの情報を検索することもできます。
NIS+ のクライアント サーバー構成は、各ドメインが複数のサーバーによってサポートされているという点で、NIS と DNS の構成に似ています。メインサーバーは「マスタサーバー」と呼ばれ、バックアップサーバーは「複製サーバー」と呼ばれます。マスタサーバーも複製サーバーも NIS+ サーバーソフトウェアを実行し、どちらも NIS+ テーブルを持ちます。
ただし、NIS+ では、NIS の場合とはまったく異なる方法でデータベースが更新されます。NIS が開発された時点では、NIS が格納する情報のほとんどが静的なものと想定されていました。したがって、NIS の変更は手作業で処理し、そのマップ内の情報が変更されるたびにマップを作成しなおし、すべてを伝達させる必要があります。
これに対して NIS+ では、複製サーバーに対して変更分だけの更新ができます。マスタサーバー上のマスタデータベースを変更する必要はありますが、変更内容は複製サーバーにも自動的に伝達されます。「make」マップを再度作成したり、情報が伝達されるまで何時間も待つ必要はありません。伝達は、3 〜 4 分で終了します。
NIS+ は、マップやゾーンファイルではなく、「テーブル」に情報を格納します。NIS+ には、図 1-2 に示すように、17 種類の定義済みテーブル (システムテーブル) があります。
NIS+ テーブルは ASCII ファイルではなく、NIS+ リレーショナルデータベース内のテーブルです。NIS+ テーブルの内容は、NIS+ のコマンドを使用しなければ表示または編集できません。
NIS+ テーブルには、NIS で使用したマップに比べて大きく改善された機能が 2 つあります。その 1 つは、NIS+ テーブルを、最初の列 (「キー」とも呼ぶ) だけでなく、任意の検索可能な列によって検索できるという機能です。特定の列が検索可能であるかどうかを知るには、テーブルに対して niscat -o コマンドを実行してください。コマンドは、そのテーブルの列と属性のリストを返します。この検索機能により、NIS によって使用される hosts.byname
マップと hosts.byaddr
マップのような重複するマップを持つ必要性がなくなります。もう 1 つは、NIS+ テーブル内の情報に対して、テーブルレベル、エントリ (行) レベル、列レベルという 3 つのレベルでアクセスを制御できることです。
NIS マップがサーバーのディレクトリ /var/yp/domainname に置かれるのに対して、NIS+ ディレクトリは /var/nis/data に置かれます。NIS+ テーブルはデータベースの中に格納されます。テーブルの情報は、データベースへの要求が出されると、メモリーに読み込まれます。データを要求された順序でメモリーに保存すると、ディスクへのアクセスを最小限に抑えられるため、要求への応答時間を短縮することができます。
NIS+ のセキュリティ機能は、名前空間の情報と名前空間そのものの構造を不正なアクセスから保護します。NIS+ のセキュリティ機能は、「認証」と「承認」という 2 つの手段によって行われます。認証とは、NIS+ サーバーが、特定の要求を送信した NIS+ の「主体」(クライアントユーザーまたはクライアントワークステーション) を識別する処理を指します。承認とは、サーバーが、その主体 (クライアントマシンまたはクライアントユーザー) に許可されたアクセス権を識別する処理を指します。
つまり、最高レベルの NIS+ セキュリティ機能がサイトに導入されている場合、名前空間内の情報にアクセスするには認証された NIS+ クライアントでなければならず、その情報にアクセスするための適切なアクセス権を持っていなければなりません。さらに、名前空間へのアクセス要求は、NIS+ のクライアントライブラリルーチンか NIS+ の管理コマンドによって行われた場合にだけ有効になります。また、NIS+ のテーブルと構造を直接編集することはできません。
次に、NIS から NIS+ への移行において推奨する移行手順の概略を示します。
基本的な移行の方針について確認します。
NIS+ について理解します。
最終的な NIS+ 名前空間を設計します。
セキュリティの方式を選択します。
NIS 互換モードの使用方法を決定します。
移行の準備を完了します。
移行を実行します。
この章の以下の部分では、上記の手順の各段階について詳しく説明します。
移行を開始するにあたって、次に示す基本的な方針を確認してください。
Solaris オペレーティング環境への移行を完全に終えるまで NIS+ へのアップグレードを先延ばしにすることにより、Solaris オペレーティング環境への移行中は移行作業だけに専念できます。NIS+ への移行準備ができるまでは、Solaris オペレーティング環境により、継続して NIS を実行することができます。
いくつかの手順により、移行を簡略にすることができます。これらの手順を実行すると、NIS+ の効果は減少しますが、サーバーの台数は少なくて済み、管理に要する時間も減ります。移行が完了すれば、NIS+ の設定を変更して、サイトの要求に完全に適合させることができます。次にいくつかの推奨事項を示します。
ドメイン名を変更しない
階層を使用しないで、平坦な NIS+ 名前空間を使用する
Solaris 2.5 以降のリリースを使用する場合は、クライアントの資格を設定しない
移行に使用する Solaris オペレーティング環境のソフトウェアと NIS+ のバージョンを決定します。各バージョン間には若干の違いがあるため、複数のバージョンを同時に使用すると、移行の処理が不必要に複雑になります。Solaris 製品の 1 バージョンだけを選択して、それに対応するバージョンの NIS+ を使用してください。
現在のリリースは、設定スクリプトなどのほとんどの機能を備えています。通常の操作に必要な Solaris 2.6 のパッチを用意し、すべてのサーバーとクライアントに同じパッチがインストールされていることを確認してください。
クライアントユーザーに関して、考慮するべき点が 2 つあります。1 つは、ユーザーがサービスの変更に気が付かないようにするということです。もう 1 つは、移行作業そのものがユーザーに与える混乱を最小限に抑えるということです。2 番目のポイントについては、ユーザーに移行作業を要求するのではなく、必ず各ドメインの管理者がそのクライアントマシンの NIS+ への移行作業を行うようにすれば解決できます。これにより、正しい手順が実行され、その手順がクライアントマシン全体でも一貫して実行されます。したがって、問題があっても、管理者がただちに処理することができます。
NIS+ に関する理解を深めておいてください。特に、この章の前半で要約した概念 (このマニュアルの後半で詳しく説明します) については、よく理解しておく必要があります。「関連マニュアル」でとりあげたマニュアルを参照してください。
NIS+ を理解するための最もよい方法の 1 つは、プロトタイプの名前空間を作成することです。製品を実際に経験するということに優る方法はありません。システム管理者には、業務に支障をきたさないテスト環境での練習が必要です。
プロトタイプのドメインを、実際の NIS+ 名前空間としては使用しないでください。プロトタイプですべてを学んだら、そのプロトタイプは削除して、名前空間の構成上の問題が起こらないようにします。計画をすべて終えたら、新しく実際の名前空間を作成してください。
テストドメインを作成するときは、小規模の管理しやすいドメインを作成してください。テストドメインの作成については、『Solaris ネーミングの設定と構成』を参考にしてください。『Solaris ネーミングの設定と構成』では、NIS 互換モードを設定した状態、または設定しない状態で、NIS+ セットアップスクリプトを使用して簡単なテストドメインとサブドメインを計画して作成する方法について説明しています。
NIS+ の名前空間を設定する場合、『Solaris ネーミングの設定と構成』の Part I で説明した NIS+ スクリプトの使用をお勧めします。この手順では、最初に NIS+ スクリプトを使用して、基本的な NIS+ 名前空間を設定します。続いて NIS+ コマンドセットを使用して、各自のニーズに合わせて名前空間をカスタマイズします。
第 2 章「NIS+ 名前空間の設計」の指針に従って、最終的な NIS+ 名前を設計します。名前空間の設計中は、NIS からの移行によって生じる制限を気にする必要はありません。これらの制約は、最終的な NIS+ の目的を明確にしてから変更することができます。
NIS+ のセキュリティは、ユーザーと管理者にとって非常に有益ですが、ユーザーにも管理者にも、より詳しい知識と設定作業が必要になります。 また、計画上の決定をいくつか行う必要もあります。第 3 章「NIS+ セキュリティ基準の選択」では、NIS+ セキュリティの持つ意味と、NIS+ 名前空間でセキュリティを使用する場合に必要な決定事項について説明します。
移行の間は、NIS と NIS+ の名前空間を並行して使用することは事実上避けられません。2 つの名前空間を同時に使用するには、さらに資源を追加する必要があるため、各サイトが二重のサービスを使用する時間、または名前空間内の二重サービスの適用範囲を減らす (たとえば、可能なかぎり多くのドメインを NIS+ に変換するなど) ように努めてください。
第 4 章「NIS 互換モードの使用方法」では、NIS 互換モードに関連する移行の問題を説明し、 NIS から、NIS 互換を経由して、NIS+ へ完全に移行する方法を示します。
上記で説明した計画上の決定のほかに、第 5 章「移行の準備」で説明するように、他にもいくつかの準備を行う必要があります。
第 6 章「移行の実施」では、推奨される一連の手順を示して、それまでに計画した移行を実際に実行します。