1. DNS サーバ
BIND を使っていると、DNS サーバとはドメイン名の解決に関係する サーバのすべてだと誤解してしまいがちです。
[http://homepages.tesco.net./~J.deBoynePollard/FGA/dns-server-roles.html
DNS(コンテンツ)サーバと キャッシュ(proxy)サーバ]を分けて考えると理解しやすくなります。
- DNS(コンテンツ)サーバとは自ゾーンの DNS データに責任を持って答えるものです。
- レゾルバーは調べたいドメイン名に対して、 ルートサーバから順に一連のDNSサーバに問い合わせていきます。 ルートサーバの IPアドレスはなんらかの方法で別途獲得します。
- キャッシュ(proxy)サーバは上記のような問い合わせた結果を保存しておいて、 DNS クライアントからの検索要求に答えるものです。 通常はローカルネットワークのホストがサービス対象です。
HTTP の世界との対比
kind
HTTP
DNS
contents server
apache
tinydns
proxy/cache server
squid
dnscache
client
netscape, mozilla
qmail (MTA), netscape
DNS コンテンツサーバとキャッシュサーバを 分離して運用することが重要です。 http://D/separation.html
1.1. DNSコンテンツサーバ
DNSコンテンツサーバは DNSデータを保持していて、 外部(インターネット一般)からの問い合わせに対して答えます。 DNS/資源レコード
これらのコンテンツサーバから情報を検索するのはレゾルバの仕事です。 検索の結果を保存して、同じ検索を省略するものは DNS/キャッシュサーバと呼ばれます。
DNS コンテンツサーバとキャッシュサーバは分離して運用することが重要です。 それぞれのサービスを利用するのが誰なのか、考えてみてください。
"djbdns"ではコンテンツサーバとキャッシュサーバは 分離された実装になっています。
しかし、BIND ではこれらの機能をひっくるめた実装になっています。 説明もはっきり分けられているとは言えません。 使う側も区別しないで使っていることが多いため、混乱していることがあります。
さて、コンテンツサーバは異なるネットワーク上に複数設置することが 推奨されています。 しかし、すべてのサーバがきちんと運用されていないなら、 却って有害です。 ドメインの登録に複数設置を条件にしている困ったISPもあります。
1.2. DNS キャッシュサーバ
レゾルバが DNS コンテンツサーバを検索して得た情報を保存して、 同様の検索を省略するのが DNS/キャッシュサーバです。 キャッシュサーバは通常はローカルネットワーク内のクライアントだけにサービスします。
キャッシュ容量の設定が不適切なサイトをみかけます。
http://D/cachesize.html dnscache でのキャッシュ容量の調節法
DNS サーバに無用のアクセスを送ってくるので迷惑しています。 (調査中)
無用な問合せは IPv6 アドレスを問い合わせてくるサイトに多いようです。 IPv6 を使っていないのなら、クライアント(例、BIND, ssh, rsync)の機能から削りましょう。
http://D/sample-office.html ファイアウォール内でのキャッシュサーバの設定