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

パート I ネームサービスとディレクトリサービスについて

ここでは、Solaris オペレーティング環境のネームサービスとディレクトリサービスについて概要を説明します。 また、異なるサービスと組み合わせて使用する際に利用する nsswitch.conf ファイルについても説明します。

第 1 章 ネームサービスとディレクトリサービス (概要)

この章では、Solaris で使用されるネームサービスとディレクトリサービスの概要について説明します。 また、DNS、NIS、および LDAP ネームサービスについても簡潔に説明します。 NIS+ および FNS の詳細については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。

ネームサービスとは

「ネームサービス」は、ユーザー、マシン、およびアプリケーションがネットワーク経由で通信するための情報を集中管理することを可能にします。 格納される情報には、以下が含まれます。

集中化されたネームサービスが存在しない場合、マシンごとに、これらの情報のコピーを管理する必要があります。 ネームサービス情報はファイルまたはマップ、データベーステーブルの形で格納できます。 すべてのデータを1 カ所で管理すれば、管理がより簡単になります。

ネームサービスは、どのようなコンピュータネットワークにも欠かせないものです。 ネームサービスは、他の機能に加え、次の機能を提供します。

ネットワーク情報サービスを使用すると、数値アドレスの代わりに一般的な名前でマシンを識別できます。 これにより、ユーザーは 192.168.00.00 のような扱いにくい数値アドレスを記憶して入力する必要がなくなるため、通信がより簡単になります。

たとえば、pineelmoak という 3 台のマシンで構成されるネットワークを考えてみましょう。 pineelm または oak にメッセージを送信するには、pine はそれら 2 台のネットワークアドレスを知る必要があります。 そのため pine は、自分自身を含めたネットワーク内のすべてのマシンのネットワークアドレスを格納する /etc/hosts ファイルまたは /etc/inet/ipnodes ファイルを保持しています。

この図は、pine、elm、および oak マシンと、pine 上に登録されているそれぞれの IPアドレスを示しています。

同様に、elmoakpine と通信したり、お互いに通信するためには、上記のようなファイルを保持している必要があります。

この図は、ネットワーク上に存在するマシンの全 IP アドレスを /etc/hosts ファイルに記録しているマシンを示しています。

マシンには、アドレスに加え、セキュリティ情報、メールデータ、ネットワークサービスについての情報なども格納されます。 ネットワークによって提供されるサービスが増えるにつれて、格納する情報の種類も増えていきます。 その結果、各マシンで /etc/hosts/etc/inet/ipnodes のようなファイルのセット全部を保持する必要がでてくる可能性があります。

ネットワーク情報サービスは、サーバー上にネットワーク情報を格納し、照会を実行するマシンに情報を提供します。

照会を実行するマシンは、サーバーの「クライアント」と呼ばれます。 次の図に、クライアントとサーバーの関係を示します。 ネットワークについての情報が変更されるたびに、各クライアントのローカルファイルを変更する代わりに、管理者はネットワーク情報サービスが格納する情報だけを更新します。 これによって、エラー、クライアント間の不一致、そして作業量を減らすことができます。

この図は、クライアント/サーバーコンピューティングの関係にあるサーバーとクライアントを示しています。

このように、サーバーがネットワークを通してサービスをまとめてクライアントに提供する方法を「クライアントサーバーコンピューティング」と呼びます。

ネットワーク情報サービスの第一の目的は情報の一元管理ですが、もう1 つの目的はネットワーク名の簡素化です。 たとえば、ある会社がネットワークを設定して、インターネットに接続したと仮定します。 インターネットはその会社に 192.68.0.0 というネットワーク番号と、doc.com というドメインネームを割り当てました。 会社には「営業 (Sales)」と「製造 (Manf)」という 2 つの部門があるため、このネットワークは 1 つのメインネットと、各部門に 1 つのサブネットに分割されます。 各ネットには独自のアドレスがあります。

この図は、doc.com と 2 つのサブネットの IP アドレスを示しています。

上に示すように、各部はネットワークアドレスで識別することもできますが、ネームサービスによって使用可能となる説明的な名前の方が便利です。

この図は、doc.com と 2 つのサブネットを示し、各サブネットを説明的な名前で指定しています。

