トップ 差分 一覧 ping ソース 検索 ヘルプ PDF RSS ログイン

Fedora Core 6 BINDの設定(初期設定ファイル)



目次



記事一覧

キーワード

Fedora Core 6 BINDの設定(初期設定ファイル)

Fedora Core 6 DNSの設定
[DNS][BIND]

この本を見ながら、設定

初期設定ファイル

named.conf の書式

<ステートメント1> ["<ステートメント1の名前>"] [<ステートメント1のクラス>] {
  <オプション1>;
  <オプション2>;
  <オプションn>;
};
  • []は省略可能
  • オプションに、{}を利用してサブステートメントを指定可能

zoneの設定例

zone "typea.info" {
 typea master;
 file "typea.info.zone";
 allow-update { nene; };
};

コメント

// コメント
# コメント
/* 
 * コメント
 */


一般的なステートメントの概要と設定例

acl
  • 名前つきアドレスマッチリストを作成する。aclに続けて名前を指定する。
  • 主にほかのステートメントでサーバーへのアクセスコントロールを行うのに使用
  • ほかのステートメントの前に設定しておく
あらかじめ用意されているマッチリスト 内容
any すべてのIPアドレスとマッチ
localhost ローカルホストのIPアドレスとマッチ
localnets ローカルホストが接続しているネットワークのIPアドレスとマッチ
none どのIPアドレスともマッチしない

acl "internal" {
  192.168.24/24;
};

options {
  directory "/var/named";
  allow-query { "internal"; };
}

include
  • 別ファイルの設定内容をインクルードする
  • 主に、ゾーンデータや、一般ユーザが読むことができないように設定されている鍵ファイル

include "/etc/rndc.key"

options
  • ほかのステートメントで使用するグローバルな設定オプションを定義。
  • 一度だけ設定できる

オプション 内容
directory ワーキングディレクトリを絶対パスで指定。設定ファイルでパスを指定する場合は、このディレクトリからの相対パスとなる。
pid-file プロセスIDを出力するファイルのパス名
statistics-file 統計情報を保存するファイルのパス名
dump-file キャッシュをダンプするファイルのパス名
allow-query サーバーに対する問い合わせに答えるアドレスのリストを指定。このリストにマッチしないアドレスの問い合わせはすべて拒否される。ゾーンごとに設定も可能(zoneステートメントにて)
allow-transfer サーバーゾーンごとに設定も可能(zoneステートメントにて)からのゾーン転送を許可するアドレスのリストを指定。
recursion DNSの再帰的な問い合わせを行うかを指定。yes or no
allow-recursion 再帰的な問い合わせを許可するアドレスのリストを指定
blackhole サーバーへの問い合わせを許可しないアドレスを指定
forwarders 問い合わせを転送するアドレスのリストを指定。ゾーンごとに設定も可能(zoneステートメントにて)。「forward only;」を指定すると、サーバー自身で名前解決を行わない。PPPoEなどでインターネットに接続している場合などは、ISPのDNSサーバアドレスを指定。ルータ経由の場合は、ルータのアドレスを指定
memstatistics-file deallocate-on-exitがyesの場合、サーバー終了時にメモリ使用統計を出力するファイル名
notify ゾーンが更新された際に、NOTIFYメッセージをスレーブサーバに通知するか設定。「notify yes」「notify no」を設定「notify explicit」を設定すると、alsonotify」で指定しているスレーブサーバーに更新を通知できる。
heck-names ドメイン名の文字列が正しいか(RFC準拠)をチェック。
version BINDバージョンの問い合わせがあった場合、返す文字列を指定
listen-on 問い合わせに答えるインターフェースとポートを指定。省略すると53番ポート
query-source 問い合わせの答えを知らない場合に、ほかのDNSサーバに問い合わせを行う際のIPアドレスとポートを指定。ワイルドカード「*」を指定した場合、任意の非特権ポートを利用
transter-format ゾーン転送形式を指定「transfer-format many-answers」に設定すると、1つのDNSメッセージに複数のリソースレコードを含めることができる。

