この章では、クライアントマシン上での DNS (Domain Name System) サービスの設定方法について説明します。
DNS の最も一般的かつ重要な役割は、ローカルなネットワークをグローバルなインターネットに接続することです。そして、インターネットに接続するためには、親ドメインの管理者にネットワークの IP アドレスを登録してもらう必要があります。管理者は、ネットワークの地理的な位置と、親ドメインの種類によって異なります。ドメイン管理者にネットワークを登録してもらう方法については、本書では説明を割愛しています。
詳細は、『DNS and Bind』(Cricket Liu & Paul Albitz 著、浅羽登志也/上水流由香 監訳、アスキー出版局、1995) を参照してください。
Solaris 8 リリースには、ユーザーの便宜を図るため、コンパイル済みの BIND (Barkeley Internet Name Domain) 8.1.2 が付属しています。コンパイルにあたっては、最大公約数のサイトのニーズを満たすべく、各種オプションを設定しました。このコンパイル済みの BIND が要件に合わない場合は、公開されているソースコードから独自にコンパイルすることができます。
Solaris 8 リリースに付属の BIND は、次のオプションでコンパイルされています。
「RFC1535」
「逆クエリー」
「偽名ロギング」
「デフォルトドメイン名」
DNS ドメイン名が /etc/resolv.conf に設定されていない場合、あるいは LOCALDOMAIN
環境変数で設定されていない場合、libresolv は NIS または NIS+ ドメイン名から DNS ドメイン名を取得する。/etc/nsswitch.conf ファイルの hosts 行の先頭に nisplus または nis が指定されていることを前提とする
「ユーティリティスクリプト」
「テストプログラム」
dig、dnsquery、host の各テストプログラムは、nslookup および nstestと共通する部分があるため、いずれも実装しない
DNS サービスを設定するには、次の 2 つの手順を実行します。
クライアントマシン上で DNS サービスを設定します (詳細は、この章で説明)。
第 13 章「DNS サーバーの設定」の説明に従って、DNS サーバーを設定します。
クライアントマシン上の DNS を設定するには、次の 2 つの手順を実行します。
「resolv.conf ファイルの作成」の手順に従って /etc/resolv.conf ファイルを作成します。
「DNS を使用できるようにする」の手順に従って、/etc/nsswitch.conf ファイルを作成します。
DNS サーバーとして使う予定のホスト上に DNS サービスを設定する場合は、ブートファイルとデータファイルも設定する必要があります。詳細は、第 13 章「DNS サーバーの設定」を参照してください。
DNS クライアントはダイナミックライブラリルーチン群 (「リゾルバ」と総称する) を使用して、リモートホストの位置を調べます。リゾルバはネームサーバー上の DNS データベースを照会します。最終的に返されるのは、リゾルバによって要求されたマシンのホスト名あるいは IP アドレスです。DNS ネームサーバーは、自らのローカルドメインの外のサーバーのクライアントとなるので、やはりリゾルバを動作させます。
DNS ネームサーバーは、いくつかのファイルを使用して、そのデータベースをロードします。リゾルバのレベルでは、必要な情報を取得できるサーバーのアドレスを登録するファイル (/etc/resolv.conf) が必要です。リゾルバは resolv.conf ファイルを読み取り、ローカルドメインの名前とネームサーバーの位置を見つけます。リゾルバはローカルドメイン名を設定し、リゾルバルーチンに指示して、登録されたネームサーバーに情報を照会させます。通常、ネットワーク上の各 DNS クライアントシステムは、その /etc ディレクトリ内に resolv.conf ファイルが必要です。resolv.conf ファイルがない場合、クライアントは IP アドレス 127.0.0.1 のサーバーをデフォルトで使います。
リゾルバがホストのアドレス (またはアドレスに対応する名前) を探さなければならないときには、照会パッケージを構築し、/etc/resolv.conf に登録されたネームサーバーにこれを送信します。サーバーは、その照会にローカルに応答するか、または他のサーバーのサービスを使ってリゾルバに答えを返します。
例 12-1 に、doc.com ドメインのクライアント (非サーバー) マシン用の簡単な resolv.conf ファイルの例を示します。
; Sample resolv.conf file for the machine polaris domain doc.com ; try local name server nameserver 127.0.0.1 ; if local name server down, try these servers nameserver 123.45.6.1 nameserver 111.22.3.5 ; sort the addresses returned by gethostbyname(3c) sortlist 130.155.160.0/255.255.240.0 130.155.0.0 |
このファイルの最初の行では、ドメイン名を次の書式で指定します。
domain domainname |
ここで、domainname は インターネット管理組織(このドキュメントの執筆時点では InterNIC。日本では JPNIC) に登録されている名前です。
ドメイン名の末尾にスペースまたはタブを使うことはできません。ドメイン名の最後の文字を入力したら、必ずキャリッジリターンで強制改行してください。
2 行目では、ループバックネームサーバーを次の書式で指定します。
nameserver 127.0.0.1 |
それ以降の行では、主 DNS ネームサーバー、副 DNS ネームサーバー、またはキャッシュオンリーネームサーバー の IP アドレスを最大 3 つまで指定します。4 つ以上指定することはできません。各行の書式は次のとおりです。
nameserver IP_address |
ここで、IP_address の部分には、実際に主 DNS ネームサーバーまたは副 DNS ネームサーバーの IP アドレスを指定します。リゾルバは、必要な情報が見付かるまで、ここに指定されている順番どおりにネームサーバーを探していきます。
/etc/resolv.conf ファイルの 5 行目は、アドレス sortlist を次の書式で表示します。:
sortlist addresslist |
addresslist は、gethostbyname(3c) によって戻されるアドレスのソートの順番を指定します。上記の列では、gethostbyname は、IP アドレス 130.155.0.0 より先に 1 組のネットマスク 130.155.160.0/255.255.240.0 を戻します。
クライアントマシンを DNS に対応させる方法は、企業レベルで使われているネームサービスによって異なります。
「NIS+」
企業レベルで主として使っているネームサービスが NIS+ の場合、「DNS を使用できるようにする」の手順に従います。
「NIS」
企業レベルで主として使っているネームサービスが NIS で、かつ、それが正しく設定されている場合、何もする必要はありません。構成に問題がなければ、NIS はインストール直後の状態のままで DNS を使用できます。
「ファイルベース」
企業レベルで主として使っているネームサービスが /etc ファイルベースのサービスの場合、「DNS を使用できるようにする」の手順に従います。
nsswitch.conf ファイルの詳細は、『Solaris ネーミングの管理S』を参照してください。