メールやその他のネットワーク通信の送信先を 129.44.1.0 というアドレスで指定する代わりに、単に doc と指定できます。 また、メールの送信先を 192.68.2.0192.68.3.0 と指定する代わりに、sales.docmanf.doc と指定できます。

名前はまた、物理アドレスよりもはるかに柔軟です。 物理的なネットワークはめったに変更されませんが、企業の組織はよく変化します。

たとえば、doc.com ネットワークが、S1、S2、S3 の 3 台のサーバーによってサポートされ、そのうち 2 台のサーバー (S1 と S3) がクライアントをサポートしているとします。

この図は、doc.com ドメインに 3 台のサーバーが存在し、そのうちの 2 台がそれぞれ 3 台のクライアントをサポートしている状況を示しています。

クライアント C1、C2、C3 はネットワーク情報をサーバー S1 から入手します。クライアント C4、C5、C6 は、サーバー S3 から情報を入手します。結果として構成されるネットワークの概要を、次の表に示します。 表は、前記のネットワークを一般化して表現したもので、実際のネットワーク情報マップとは異なります。

表 1–1 docs.com ネットワークの構成

ネットワークアドレス 

ネットワーク名 

サーバ 

クライアント 

192.68.1.0 

doc 

S1 

 

192.68.2.0 

sales.doc 

S2 

C1、C2、C3 

192.68.3.0 

manf.doc 

S3 

C4、C5、C6 

2 つの部門からある人数の人材を借りて第 3 の部門 Test を新設し、第 3 のサブネットは開設しなかったとします。 その結果、物理ネットワークは、企業の組織とは対応しなくなります。

この図は、第 3 のサブネットを追加することなく第 3 の部門 Test を追加する場合を示しています。

Test 部門のトラフィックには専用のサブネットがなく、192.68.2.0192.68.3.0 に分割されます。 ここで、ネットワーク情報サービスを使用することにより、Test 部門のトラフィックにも専用のネットワークを備えることができます。

この図は、専用のネットワークを持つ Test 部門を示しています。

このように、組織が変更された場合、そのネットワーク情報サービスでは以下に示すようにマッピングを変更できます。

この図は、ネットワークのマッピングを変更して一部のクライアントをサーバー間で移動させた状況を示しています。

この変更の結果、クライアント C1 と C2 はサーバー S2 から、C3、C4、C5 はサーバー S3 から情報を入手するようになります。

組織内でその後に行われる変更に対しては、ハードウェアのネットワーク構造を再編成することなく、ネットワーク情報構造を変更することにより対応できます。

Solaris のネームサービス

Solaris オペレーティング環境は、以下のネームサービスを提供します。

最近のほとんどのネットワークでは、これらのサービスを 2 つ、またはそれ以上組み合わせて使用します。 複数のサービスを使用するときは、nsswitch.conf ファイルで調整します。このファイルについては第 2 章「ネームサービススイッチ (概要)」で説明します。

DNS ネームサービスの説明

DNS は TCP/IP ネットワーク用にインターネットが提供するネームサービスです。 DNS はネットワーク上のマシンがインターネットアドレスではなく、普通の名前で識別できるように開発されたものです。 DNS は、ローカルの管理ドメイン内と、複数の管理ドメイン間においてホスト名の管理を行います。

DNS を使用する、ネットワークに接続されたマシンの集合のことを「DNS 名前空間」と呼びます。 DNS 名前空間は階層をなす複数の「ドメイン」に分けることができます。 DNS ドメインは、複数のマシンからなるグループです。 各ドメインは複数の「ネームサーバー」、つまり、1 つの主サーバーと 1 つまたは複数の副サーバーよってサポートされます。 各サーバーは in.named デーモンを実行することによってDNS を実装しています。 クライアント側は、「リゾルバ」によって DNS を実装します。リゾルバの機能はユーザーの照会を解決することです。 リゾルバがネームサーバーに照会すると、ネームサーバーは要求された情報か、または他のサーバーに照会する旨を返します。

/etc ファイルネームサービスの説明

ホストを基本とした初期の UNIX のネームシステムは、スタンドアロンの UNIX マシン用に開発された後、ネットワークで使用されるようになりました。 UNIX オペレーティングシステムの旧版や UNIX マシンの多くは、現在でもこのシステムを使用していますが、大規模で複雑なネットワークにはあまり適切ではありません。

