Solaris ネーミングの管理

DNS の基礎

ドメイン名システム (DNS) は、標準 TCP/IP プロトコル群のひとつのアプリケーション層プロトコルです。これによって DNS ネームサービスを実現します。DNS ネームサービスはインターネットで使用されるネームサービスです。

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

DNS の初期設定と構成に関しては、『Solaris ネーミングの設定と構成』を参照してください。


注 -

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


名前のアドレス解決

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

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

ローカルマシンは、「DNS ネームサーバー」にリクエストを送ります。DNS ネームサーバーは 分散 DNS データベースを保持しています。NIS+ のホストテーブル、ipnodes やローカルの /etc/hosts ファイル、/etc/inet/ipnodes ファイルも同様の情報、すなわち、ホスト名、ipnodes 名、IPv4、IPv6 のアドレス、その他コンピュータの特定のグループに関する情報を保持していますが、DNS データベースはそれらとはあまり似ていません。ローカルマシンは、遠隔マシンの IP アドレスを見つけたり、解決したりするためのリクエストの一部として自分自身のホスト名を送信しますが、ネームサーバーは、それも利用します。そして、もしリクエストしたホスト名が DNS データベースにあれば、その IP アドレスがネームサーバーによってローカルマシンに返されます。

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

図 28-1 名前のアドレス解決

Graphic

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

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

各ルートネームサーバーには、会社、大学、その他大規模な組織における最上位のドメインネームサーバーのホスト名と IP アドレスがあります。ルートネームサーバーは、ホスト名と IP アドレスがわかっているすべての最上位のネームサーバーにローカルマシンからのリクエストを送信します。リクエストされたホストの IP アドレスを最上位のネームサーバーのどれかが持っている場合、その情報がローカルマシンに返されます。最上位のサーバーがリクエストされたホストに関する情報を持っていない場合、第 2 レベルのネームサーバーにリクエストが渡されます。このようにローカルマシンからのリクエストは組織の巨大なツリー構造の下へ向かって順に渡されます。最終的にローカルマシンからのリクエストに対する情報をデータベースに持っているネームサーバーが IP アドレスを返します。

図 28-2 はローカルドメインの外側での名前のアドレス解決を示します。

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

Graphic

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 8 リリース環境に含まれています。


注 -

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


以下のような、3 つのタイプの DNS ネームサーバーがあります。

各ドメインには、主サーバーが 1 つとバックアップのための副サーバーが少なくとも 1 つ必要です。主サーバーと副サーバーの詳細は、「ゾーン」を参照してください。

DNS クライアントとリゾルバ

あるマシンを DNS クライアントにするには、「リゾルバ」を実行する必要があります。リゾルバはデーモンでもなければ単一のプログラムでもなく、アプリケーションによって使用される動的ライブラリルーチンの集合です。マシン名を知る必要があるときに、このライブラリが使用されます。リゾルバの機能はユーザーの照会を解決することです。それを行うために、リゾルバはネームサーバーに照会します。するとネームサーバーは要求された情報か、または他のサーバーに照会する旨を返します。一度リゾルバを設定すれば、そのマシンはネームサーバーに DNS サービスを要求できるようになります。

あるマシンの /etc/nsswitch.conf ファイルで hosts:dns (または hosts 行に dns を含む別のパターン) が指定されていると、リゾルバのライブラリが自動的に使用されます。もし、nsswitch.conf ファイルが dns より前に、他のネームサービスを指定した場合、最初にそのネームサービスに対してホスト情報を問い合わせ、要求されたホストの情報が見つからなかった場合にだけリゾルバのライブラリが使用されます。

たとえば、nsswitch.conf ファイル内の hosts の行で hosts:nisplus dns と指定されている場合、ホストの情報を得るために NIS+ ネームサービスが最初に検索されます。もし、NIS+ で情報が見つからなかったとき、DNS リゾルバが使用されます。NIS+ や NIS といったネームサービスではそれ自身のネットワーク内にあるホストに関する情報だけを保持しているため、結果的に hosts:nisplus dnsswitch ファイルで指定することは、ローカルホストに関する情報に対しては NIS+ を使用し、インターネット上の遠隔システムに関する情報に対しては DNS を使用するように指定することになります。

DNS クライアントには以下のような 2 つの種類があります。

Solaris 8 リリース環境には、リゾルバを構成している動的ライブラリルーチンが含まれています。『Solaris ネーミングの設定と構成』で、ホストを DNS クライアントとして設定する方法が説明されています。