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

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

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

DNS ネームサーバーは、いくつかのファイルを使用して、そのデータベースを読み込みます。 リゾルバのレベルでは、要求された情報を格納するサーバーのアドレスを登録するファイル (/etc/resolv.conf) が必要です。 リゾルバは resolv.conf ファイルを読み取り、ローカルドメインの名前とネームサーバーの位置を見つけます。 この resolv.conf ファイルはローカルドメイン名を設定し、 リゾルバルーチンに指示して、登録されたネームサーバーに情報を照会させます。 通常、ネットワーク上の各 DNS クライアントシステムの /etc ディレクトリには、resolv.conf ファイルがあります。 クライアントに resolv.conf ファイルがない場合は、IP アドレス 127.0.0.1 のデフォルトサーバーが使用されます。

リゾルバがホストの IP アドレスまたはアドレスに対応するホスト名を探さなければならないときには、照会パッケージを構築し、/etc/resolv.conf に登録されたネームサーバーにこれを送信します。 サーバーは、その照会にローカルに応答するか、または他のサーバーのサービスを使ってリゾルバに答えを返します。

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

たとえば、nsswitch.conf ファイル内の hosts の行で hosts:nisplus dns と指定されている場合、ホストの情報を得るために NIS+ ネームサービスが最初に検索されます。 NIS+ で情報が見つからない場合は、DNS リゾルバが使用されます。 スイッチファイルに hosts:nisplus dns 行を指定すると、ローカルホストの情報に対しては NIS+ が使用され、遠隔ホストの情報に対しては DNS が使用されることになります。

DNS クライアントには、次の 2 種類があります。