NIS ネームサービスの説明

ネットワーク情報サービス (NIS) は、DNS とは独立して開発されました。 DNS が数値 IP アドレスの代わりにマシン名を使うことによって、通信を簡略化することに焦点を当てているのに対して、 NIS は、多様なネットワーク情報を集中管理することによりネットワーク管理機能を高めることに焦点を当てています。 NIS には、ネットワーク、マシンの名前とアドレス、ユーザー、およびネット ワークサービスに関する情報も格納されます。 このようなネットワーク情報の集合体を、「NIS 名前空間」と呼びます。

NIS 名前空間情報は NIS マップに格納されています。 NIS マップは、UNIX の /etc ファイルおよび他の構成ファイルを置換するように設計されているので、 名前やアドレスよりはるかに多くの情報を保存できます。 その結果、NIS 名前空間には非常に大きなマップの集合が含まれることになります。 詳細については、NIS マップに関する作業 を参照してください。

NIS は DNS に似たクライアントサーバーの配列を持っています。 複製の NIS サーバーは NIS クライアントへサービスを提供します。 主サーバーは「マスター」サーバーと呼ばれ、信頼性を保証するためにバックアップつまり「スレーブ」サーバーを持っています。 どちらのサーバーも NIS 検索ソフトウェアを使用し、NIS マップを格納します。 NIS アーキテクチャおよび NIS の管理方法の詳細については、第 8 章「NIS サービスの設定と構成」および第 9 章「NIS の管理 (手順)」を参照してください。

NIS+ ネームサービスの説明

ネットワーク情報サービスプラス (NIS+) は、NIS によく似たネットワークネームサービスですが、より多くの機能を備えています。 ただし、NIS+ は NIS の拡張機能ではありません。

NIS+ ネームサービスは、組織の形態に適合するように設計されています。 NIS とは異なり、NIS+ の名前空間は動的な構成で、正規ユーザーであればいつでも更新できます。

NIS+ を使用すると、マシンのアドレス、セキュリティ情報、メール情報、Ethernet インタフェース、ネットワークサービスなどの情報を 1 カ所に格納できます。 このように構成されたネットワーク情報を、NIS+「名前空間」と呼びます。

NIS+ 名前空間は階層構造となっていて、 UNIX のディレクトリファイルシステムによく似ています。 階層構造になっていることから、NIS+ 名前空間を企業組織の階層に合わせて構成できます。 名前空間における情報の配置は、物理的な配置とは関係ありません。 したがって、NIS+ 名前空間は、独立して管理できる複数のドメインに分割できます。 クライアントは、適切なアクセス権があれば、自分のドメイン以外のドメインの情報にもアクセスできます。

NIS+ はクライアントサーバーモデルを使用して、NIS+ 名前空間に情報を格納し、またその情報にアクセスできます。 各ドメインは複数のサーバーによってサポートされます。 メインのサーバーは「主」サーバーと呼ばれ、 バックアップサーバーは「副」サーバーと呼ばれます。 ネットワーク情報は、内部 NIS+ データベース内にある 16 個の標準 NIS+ テーブルに格納されています。 主サーバーと副サーバーの両方で NIS+ サーバーソフトウェアが動作しており、NIS+ テーブルのコピーを管理しています。 マスターサーバー上の NIS+ データの変更は、副サーバーにも自動的に伝達されます。

NIS+ には、名前空間の構造とその情報を保護するために、高度なセキュリティシステムが組み込まれています。 NIS+ は、情報にアクセスしようとしているクライアントが正当なものであるかどうかを認証と承認によって確認します。 「認証」とは、情報の要求者がネットワークの正当なユーザーであるかどうかを判定することです。 「承認」では、特定のユーザーが情報を所有したり修正したりできるかどうかを確認します。 NIS+ のセキュリティの詳細については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。

NIS+ から LDAP への移行の詳細については、 第 20 章「NIS+ から LDAP への移行」を参照してください。

FNS ネームサービスの説明

FNS の詳細については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』 を参照してください。

LDAP ネームサービスの説明

Solaris 9 は、Sun ONE Directory Server (以前の名称は iPlanet Directory Server) および他の LDAP Directory Server を使用する場合、LDAP (Lightweight Directory Access Protocol) をサポートします。

