DNS運用の基本2 - DNS全体の設定

前回はDNSに設定するときに知っておくと楽、または、設定する内容そのままを列記してみた。


DNS管理のために編集するファイルは、大別して2種類。

  • DNSサーバとしての挙動を管理するコンフィグファイル。
  • 名前解決を行うためのゾーンファイル。


今回は、DNSサーバの全体設定を書いてみる。
コンフィグレーションファイルは、デフォルトで /etc/named.conf となる。
サンプル

options {
directory "/var/named";
allow-query {
127.0.0.1;
192.168.0.0/16;
};
forwarders {
10.1.2.3;
};
};
# 以下、ゾーン設定
zone "." IN {
type hint;
file "db.cache";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "pri.0.0.127.in-addr.arpa";
};
zone "fugafuga.jp" IN {
type master;
file "fugafuga.jp.db";
forwarders { };
};

directory で記述したディレクトリに、ゾーンファイルが置いてあることを明示してある。
/etc とか /proc とか記述できるけれど、管理上よろしくないのでこのままのほうが良い。


allow-query は、問合せを受け付けるIPアドレスの帯域が指定されている。
192.168.1.2 とか書いておくと、そのIPアドレスをもつコンピュータしか問合せができなくなる。


forwarders は他のDNSに聞きに行く設定で、その対象を記述する。
これを設定すると自分が管理しているゾーンでも、一度forwardersに誰が管理しているのか聞きに行く挙動をする。


たとえば、問合せを許可しているホストから「fugafuga.jp のIPアドレスは?」と聞かれるとする。
上記の設定をしてあるサーバは、上位のDNSに「fugafuga.jp を管理しているのは誰?」と聞く。
上位のDNSは、.jp のゾーンを管理するDNSに問い合わせる。
.jp のゾーンを管理するサーバは、「それは問い合わせてきた本人だよ」
上位のDNSが「あなたですよ」と言って、ようやく自分の管理するファイルを見に行くという…
それをさせない設定もあるけれど、それはゾーン設定の中なのでここでは割愛。


zone のなかでの設定。
zone のあと、どんなゾーンを管理するのかを記述する。
管理していることを「そのゾーンの権威をもっている」と表現する。
そのあと…
type は?
ゾーンの設定を記述したファイルは?
転送は?
などという設定を書くことになる。

type は、ルートゾーンを記述する hint
自分がゾーンファイルを管理し、権威を持っていることを表す master
権威はもっているけれど、複製であることを表す slave
の3つ。


forwarders { };
をついでに設定すると、わざわざ上位DNSに自分が権威を持っているゾーンを問い合わせることはなくなる。
※ options にforwarders設定がない場合は、わざわざ書く必要はない。


なお、サンプルの構成は、名前解決のためのデータを保持し応答するコンテンツサーバと、問合せを受けた名前を保持して、同じ名前の問合せがきたら即答できるようにするキャッシュサーバの兼用型であることを付記する。
次回は、ゾーンファイルの中身(概要だけど)を書いていこうと思っている。