DNS のネームサーバーには、in.named デーモンに加えて、named.conf と呼ばれるブートファイル、resolv.conf という名前のリゾルバファイル、4 つのタイプのゾーンデータファイルがあります。
内部的に矛盾がなければ、ゾーンデータファイルはどんな名前にもできます。このため、異なるサイトで作業をしようとする場合や DNS 関連のマニュアルや本を参照する場合に、混乱するかもしれません。たとえば、Sun のマニュアルやほとんどの Solaris のサイトのファイル名は、『DNS and BIND』(Paul Albitz & Cricket Liu 著 浅羽登志也/上水流由香 監訳、アスキー出版局、1995年) で使用されている名前とは異なりますし、その両方の命名法は、『Name Server Operations Guide for BIND』(カリフォルニア州立大学刊、パブリックドメイン) での命名法とも若干異なります。
さらに、このマニュアルや他の DNS の文書では、そのファイルの主要な目的を表すために汎用的な名前が用いられ、レコードの例ではそのファイルに対して例として特定の名前が用いられています。たとえば、Solaris のネームサービスに関するマニュアルでは、ファイルの機能と役割を記述するために hosts が総称名として用いられ、db.doc と db.sales.doc という名前が、例として用いられています。
参考として、表 28-2 では上で述べた 3 つのマニュアルにおける BIND のファイル名を比較します。
表 28-2 BIND ファイル名 例
Solaris |
O'Reilly その他 |
カリフォルニア州立大学バークレイ校 |
ファイルの内容と役割 |
---|---|---|---|
/etc/named.conf |
/etc/named.conf |
/etc/named.conf |
構成ファイルは、それが実行されるサーバーのタイプ、および「マスター」、「スレーブ」、または「スタブ」として機能するゾーンを指定する。また、セキュリティ、ロギング、およびゾーンに適用されるオプションの細かい細分性を定義する |
/etc/resolv.conf |
/etc/resolv.conf |
/etc/resolv.conf |
各クライアント (DNS サーバー を含む) 上に存在するファイル。DNS 情報を探すためにクライアントが照会するサーバーを示す |
named.ca |
db.cache db.root |
root.cache |
ルートサーバーの名前とそのアドレスがリストされている |
総称名: hosts 例: db.doc db.sales |
総称名: db.domain 例: db.movie db.fx |
総称名: hosts 例: ucbhosts |
サーバーがサービスを提供するローカルゾーン内のマシンに関する全データが格納されている |
総称名: hosts.rev 例: doc.rev |
総称名: db.ADDR 例: db.192.249.249 db.192.249.253 |
hosts.rev |
逆変換 (アドレスから名前への変換) が可能な特殊ドメイン in-addr.arpa. 内のゾーンを指定する |
named.local |
総称名: db.cache 例: db.127.0.0 |
named.local |
ローカルループバックインタフェース (local host) 用のアドレスを指定する |
$INCLUDE ファイル |
$INCLUDE ファイル |
$INCLUDE ファイル |
データファイル内の $INCLUDE() ステートメントによって識別されるファイル |
BIND 8.1 は、新しい構成ファイル /etc/named.conf を追加し、/etc/named.conf ファイルと置き換えます。/etc/named.conf ファイルは、サーバーを、主、副、またはキャッシュ専用ネームサーバーとして確立します。また、サーバーが権限を持つゾーンを指定し、どのデータファイルを読み取って初期データを取得するかを指定します。
/etc/named.conf ファイルには、以下を実現するステートメントが含まれています。
NIS+ ホストが読み取り権/書き込み権を持つ IP アドレスのコレクションを定義するアクセス制御リスト (ACL) によるセキュリティ
ログ仕様
構成ファイルは、デーモンがサーバーの起動スクリプト /etc/init.d/inetsvc によって起動されるとき、in.named によって読み取られます。構成ファイルは、in.named を他のサーバーまたは指定されたドメインのローカルデータファイルに導きます。
named.conf ファイルには、ステートメントおよびコメントが含まれています。ステートメントはセミコロンで終わります。一部のステートメントは、ステートメントのブロックを含むことができます。ブロックの中の各ステートメントもセミコロンで終わります。
named.conf ファイルは、以下のステートメントをサポートします。
表 28-3acl | アクセス制御に使用する名前付き IP アドレス一致リストを定義。このアドレス一致リストは、1 つ以上の IP アドレス (小数点表記) または IP 接頭辞 (小数点表記の後にスラッシュとネットマスクのビット数をつけたもの) を指定する。acl ステートメントによって名前付き IP アドレス一致リストを定義しなければ、他の場所で名前付き IP 一致リストを使用することはできまない。前方参照は不可 |
include | include ステートメントのある箇所にインクルードファイルを挿入する。include を使用すると管理の簡単なかたまりに構成を分割できる |
key | 特定のネームサーバー上での認証および承認に使用する鍵の ID を指定する。server ステートメントを参照 |
logging | サーバーが記録する情報およびログメッセージの宛先を指定 |
options | グローバルサーバー構成オプションを制御し、他のステートメントのデフォルト値を設定 |
server | リモートネームサーバーに関連付ける指定された構成オプションを設定する。すべてのサーバーに対してではなく、サーバーごとに選択的にオプションを適用 |
zone | ゾーンを定義する。すべてのゾーンに対してではなく、ゾーンごとに選択的にオプションを適用 |
options { directory "/var/named"; datasize 2098; forward only; forwarders { 99.11.33.44; }; recursion no; transfers-in 10; transfers-per-ns 2; allow-transfer { 127.0.1.1/24; }; }; logging { category queries { default_syslog; }; }; include "/var/named/abcZones.conf" // これは主ファイルの名前です zone "cities.zn" { type master; file "db.cities.zn"; }; zone "0.0.127.in-addr.arpa." { type master; file "db.127.cities.zn"; }; zone "168.192.in-addr.arpa" { type master; file "db.cities.zn.rev"; }; zone "sales.doc.com" { type slave; file "slave/db.sales.doc"; masters { 192.168.1.151; }; }; zone "168.192.in-addr.arpa" { type slave; file "slave/db.sales.doc.rev"; masters { 192.168.1.151; }; }; |
スーパーユーザーになって、Korn シェルスクリプト /usr/sbin/named-bootconf を実行して BIND 4.9.x の named.boot ファイルを BIND 8.1.x の named.conf ファイルに変換します。named-bootconf(1M) を参照してください。
Solaris 8 では、named.boot ファイルは無視されます。
named.ca ファイルによって、ルートサーバー名が確立され、そのアドレスが列挙されます。ネットワークがインターネットに接続されているなら、named.ca には、インターネットのネームサーバーが表示されます。接続されていなければ、ローカルネットワークのルートドメインネームサーバーが表示されます。in.named デーモンは、サーバーの 1 つに接続できるまで、サーバーのリストを一巡します。そして、そのサーバーから現在のルートサーバーのリストを入手します。デーモンは、このリストを named.ca の更新のために用います。
hosts ファイルには、ローカルゾーン内のマシンに関するすべてのデータが含まれています。このファイル名は、ブートファイル内で指定します。/etc/hosts との混同を避けるために、hosts 以外の名前を付けます。たとえば、これらのファイルに db.domain パターンを使用して名前を付けることができます。この命名方法により、doc.com と sales.doc.com ドメインのホストファイルは db.doc と db.sales になります。
hosts.rev ファイルで、逆 (アドレスから名前) マッピングを行うための特別な in-addr.arpa. ドメインのゾーンを指定します。このファイル名は、ブートファイル内で指定します。
named.local で、ローカルループバックインタフェースのアドレスまたはローカルホストをネットワークアドレス 127.0.0.1 とともに指定します。このファイル名はブートファイルで指定します。他のファイルと同様、このマニュアルで使われていない名前を付けることもできます。
インクルードファイルは、DNS データファイルの中の $INCLUDE() 文で指定された任意のファイルです。$INCLUDE ファイルは、異なるタイプのデータを便宜的に複数のファイルに分けるのに使うことができます。
たとえば、データファイルに次のような行が含まれているとします。
$INCLUDE /etc/named/data/mailboxes |
この行によって、/etc/named/data/mailboxes ファイルがその時点で読み込まれます。この例では、/etc/named/data/mailboxes が、$INCLUDE ファイルです。$INCLUDE ファイルは必要に応じて、必要な数だけ使用します。必要がなければ使う必要はありません。