LDAP ネームサービスの詳細は、第 12 章「LDAP ネームサービスの紹介 (概要/リファレンス)」を参照してください。

NIS から LDAP、または NIS+ から LDAP への移行についての詳細は、第 19 章「NIS から LDAP への移行 (概要と手順) 」または第 20 章「NIS+ から LDAP への移行」を参照してください。

ネームサービスの 比較一覧

 

DNS 

NIS 

NIS+ 

FNS 

LDAP * 

名前空間 

階層 

Flat 

階層 

階層 

階層 

データ記憶領域 

ファイル/リソースレコード 

2 列のマップ 

複数列のテーブル 

マップ 

ディレクトリ (可変) 

サーバー名 

マスター/スレーブ 

マスター/スレーブ 

ルートマスター/非ルートマスター 主/副 キャッシュ/スタブ 

なし 

マスター/複製 

セキュリティ 

SSL 

なし (root またはなし) 

DES 認証 

なし (root またはなし) 

SSL 

トランスポート 

TCP/IP 

LAN 

LAN 

LAN 

TCP/IP  

スケール 

グローバル 

LAN 

LAN 

グローバル (DNS 付)/LAN  

グローバル 

第 2 章 ネームサービススイッチ (概要)

この章では、ネームサービススイッチについて説明します。 ネームサービススイッチは、異なるネームサービスの使用方法を調整するために使います。

ネームサービススイッチについて

ネームサービススイッチは nsswitch.conf という名前のファイルです。 クライアントのマシンやアプリケーションがネットワーク情報を得る方法を管理します。 ネームサービススイッチは、次のような getXbyY() インタフェースのいずれかを呼び出すクライアントアプリケーションによって使用されます。

各マシンの /etc ディレクトリには、スイッチファイルがあります。 ファイルの各行は、ホスト、パスワード、グループなどの特定タイプのネットワーク情報を識別します。その後に 1 つまたは複数のネットワーク情報の場所が続きます。

クライアントは、1 つまたは複数のスイッチのソースからネーミング情報を入手できます。 たとえば、NIS+ のクライアントは、NIS+ テーブルからホスト情報を、ローカルの /etc ファイルからパスワード情報をそれぞれ入手できます。 さらに、クライアントはスイッチが各ソースを使用する条件を指定することもできます。 表 2–1 を参照してください。

Solaris オペレーティング環境では、インストールの過程で、各マシンの /etc ディレクトリに nsswitch.conf ファイルが自動的にロードされます。 LDAP、NIS、NIS+ またはローカルファイル用にスイッチファイルの 4 つの代替 (テンプレート) バージョンも /etc にロードされます。 nsswitch.conf テンプレートファイル を参照してください。

これら 4 つのファイルは、代替デフォルトスイッチファイルです。 各ファイルはそれぞれ /etc ファイル、NIS、NIS+、LDAP という異なる主要なネームサービス用に設計されています。 Solaris ソフトウェアをマシンに最初にインストールする時に、インストール担当者はマシンのデフォルトのネームサービス (NIS+、NIS、ローカルファイル、または LDAP) を選択します。 インストール中に、対応するテンプレートファイルが nsswitch.conf ファイルにコピーされます。 たとえば、LDAP を使用するクライアントマシンでは、インストールの過程で nsswitch.ldapnsswitch.conf にコピーされます。 特殊な名前空間を持っている場合を除き、通常の操作には nsswitch.conf にコピーされるデフォルトのテンプレートファイルを使用します。

DNS 用のデフォルトファイルは提供されませんが、これら 4 つのファイルのどれでも編集して DNS 用に使用できます。 詳細は、DNS とインターネットでのアクセス を参照してください。

マシンの主要なネームサービスを後から変更する場合は、該当する代替スイッチファイルを nsswitch.conf にコピーします。 nsswitch.conf テンプレートファイル を参照してください。 NIS 管理者はまた、/etc/nsswitch.conf ファイルの該当行を編集することによって、クライアントで使用する特定タイプのネットワーク情報のソースを変更できます。 構文について、以下に説明します。 詳細については、ネームサービススイッチを変更する方法 を参照してください。

nsswitch.conf ファイルのフォーマット