options {
  directory "/var/named";
  dump-file "/var/named/data/cache_dump.db";
  statistics-file "/var/named/data/named_statis.txt";
  pid-file "/var/run/dns.pid";
  version "unknown";
  query-source address * port 53;
  allow-query { 127.0.0.1; 192.168.24.0/24; };
  check-names response fail;
};

zone

ゾーンの設定を行う。zoneに続けて、ゾーンのドメイン名を指定する。

type : ゾーンの形式を現すタイプを指定
指定可能なtype 内容
master ゾーンデータのマスタコピーを持っているDNSサーバ
slave ゾーンデータのコピーを持っているDNSサーバ
stub ゾーンデータのNSレコードのみのコピーを持つDNSサーバ
forward ほかのDNSサーバに問い合わせを転送
hint ルートサーバをあらわす
delegation-only 存在しないドメインに対して、トップレベルドメイン(.comなど)が特定のアドレスを返してくるのを避けるために使用

  • optionsで指定したオプションをzoneステートメンで指定することも可能。その場合、optionsでの指定を上書きする
  • typeにforwardを指定した場合、optionsで指定したグローバルのforwardersは適用されないので、forwardersおよび、forwardオプションを指定する必要がある。

file : ゾーンデータファイルを指定。optionsステートメントのdirectoryからの相対パス

masters : typeにslaveを指定した場合、マスタDNSサーバのIPアドレスを1つ以上指定

notify : スレーブサーバにNOTIFYメッセージを通知するかを設定「notify yes」「notify no」で設定「notify explicit」を設定すると、also-notify で指定しているスレーブサーバ以外への更新通知を禁止

マスタサーバ例

zone "typea.info" {
  type master;
  file "typea.info.zone";
  notify explicit;
  also-notify { 192.168.24.10; };
};

スレーブサーバ例

zone "typea.info" {
  type slave;
  file "typea.info.zone";
  masters { 192.168.24.14; };
};

controls

namedの制御用プログラム「rndc」の設定を行う
BINDの制御

key

rndcプログラムを使用してサーバを制御するのに必要な鍵の設定を行う。
BINDの制御

logging

標準では、namedはsyslogデーモン経由で「/var/log/messages」ファイルへログメッセージを出力するが、別ファイルへログメッセージを出力することが可能

server

リモートのDNSサーバーに関連した設定を行う。間違ったデータを送るサーバに対して、「bogus yes」(bogusとは偽り等の意)印をつけることで、そのサーバへの問い合わせを行わないようにする。

server 192.168.24.1 {
  bougs no;
  transfer-format one-answer;
};

view

指定のIPアドレスやネットワークにマッチする場合に、個別のオプションとゾーンデータを提供することができる。match-clientには、適用されるソースアドレスを指定。また、match-destinationsには、適用されるデスティネーションアドレスを指定。
以下の例のように、1台のDNSサーバで、内向きと外向きのDNSサーバを構築する場合に、viewを使用して異なる設定を行うことができる。

//キャッシュサーバ用設定
veiw "localhost_resolver" {
  match-clients { localhost; };
  match-destinations { localhost; };
  recursion yes;
  include "/etc/named.root.hints";
  include "/etc/named.rfc1912.zones";
};

// 内部ネットワーク用
view "internal" {
  match-client { localnets; };
  match-destinations { localnets; };
  recursion yes;
  include "/etc/named.root.hints";
  zone "priv.dom" {
    type master;
    file "priv.dom.zone";
  };
};

// 外部ネットワーク用
view "external" {
  match-client { !localnets; !localhost; };
  match-destinations { !localnets; !localhost; } 
  // 外部ネットワークからの再起的な問い合わせには応じない
  recursion no;
  include "/etc/named.root.honts";
  zone "typea.info" {
    type master;
    file "typea.info.zone";
    allow-transfer { 192.168.24.1; };
  };
};

上記例では、ルートキャッシュ用の設定ファイル /etc/named.root.hintsをインクルードしているので、以下のような内容のファイルを作成しておく必要がある

zone "." {
  type hint;
  // ルートキャッシュファイル(/var/named からの相対パス)を指定
  file "named.ca"
};

サンプルの場所

以下のサンプルを編集して使用できる

/usr/share/doc/bind-9.3.4/sample/etc/named.conf



YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto

Copyright© 矢木 浩人 All Rights Reserved.