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

DNS の基礎

ドメインネームシステム (DNS) は、標準 TCP/IP プロトコル群の 1 つのアプリケーション層プロトコルです。 DNS ネームサービスはインターネットで使用されるネームサービスです。

ここでは、DNS の基本的な概念について説明します。 説明に際しては、ネットワークの管理 (特に TCP/IP) に精通していて、NIS+ や NIS といった他のネームサービスについての知識があることを前提とします。

DNS の初期設定と構成については、第 4 章「DNS の管理 (手順)」を参照してください。


注 –

DNS、NIS+、NIS、FNS には同じような機能があり、時として異なる構成要素を定義するのに同じ用語を使用している場合がありますが、 この章では、ドメインやネームサーバーといった用語は DNS の機能に合わせて定義しています。


名前のアドレス解決

DNS はインターネット上の複雑で全世界的なコンピュータの階層をサポートしますが、それ自身の基本機能は非常に簡単なものです。 すなわち、DNS が TCP/IP に準拠したネットワークに「名前のアドレス解決」を提供するということです。 名前からアドレスへの解決は「マッピング」ともいい、あるコンピュータのホスト名をインデックスとして用い、その IP アドレスをデータベースから見つけ出す処理のことです。

名前のアドレスマッピングは、ローカルマシンで実行されているプログラムが遠隔コンピュータにアクセスする必要があるときに行われます。 このプログラムでは遠隔コンピュータのホスト名はわかっても、 その場所を特定できません。特に遠隔マシンが別の会社のドメインにある場合には場所を特定できません。 プログラムは遠隔マシンのアドレスを得るために、ローカルマシン上で動作している DNS ソフトウェアに要求を送ります。この時のローカルマシンを「DNS クライアント」と呼びます。

ローカルマシンは、「DNS ネームサーバー」に要求を送ります。DNS ネームサーバーは 分散型 DNS データベースを保持しています。 DNS ファイルは、同様の情報を保持する他のファイルと異なる部分が多くあります。 たとえば、NIS+ hostipnodes テーブル、ローカルの /etc/hosts および /etc/inet/ipnodes ファイルは、ホスト名、ipnode 名、IPv4 および IPv6 アドレス、その他コンピュータの特定のグループに関する情報を保持します。 ネームサーバーは、遠隔マシンの IP アドレスを検索、すなわち「解決」するために、ローカルマシンのホスト名を使用します。 ホスト名が DNS データベースにある場合、ネームサーバーはこの IP アドレスをローカルマシンに返します。

次の図に、DNS クライアントのローカルネットワーク上で行われる、クライアントとネームサーバー間の名前のアドレスマッピングを示します。

図 3–1 名前のアドレス解決

この図は、ローカルネットワークを介してネームサーバーにホスト名のデータを送るクライアントを示しています。

ホスト名がネームサーバーの DNS データベースになければ、そのマシンは権限の外側にある、すなわち、DNS の用語でいう「ローカル管理ドメイン」の外側にあることを意味します。 このように、各ネームサーバーは、ローカル管理ドメインに対して権限があるとされています。

幸い、ローカルネームサーバーでは、要求の転送先であるルートドメインネームサーバーのホスト名と IP アドレスのリストを保持しています。 ルートネームサーバーは、DNS 階層とインターネットで詳しく説明しているように、大きな組織のドメインに対して権限があります。 その階層は、上下逆のツリー構造で編成された UNIX のファイルシステムに似ています。

各ルートネームサーバーは、指定された組織における最上位のドメインネームサーバーのホスト名とIP アドレスを管理しています。 ルートネームサーバーは、既知の最上位のネームサーバーに要求を送信します。 要求されたホストの IP アドレスをあるネームサーバーが保持している場合、そのサーバーにより情報がローカルマシンに返されます。 最上位のサーバーが要求されたホストを認識しない場合、第 2 レベルのネームサーバーに要求が渡されます。 このようにローカルマシンからの要求は組織の巨大なツリー構造の下へ向かって順に渡されます。 最終的に、ローカルマシンからの要求に関する情報がデータベースに格納されているネームサーバーが IP アドレスを返します。

次の図に、ローカルドメインの外側での名前のアドレス解決を示します。

図 3–2 遠隔ホストに対する名前のアドレス解決

この図は、DNS クライアントがリモートネットワーク上の一連のサーバーにホストデータを送信して、対象となるネームサーバーが IP アドレスを返すまでを示しています。

DNS 管理ドメイン

DNS から見ると「管理ドメイン」は 1 つの単位として管理されるマシン群を構成しています。 このドメインに関する情報は、ドメインに対して権限を持つ 2 つ以上のネームサーバーによって管理されます。 DNS ドメインはマシンを論理的にグループ分けしたものですが、 小規模のビジネスにおいて全マシンが Ethernet に接続されている場合のように、ドメインのグループがマシンの物理的グループと対応している場合もあります。 同様に、ローカルの DNS ドメインには、大学の大規模なネットワークのすべてのマシンが入っていることがあります。これらのマシンは、コンピュータサイエンスの学科や管理部門に属しています。

たとえば、Ajax という会社が 2 つのサイトをサンフランシスコとシアトルに持っているとします。 そして、Retail.Sales.Ajax.com. ドメインがシアトルにあり、 Wholesale.Sales.Ajax.com. ドメインがサンフランシスコにあるとします。 また、Sales.Ajax.com. ドメインが 2 つの市に分かれているとします。

各管理ドメインは、固有のサブドメイン名を持たなければなりません。 さらに、ネットワークをインターネットに接続するのであれば、そのネットワークの属する管理ドメインはすでに登録されたものでなければなりません。 ドメイン名とドメインの登録の詳細については、インターネットへの参加 の節を参照してください。

in.named と DNS ネームサーバー

すでに説明したように、管理ドメイン内のネームサーバーは、DNS データベースを保持しています。 また、このネームサーバーは in.named デーモンを実行して DNS サービスを実装します。 in.named は、パブリックドメインの TCP/IP プログラムであり、Solaris オペレーティング環境に含まれています。


注 –

in.named は、カリフォルニア大学バークレー校で開発されたデーモンで、Berkeley Internet Name Domain service (BIND) と呼ばれることもあります。


DNS ネームサーバーには、次の 3 種類があります。

各ドメインには、マスターサーバーが 1 つと、バックアップ用のスレーブサーバーが 1 つ以上必要です。 マスターサーバーとスレーブサーバーの詳細については、DNS の実装の実例 を参照してください。