nsswitch.conf ファイルは、基本的には 16 種類の情報とそのソース (getXXbyYY() 関数の情報検索先) のリストです。 16 種類の情報は次のとおりです (順序は、必ずしも次のとおりではありません)。

次の表に、上記の情報タイプのスイッチファイルの中に表示できるソースの種類とその説明を示します。

表 2–1 スイッチファイルの情報ソース

ソース 

説明 

files

クライアントの /etc ディレクトリに格納されているローカルファイル (/etc/passwd など)

nisplus

NIS+ テーブル。 hosts テーブルなど

nis

NIS マップ。 hosts マップなど。

compat

compat パスワードとグループ情報を対象に、/etc/passwd/etc/shadow/etc/group ファイルで旧形式の「+」または「-」構文をサポートする

dns

ホスト情報を DNS から入手するように指定する 

ldap

エントリを LDAP ディレクトリから入手するように指定する 

検索基準

単一ソース。 nisplus のような情報のソースが 1 つだけの場合、スイッチを使用している関数は、そのソースだけで情報を検索します。 情報が見つかった場合、「success」という状態メッセージが返されます。 情報が見つからない場合は、検索が停止され、「success」 以外の状態メッセージが返されます。 状態メッセージに基づいて何をするかは、関数によって異なります。

複数ソース。 テーブルに特定の情報タイプのソースが複数ある場合、スイッチは最初のソースから検索を行うように関数に指示します。 情報が見つかった場合、「success」という状態メッセージが返されます。 最初のソースで情報が見つからない場合は、次のソースが検索されます。 関数は情報が見つかるか、return 処理によって中止されるまで全ソースを検索します。 必要な情報がどのソースにもなかったとき、関数は検索を停止し、non-success という状態メッセージを返します。

スイッチ状態メッセージ

情報が見つかると、「success」という状態メッセージが返されます。 探している情報が見つからない場合は、3 種類のエラー状態メッセージのいずれかが返されます。 表示される状態メッセージを次の表に示します。

表 2–2 スイッチ状態メッセージ

状態メッセージ 

意味 

SUCCESS

要求されたエントリがソース内で発見された 

UNAVAIL

ソースが応答しない、または使用不可。 つまり、NIS+ テーブル、NIS マップ、または /etc ディレクトリのファイルが見つからなかったかアクセスできなかった

NOTFOUND

ソースが「エントリなし」と応答した。テーブル、マップ、ファイルにアクセスしたが、必要な情報は見つからなかった。 

TRYAGAIN

ソース使用中のため 再検索の必要あり。 テーブル、マップ、ファイルは見つかったが、照会に対して応答しなかった 

スイッチの動作に関するオプション

次の表に示すように、状態メッセージに対して 2 つの「動作」のどちらかで応答するようにスイッチに指示できます。

表 2–3 スイッチ状態メッセージへの応答

動作 

意味 

return

情報の検索を停止する 

continue

次のソースの検索を試みる 

デフォルト検索基準

nsswitch.conf ファイルの状態メッセージと動作オプションの組み合わせによって、関数の各ステップでの動作が決まります。 状態と動作を組み合わせて、「検索基準」を構成します。

スイッチのデフォルト検索基準は、どのソースについても同じです。 これらを上記の状態メッセージに基づいて説明すると、次のようになります。

ほかの検索基準を明示的に指定してデフォルトの検索基準を変更するには、上記の STATUS=action という構文を使用します。 たとえば、NOTFOUND 状態に対し、デフォルトの動作では次のソースに対する検索を続行しますが、 NOTFOUND 状態の場合に検索を停止するように networks の設定を変更するには、スイッチファイルの networks 行を次のように編集します。


networks: nis [NOTFOUND=return] files

networks: nis [NOTFOUND=return] files 行は、NOTFOUND 状態に関してデフォルトでない検索基準を設定しています。 デフォルト以外の設定をするときは [ ] を使用します。

この例では、検索関数は以下のような働きをします。

構文が正しくない場合の処理

クライアントのライブラリ関数には、nsswitch.conf ファイルにおいて「必要なエントリがない」、「エントリの構文が誤っている」といった場合に使用される、コンパイル時に組み込まれるデフォルトエントリがあります。 これらのエントリは nsswitch.conf ファイルのデフォルトエントリと同じものです。

