« HTTPヘッダー研究その3: キャッシュコントロール | Main | HTTPヘッダー研究その4: IISのHTTPヘッダーを書き換えよう »

November 04, 2004

DNSサーバ設定上級編:オリジン・キャッシュの区別とforwarder設定の使い分け

DNSサーバは、メールサーバに並ぶくらい仕組みをよく理解されない状態で設定されて公開されてしまう場合が多いです。「とりあえず動いているからいいか」という妥協が良くないのは言うまでもありません。ということで今回はDNSサーバの正しい設定と構成について話しをしたいと思います。

【オリジンとキャッシュの違い】
DNSサーバにプライマリとセカンダリがあることはよく知られています。しかしオリジンとキャッシュという考え方を初めて聞く人も多いと思います。オリジンは管理しているサイトの情報を提供するサーバです。キャッシュはいわゆるキャッシュのサーバになります。

オリジンとキャッシュを分けるメリットは2点あります。一つ目は例えばDNSサーバにDoSアタックがあったとしてもオリジンサーバにまでそのアタックが及びません。二つ目はオリジンサーバに不正侵入されて情報が盗まれるというリスクが減ります。(ただしオリジンサーバは必ずプライベートIPにしておきましょう)

【forwarder設定の有無がなぜ重要か】
外部公開用DNSサーバとDNSオリジンサーバ共、管理しているサイトの情報だけ正引き・逆引きの情報を提供できれば十分です。forwarderというのは、問い合わせに対してサーバが情報を持っていない場合他のDNSサーバに代理で問い合わせをするという仕組みです。公開用DNSサーバにはforwarder設定は不要です。もしDNSサーバにforwarder設定をしてしまうと一般ユーザのPCのDNSサーバ設定に公開しているDNSサーバのIPアドレスを設定されてしまうかもしれません。そうなると余計なサーバ負荷やネットワーク帯域利用率が増えてしまいます。

【理想的なサーバ構成とforwarder設定】
お金に余裕があるサイトは次のようにサーバを構成するのがよいでしょう。(6台必要になります)
-----------------------------------------------------------------------------
・外部公開用DNSサーバ(forwarder設定なし)
【DNSプライマリ(キャッシュ)】 【DNSセカンダリ(キャッシュ)】
==================================================
・DNSオリジンサーバ(forwarder設定なし)
【DNSプライマリ(オリジン)】 【DNSセカンダリ(オリジン)】
==================================================
・社内利用用DNSサーバ(forwarder設定あり)
【DNSプライマリ(キャッシュ)】 【DNSセカンダリ(キャッシュ)】
-----------------------------------------------------------------------------

【forwarder実験】
実験してみましょう。まずはDNSサーバにforwarder設定をしていない適切な例を示します。


% nslookup -query=NS hogehoge.co.jp
bidders.co.jp nameserver = ns.hogehoge.co.jp

% nslookup www.yahoo.co.jp ns.hogehoge.co.jp
*** UnKnown can't find www.yahoo.co.jp: Query refused



次はforwarder設定がされている不適切な例を示します。

% nslookup -query=NS araara.co.jp
bidders.co.jp nameserver = ns.araara.co.jp

% nslookup www.yahoo.co.jp ns.araara.co.jp
Name: www.yahoo.co.jp
Addresses: 210.81.150.5, 211.14.15.5, 202.229.198.216, 202.229.199.136
203.141.35.113, 210.81.3.241



1個目の場合はns.hogehoge.co.jpにwww.yahoo.co.jpの正引きの情報を問い合わせたらQuery refusedになりました。2個目の場合は正引きのレスポンスが帰ってきてしまいました。この違いは何でしょうか。それは管理しているサイト以外の問い合わせに答えるか答えないかの違いになります。基本的にDNSサーバは管理しているサイトの問い合わせ情報だけ答えればいいので余計な情報まで返す必要はないため、1個目が正解になります。


【とはいいつつも】
とはいいつつも、DNSサーバのために6台もサーバを割けるサイトというのは少ないでしょう。一般的なのはオリジン、キャッシュ、社内利用を兼ねたDNSサーバを2台用意するというパターンです。これはこれでよいと思いますが、その構成だとサイトに大量アクセスがくるようになると危険が一杯だということだけ覚えて置いてください。

|

« HTTPヘッダー研究その3: キャッシュコントロール | Main | HTTPヘッダー研究その4: IISのHTTPヘッダーを書き換えよう »

DNS」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/32004/1862691

Listed below are links to weblogs that reference DNSサーバ設定上級編:オリジン・キャッシュの区別とforwarder設定の使い分け:

« HTTPヘッダー研究その3: キャッシュコントロール | Main | HTTPヘッダー研究その4: IISのHTTPヘッダーを書き換えよう »