BINDネームサーバ自体の設定はすべて、ファイル/etc/named.confに格納されます。ただし、ホスト名、IPアドレスなどで構成され、ドメインが処理するゾーンデータは、/var/lib/namedディレクトリ内の個別のファイルに格納されます。この詳細については、後述します。
/etc/named.confファイルは、大きく2つのエリアに分けられます。1つは一般的な設定用のoptionsセクション、もう1つは個々のドメインのzoneエントリで構成されるセクションです。ログセクションとacl (アクセス制御リスト)エントリは省略可能です。コメント行は、行頭に#記号または//を指定します。最も基本的な/etc/named.confファイルの例を、例 33.2. 「基本的な/etc/named.confファイル」に示します。
例 33.2. 基本的な/etc/named.confファイル
options {
directory "/var/lib/named";
forwarders { 10.0.0.1; };
notify no;
};
zone "localhost" in {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0.zone";
};
zone "." in {
type hint;
file "root.hint";
};filename";
BINDが検索する、ゾーンファイルが格納されているディレクトリを指定します。通常は/var/lib/namedです。
ip-address; };
DNS要求が直接解決できない場合、それらが転送されるネームサーバ(ほとんどの場合、プロバイダのネームサーバ)を指定します。ip-addressには、IPアドレスを10.0.0.1のように指定します。
ルートネームサーバでDNS要求の解決を試みる前に、それらを転送するようにします。forward firstの代わりにforward onlyを指定すると、要求が転送されたままになり、ルートネームサーバには送り返されません。このオプションは、ファイアウォール構成で使用します。
ip-address; };
BINDがクライアントからのクエリを受け取るネットワークインタフェースとポートを指定します。port 53はデフォルトポートであるため、明示的に指定する必要はありません。ローカルホストからの要求を許可するには、127.0.0.1と記述します。このエントリ全体を省略した場合は、すべてのインタフェースがデフォルトで使用されます。
BINDがIPv6クライアント要求をリッスンするポートを指定します。any以外で指定できるのはnoneだけです。IPv6に関して、サーバはワイルドカードアドレスのみ受け付けます。
ファイアウォールが発信DNS要求をブロックする場合、このエントリが必要です。BINDに対し、外部への要求をポート53から発信し、1024を超える上位ポートからは発信しないように指示します。
BINDがIPv6のクエリに使用するポートを指定します。
net; };
クライアントがDNS要求を発信できるネットワークを定義します。netには、アドレス情報を192.168.1/24のように指定します。末尾の/24は、ネットマスクの短縮表記で、この場合255.255.255.0を表します。
ゾーン転送を要求できるホストを制御します。この例では、!が使用されているので、ゾーン転送要求は完全に拒否されます。*. このエントリがなければ、ゾーン転送をどこからでも制約なしに要求できます。
このエントリがなければ、BINDは1時間ごとに数行の統計情報を生成して/var/log/messagesに保存します。0を指定すると、統計情報をまったく生成しないか、時間間隔を分単位で指定します。
このオプションは、BINDがキャッシュをクリアする時間間隔を定義します。キャッシュがクリアされるたびに、/var/log/messagesにエントリが追加されます。時間の指定は分単位です。デフォルトは60分です。
BINDは定期的にインタフェースを検索して、新しいインタフェースや存在しなくなったインタフェースがないか確認します。この値を0に設定すると、この検索が行われなくなり、BINDは起動時に検出されたインタフェースのみをリッスンします。0以外の値を指定する場合は分単位で指定します。デフォルトは60分です。
noに設定すると、ゾーンデータを変更したとき、またはネームサーバが再起動されたときに、他のネームサーバに通知されなくなります。
BINDでは、何を、どのように、どこにログ出力するかを詳細に設定できます。通常は、デフォルト設定のままで十分です。例 33.3. 「ログを無効にするエントリ」に、このエントリの最も簡単な形式、すなわちログをまったく出力しない例を示します。
例 33.4. my-domain.deのゾーンエントリ
zone "my-domain.de" in {
type master;
file "my-domain.zone";
notify no;
};
zoneの後、管理対象のドメイン名my-domain.deを指定し、次にinと関連のオプションを中カッコで囲んで指定します(参照)。例 33.4. 「my-domain.deのゾーンエントリ」スレーブゾーンを定義するには、typeをslaveに変更し、このゾーンをmasterとして管理することをネームサーバに指定します(例 33.5. 「other-domain.deのゾーンエントリ」参照)。これが他のマスタのスレーブとなることもあります。
例 33.5. other-domain.deのゾーンエントリ
zone "other-domain.de" in {
type slave;
file "slave/other-domain.zone";
masters { 10.0.0.1; };
};ゾーンオプション
masterを指定して、BINDに対し、ゾーンがローカルネームサーバによって処理されるように指示します。これは、ゾーンファイルが正しい形式で作成されていることが前提となります。
このゾーンは別のネームサーバから転送されたものです。必ずmastersとともに使用します。
ルートネームサーバの設定には、ゾーン.(hintタイプ)を使用します。このゾーン定義はそのまま使用できます。
my-domain.zoneまたはfile 「slave/other-domain.zone」;
このエントリは、ドメインのゾーンデータが格納されているファイルを指定します。スレーブの場合、このデータを他のネームサーバから取得するので、このファイルは不要です。マスタとスレーブのファイルを区別するには、スレーブファイルにディレクトリslaveを使用します。
server-ip-address; };このエントリは、スレーブゾーンにのみ必要です。ゾーンファイルの転送元となるネームサーバを指定します。
このオプションは、外部書き込みアクセスを制御し、クライアントにDNSエントリへの書き込み権を付与することができます。 ただし、これは通常、セキュリティ上の理由で好ましくありません。このエントリがなければ、ゾーンの更新は完全に拒否されます。! *によってそのような操作が禁止されるため、前述のエントリは同じものをアーカイブします。