ネームサービススイッチは、テーブル名やソース名のスペルが正しいものとして処理をします。 テーブル名やソース名のスペルが正しくない場合は、デフォルト値が使用されます。

Auto_homeAuto_master

auto_home テーブル、auto_master テーブルとマップのスイッチ検索基準は、automount と呼ばれる 1 つのカテゴリに統合されます。

Timezone とスイッチファイル

timezone テーブルはスイッチを使用しないため、スイッチファイルのリストには含まれていません。

nsswitch.conf ファイル中のコメント

nsswitch.conf ファイル中の行のうち、コメント文字 (#) で始まっているものはコメント行として解釈され、 ファイルを検索する関数では無視されます。

コメント文字の前の文字列は、nsswitch.conf ファイルを検索する関数によって解釈されます。 コメント文字よりあとの文字列は、コメントとして解釈され、無視されます。

表 2–4 スイッチファイルのコメント例

行の種類 

例 

コメント行 

#hosts: nisplus [NOTFOUND=return] files 

解釈される行 

hosts: nisplus [NOTFOUND=return] file 

部分的に解釈される行 (「files」の部分は解釈されない)

hosts: nisplus [NOTFOUND=return] # files 

キーサーバーとスイッチファイルの publickey エントリ


注意 – 注意 –

nsswitch.conf に変更を加えた後は、キーサーバーを再起動する必要があります。


キーサーバーは、起動時にだけネームサービススイッチ構成ファイルの publickey エントリを参照します。 スイッチ構成ファイルを変更しても再起動しない限り、キーサーバーは変更を登録しません。

nsswitch.conf テンプレートファイル

Solaris オペレーティング環境では、さまざまなネームサービスに対応できるように、スイッチテンプレートファイルが 4 つ用意されています。 ファイルごとに、異なるデフォルトの情報ソースセットが提供されます。

4 つのテンプレートファイルは、次のとおりです。

要件に一番近いテンプレートファイルを nsswitch.conf 構成ファイルにコピーして、必要に応じてファイルを変更します。

たとえば、LDAP テンプレートファイルを使用する場合は、次のコマンドを入力します。


mymachine# cp /etc/nsswitch.ldap /etc/nsswitch.conf

デフォルトスイッチテンプレートファイル

Solaris オペレーティング環境で用意されている 4 つのスイッチファイルは、次のとおりです。


例 2–1 NIS+ スイッチファイルテンプレート (nsswitch.nisplus)


#
#
# /etc/nsswitch.nisplus:
#
#
# An example file that could be copied over to /etc/nsswitch.conf;
# it uses NIS+ (NIS Version 3) in conjunction with files.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet"
# transports.
 
# the following two lines obviate the "+" entry in /etc/passwd 
# and /etc/group.
passwd: files nisplus
group: files nisplus
# consult /etc "files" only if nisplus is down. 
hosts: nisplus [NOTFOUND=return] files
# Uncomment the following line, and comment out the above, to use 
# both DNS and NIS+. You must also set up the /etc/resolv.conf 
# file for DNS name server lookup. See resolv.conf(4).
# hosts: nisplus dns [NOTFOUND=return] files
services: nisplus [NOTFOUND=return] files
networks: nisplus [NOTFOUND=return] files
protocols: nisplus [NOTFOUND=return] files
rpc: nisplus [NOTFOUND=return] files
ethers: nisplus [NOTFOUND=return] files
netmasks: nisplus [NOTFOUND=return] files	
bootparams: nisplus [NOTFOUND=return] files
publickey: nisplus
netgroup: nisplus
automount: files nisplus
aliases: files nisplus
sendmailvars: files nisplus


例 2–2 NIS スイッチファイルテンプレート


#
# /etc/nsswitch.nis:
#
# An example file that could be copied over to /etc/nsswitch.conf;
# it uses NIS (YP) in conjunction with files.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet"
# transports.
#
# the following two lines obviate the "+" entry in /etc/passwd
# and /etc/group.
passwd: files nis
group: files nis
# consult /etc "files" only if nis is down. 
hosts: nis [NOTFOUND=return] files
networks: nis [NOTFOUND=return] files
protocols: nis [NOTFOUND=return] files
rpc: nis [NOTFOUND=return] files
ethers: nis [NOTFOUND=return] files
netmasks: nis [NOTFOUND=return] files	
bootparams: nis [NOTFOUND=return] files
publickey: nis [NOTFOUND=return] files
netgroup: nis
automount: files nis
aliases: files nis
# for efficient getservbyname() avoid nis
services: files nis
sendmailvars: files


例 2–3 Files スイッチファイルテンプレート


#
# /etc/nsswitch.files:
#
# An example file that could be copied over to /etc/nsswitch.conf;
# it does not use any naming service.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet"
# transports.
passwd: files
group: files
hosts: files
networks: files
protocols: files
rpc: files
ethers: files
netmasks: files	
bootparams: files
publickey: files
# At present there isn't a 'files' backend for netgroup;
# the system will figure it out pretty quickly, and will notuse
# netgroups at all.
netgroup: files
automount: files
aliases: files
services: files
sendmailvars: files


例 2–4 LDAP スイッチファイルテンプレート


#
# /etc/nsswitch.ldap:
#
# An example file that could be copied over to /etc/nsswitch.conf; it
# uses LDAP in conjunction with files.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.

# the following two lines obviate the "+" entry in /etc/passwd 
and /etc/group.
passwd:     files ldap
group:      files ldap

hosts:      ldap [NOTFOUND=return] files

networks:   ldap [NOTFOUND=return] files
protocols:  ldap [NOTFOUND=return] files
rpc:        ldap [NOTFOUND=return] files
ethers:     ldap [NOTFOUND=return] files
netmasks:   ldap [NOTFOUND=return] files
bootparams: ldap [NOTFOUND=return] files
publickey:  ldap [NOTFOUND=return] files

netgroup:   ldap

automount:  files ldap
aliases:    files ldap

# for efficient getservbyname() avoid ldap
services:   files ldap
sendmailvars:   files

nsswitch.conf ファイル

Solaris オペレーティング環境と共にインストールされるデフォルトの nsswitch.conf ファイルは、インストール時に選択したネームサービスで決まります。 ファイルの各行は、ネットワーク情報の種類 (ホスト、パスワード、グループなど) と、それに対する情報ソース (NIS+ テーブル、NIS マップ、DNS ホストテーブル、同一マシン上の /etc など) を対応させています。 ネームサービスを選択すると、そのサービスのスイッチテンプレートファイルがコピーされ新しい nsswitch.conf ファイルが作成されます。 たとえば、NIS+ を選択した場合は、nsswitch.nisplus ファイルがコピーされ新しい nsswitch.conf ファイルが作成されます。

nsswitch.conf ファイルは、Solaris 9 リリースをインストールすると各マシンの /etc ディレクトリに自動的に作成されます。また、次の 4 つの代替テンプレートファイルも作成されます。

これらの 4 つの代替テンプレートファイルには、それぞれネットワーク情報の情報ソースとして NIS+、NIS、ローカルファイル、 または LDAP を使用する標準的なスイッチ構成が設定されています。 DNS 用のデフォルトファイルは提供されませんが、これら 4 つのファイルのどれでも編集して DNS 用に使用できます。 第 5 章「DNS の管理 (参照情報)」を参照してください。 Solaris オペレーティング環境をマシンに最初にインストールするとき、インストーラによりマシンのデフォルトのネームサービスが選択されます。 インストール中に、選択されたネームサービスに対応するテンプレートファイルが /etc/nsswitch.conf にコピーされます。 たとえば、NIS+ を使用しているクライアントマシンでは、インストールの過程で nsswitch.nisplusnsswitch.conf にコピーされます。

ネットワークがインターネットに接続されており、ユーザーが DNS を使用してインターネット上のホストにアクセスする必要がある場合は、DNS 転送を有効にする必要があります。

特殊な名前空間を持っている場合を除き、通常の操作には nsswitch.conf にコピーされるデフォルトのテンプレートファイルを使用します。

構成ファイルの変更

マシンのネームサービスを変更するときは、そのマシンのスイッチファイルを新しいネームサービスに対応させて変更する必要があります。 たとえば、マシンのネームサービスを NIS から NIS+ に変更する場合、スイッチファイルを NIS+ に対応したものに変更する必要があります。 スイッチファイルを変更するには、対応するテンプレートファイルを nsswitch.conf にコピーします。

NIS+ インストールスクリプトを使って NIS+ をマシンにインストールすると、NIS+ テンプレートファイルが自動的に nsswitch.conf にコピーされます。 この場合、特にスイッチファイルをカスタマイズしたいというのでなければ、スイッチファイルを明示的に変更する必要はありません。

スイッチファイルを変更する前に、ファイルに列挙されている情報ソースが正しく設定されていることを確認してください。 たとえば、NIS+ 用スイッチファイルに変更するのであれば、ワークステーションには NIS+ サービスへのアクセス権が必要になり、 ローカルファイル用スイッチファイルに変更するのであれば、それらのローカルファイルがワークステーション上に正しく設定されている必要があります。

ネームサービススイッチを変更する方法

スイッチファイルを変更する場合は、次の手順に従います。

  1. スーパーユーザーになります。

  2. 使用するネームサービス用のテンプレートファイルを nsswitch.conf にコピーします。

    「NIS+ 用」(NIS+ スクリプトにより自動的にコピーされる)


    client1# cd /etc
    client1# cp nsswitch.nisplus nsswitch.conf
    

    「NIS 用」


    client1# cd /etc
    client1# cp nsswitch.nis nsswitch.conf
    

    「ローカルの /etc ファイル用」


    client1# cd /etc
    client1# cp nsswitch.files nsswitch.conf
    
  3. マシンをリブートします。

    nscd デーモンによってスイッチ情報がキャッシュに書き込まれます。 ライブラリ関数の中には、nsswitch.conf ファイルが変更されたかどうかを定期的にチェックしないものがあります。 このため、マシンをリブートして、nscd とこれらのライブラリ関数が確実に最新スイッチの情報を持つようにする必要があります。


注 –

LDAP ネームサービスを使用するには、すべての LDAP クライアントマシンを正しく設定し、nsswitch.conf を変更する必要があります。 詳細については、第 16 章「クライアントの設定 (手順)」を参照してください。


DNS とインターネットでのアクセス

nsswitch.conf ファイルでは、以下のいくつかのセクションで説明するとおり、クライアントの DNS 転送も制御されます。 DNS 転送によって、クライアントへのインターネットでのアクセスが可能になります。 NIS と NIS+ 用に DNS 転送を設定する方法については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。

IPv6 と Solaris ネームサービス

NIS、NIS+、および LDAP では、IPv6 データを格納できるだけでなく、プロトコルのトラフィックに IPv6 トランスポートを使用することもできます。 DNS は、クライアント側でのみ IPv6 トランスポートの使用をサポートします。 BIND Version 8.3.3 では、DNS サーバーは IPv6 トランスポートをサポートしません。

nsswitch.conf ファイルは、IPv6 アドレスの検索基準を制御します。 IPv6 は、32 ビットから 128 ビットまで IP アドレスサイズを大きくして、より多くのアドレス階層をサポートし、 より多くのノードにアドレス指定できるようにします。 IPv6 の構成と実装の詳細については、『Solaris のシステム管理 (IP サービス)』を参照してください。

IPv6 アドレスには、新しい ipnodes ソースを使用してください。 /etc/inet/ipnodes ファイルには、IPv4 と IPv6 のアドレスが格納されています。 /etc/inet/ipnodes ファイルは、/etc/hosts ファイルと同じフォーマットを使用します。

IPv6 のネームサービスでは、 検索用に新しい ipnodes ソースを使用しています。 たとえば、LDAP で IPv6 アドレスを認識させる場合は、次のように指定します。


ipnodes: ldap [NOTFOUND=return] files

注意 – 注意 –

起こり得る遅延の問題について


+/- 構文との互換性を追加する

/etc/passwd/etc/shadow/etc/group の各ファイルで +/- 構文を使用する場合は、nsswitch.conf ファイルを変更して互換性を確保する必要があります。

スイッチファイルとパスワード情報


注意 – 注意 –

nsswitch.conf ファイルでは、passwd 情報のために files を 1 番目のソースにしてください。 files が 1 番目のソースでない場合は、ネットワークセキュリティが低くなるか、ログインが難しくなります。


たとえば、NIS+ の環境では、nsswitch.conf ファイルの passwd 行は次のようになります。


passwd: files nisplus

NIS の環境では、nsswitch.conf ファイルの passwd 行は次のようになります。


passwd: files nis