Solaris ネーミングの管理

第 1 章 ネームサービスについて

この章では、「名前空間」と「ネームサービス」の概要と機能について説明します。ネームサービスは、「ネットワーク情報サービス」、「ディレクトリサービス」と呼ぶこともあります。後半では、DNS、NIS、FNS、NIS+ という 4 つの Solaris ネームサービスについて簡単に説明します。

NIS+、NIS、DNS、FNS の名前空間の設定については、『Solaris ネーミングの設定と構成』で説明します。用語や略語の定義については 用語集を参照してください。

ネームサービスとは

ネームサービスは、ユーザー、ワークステーション、アプリケーションが、ネットワークを通じてやりとりする必要がある情報を 1 つの場所に格納します。情報にはたとえば、以下のものがあります。

集中化されたネームサービスがなければ、ワークステーションごとに、これらの情報のコピーを管理しなければなりません。ネームサービス情報はファイルまたはマップ、データベーステーブルの形で格納できます。これらのデータを 1 カ所で管理すれば、大規模なネットワークの管理が簡単になります。

ネームサービスは、どのようなコンピュータネットワークにも欠かせないものです。そのほかにもネームサービスには、以下の機能があります。

ネットワーク情報サービスを使用すると、数値アドレスの代わりに一般的な名前でワークステーションを識別できます。そのため、ユーザーは「129.44.3.1」のような難しい数値アドレスを覚えて入力する必要がなくなり、情報のやりとりが簡単になります。

たとえば、pineelmoak という 3 台のワークステーションからなる簡単なネットワークを例にとります。pineelm または oak にメッセージを送信するには、それら 2 台のネットワークアドレスを知る必要があります。そのため pine は、自分自身を含めたネットワーク内のすべてのワークステーションのネットワークアドレスを格納する /etc/hosts ファイルを持っています。

Graphic

同様に、elmoakpine と通信したり、お互いに通信するためには、同じ /etc/hosts ファイルを持つ必要があります。

Graphic

しかし、ワークステーションが格納しなければならないネットワーク情報は、アドレスだけではありません。セキュリティ情報、メールデータ、Ethernet インタフェースについての情報、ネットワークサービスについての情報、ネットワークの使用を許可されたユーザーグループについての情報、ネットワーク上で提供されるサービスについての情報なども必要です。ネットワークによって提供されるサービスが増えるにつれて、そのファイルも大きくなります。その結果、各ワークステーションに /etc/hosts のようなファイルのセット全部を持たせる必要もでてきます。

この情報が変更されるごとに、管理者はネットワーク内のすべてのワークステーションにある情報を最新のものにしなければなりません。小さなネットワークではこれは単純な作業にすぎませんが、中規模または大規模なネットワークでは、この仕事は時間がかかるだけではなく、手に負えないものとなります。

ネットワーク情報サービスがこの問題を解決します。このサービスでは、ネットワーク情報をサーバーに格納し、その情報を要求するワークステーションに提供します。

Graphic

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

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

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

Graphic

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

Graphic

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

名前は、物理アドレスよりもはるかに柔軟です。物理的なネットワークはめったに変更されませんが、これらを使用する組織はよく変化します。ネットワーク情報サービスは、組織とその物理的なネットワークとの間のバッファのように機能します。その理由は、ネットワーク情報サービスが物理的ネットワークに実際に接続されているのではなく、マップされているためです。次の例でこれを説明します。

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

Graphic

クライアント C1、C2、C3 はネットワーク情報をサーバー S1 から入手します。クライアント C4、C5、C6 はこれをサーバー S3 から入手します。このような形態のネットワークを次の表に示します (表 1-1 は、前記のネットワークを一般化して表現したもので、実際のネットワーク情報マップとは異なる)。

表 1-1 doc.com ネットワークの構成

ネットワークアドレス 

ネットワーク 

サーバー 

クライアント 

129.44.1.0 

doc

S1 

 

129.44.2.0 

sales.doc

S2 

C1, C2, C3 

129.44.3.0 

manf.doc

S3 

C4, C5, C6 

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

Graphic

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

Graphic

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

Graphic

こうして、クライアント C1 と C2 はサーバー S2 から、C3 と C4 はサーバー S4 から、C5 と C6 はサーバー S3 からそれぞれ情報を入手します。

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

Solaris のネームサービス

Solaris 7 リリースには、以下のようなネームサービスがあります。

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

DNS とは

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

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

/etc ファイル

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

NIS とは

「NIS」は DNS とは独立して開発され、目的はやや異なっています。DNS はワークステーションアドレスの代わりにワークステーション名を使うことによって、通信を簡略化することに焦点を当てているのに対して、NIS の場合は、多様なネットワーク情報を集中管理することによりネットワーク管理機能を高めることに焦点を絞っています。NIS には、ユーザー、ネットワークそのもの、ネットワークサービスについての情報も格納されます。これらのネットワーク「情報」をまとめて「NIS の名前空間」と呼びます。

NIS 名前空間情報は NIS マップに格納されています。NIS マップは UNIX の /etc ファイルやその他の構成ファイルに替わるものとして設計され、実際には名前やアドレス以外の情報も持っています。その結果、NIS 名前空間には非常に大きなマップの集合が含まれることになります (「NIS マップ」を参照)。

NIS は DNS に似たクライアントサーバーの配列を持っています。複製の NIS サーバーは NIS クライアントへサービスを提供します。主サーバーは「マスター」サーバーと呼ばれ、安全のためのバックアップがあります。これは「スレーブ」サーバーと呼ばれています。どちらのサーバーも NIS 情報検索ソフトウェアを使用し、NIS マップを格納します。NIS アーキテクチャの詳細は、「NIS アーキテクチャ」を参照してください。

NIS とその管理方法については パート IV「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+ は認証 (authentication) と承認 (authorization) を使用して、クライアントの情報要求に応えるべきかどうかを検証します。「認証」とは、情報の要求者がネットワークの正当なユーザーであるかどうかを判定することです。「承認」とは、要求された情報に関して特定のユーザーが入手または変更を許可されているかどうかを判定することです。

NIS+ のより詳しい説明については、パート II「NIS+ の紹介と概要」を、使用方法については、パート III「NIS+ の管理」を参照してください。

FNS とは

「FNS」は、1 つの Solaris 環境でさまざまなネームサービスを独立して動作させるための機能です。FNS を使用すれば、ネットワーク上のさまざまなネームサービスすべてに、1 つの簡単なネームシステムインタフェースで対応できます。FNS は、X/Open federated naming (XFN) 規格に適合しています。

FNS は、NIS+、NIS、DNS、/etc ファイルの代わりとして使用することはできません。FNS はむしろこれらのサービスの一番上に位置しており、通常の名前をデスクトップ上のアプリケーションで使用できるようにします。

FNS のより詳しい説明と管理方法については、パート V「FNS の管理」を参照してください。