権威DNSサーバーとキャッシュDNSサーバーの役割の違い
DNSサーバーの機能における権威DNSとキャッシュDNSの違いについて解説します。
こんにちは。東京エレクトロンデバイスでエンジニアをしているムラタです。
今回は弊社が取り扱うInfoblox製品に関連して、権威DNSサーバーとキャッシュ
DNSサーバーの動作の違いについてブログ記事を掲載します。
インフラ系のエンジニアの方においてDNSの仕組みについて詳細に触れる機会が
少ない為、DNSが何をしているのか理屈では分かっているものの、DNSサーバーの
運用等は実施した事が無い方が殆どだと思います。
日々の業務を行う中で、DNS機能の中心的な役割を果たす、権威DNSサーバー、
キャッシュDNSサーバーの2種類の違いについて、今回は解説していければと思います。
【DNSとは?】
DNSはドメイン名とIPアドレスを対応させるシステムで、インターネットにおける
電話帳のような役割を果たしています。
“ted.com”といったドメイン名が、実際には「192.168.0.1」というIPアドレスに対応
している場合に、この情報の管理と照会を担当しているのがDNSという機能になります。
【権威DNSサーバー】
権威DNSサーバは特定のドメイン名に関する「正式な」情報を持っているサーバーを指します。
ted.comというドメイン名の情報はどのサーバーにて管理されているのか、その情報を
持っているのは権威DNSサーバーとなります。
具体的には以下のような役割を果たします。
1.ドメインの情報提供
そのドメインに関する、情報を管理し提供する義務を権威DNSは請負っています。
2.情報の更新・維持
ドメインの所有者が情報を更新・変更した際に、それを反映させる役割を担います。
このように、権威DNSサーバーはそのドメインに関する情報を管理する義務を持つDNSサーバと
なります。
権威DNSの管理者がDNS情報を管理できていないといった事があった際はインターネットから
Webページに接続ができない状態となりますので、権威DNSの管理は慎重に行う必要があります。
【キャッシュDNSサーバー】
キャッシュDNSサーバーは、DNSの情報を一時的な「キャッシュ」として保存しておくサーバーです。
ユーザーからの問い合わせに対して、以前に取得したDNS情報のキャッシュが残っていれば
それを返答し、存在しなければキャッシュDNSサーバーが権威DNSサーバに対して問い合わせを
行います。
具体的には以下のような役割を果たします。
1.キャッシュ情報を利用した高速な応答
一度取得した情報をキャッシュとして保存している為、次回以降の同じ問い合わせには
素早く応答する事ができます。
2.トラフィックの軽減
キャッシュの活用によって、インターネット上での権威DNSサーバーに対する問い合わせ
回数を現象させる事が可能です。
キャッシュDNSによりネットワークのトラフィックや権威DNSサーバーの負荷を軽減しています。
【権威DNSサーバーとキャッシュDNSサーバの違い】
DNSサーバーのトラブルシュートや、設定変更等をしている内に、自分達の利用している
DNSサーバーの役割が曖昧になってくる事があります。
その為、最後に権威DNSとキャッシュDNSの違いについておさらいをしておきたいと思います。
1.情報の出所
権威DNSサーバーの回答は「正式な」情報であり、権威DNSの問い合わせ結果がおかしい場合は
権威DNS側で解決を図る必要が出てきます。
キャッシュDNSはあくまで、DNSの回答を一時的に保存しているサーバーなので、両者の
機能には大きな違いがあります。
2.情報の更新
権威DNSは常に最新のDNS情報を保持しています。一方でキャッシュDNSは、ある特定の
時間に保存したキャッシュ情報を返答しているに過ぎません。権威DNSサーバーにてDNS情報に
更新があった際、キャッシュDNSサーバーでタイミングが悪く古いキャッシュ情報を
保持している場合は、権威DNSの情報と異なるDNSレコードを応答してしまう場合があります。
3.目的の違い
権威DNSはドメイン情報の管理と提供を目的としており、キャッシュDNSはトラフィックの
軽減といった目的で利用される事が多くあります。
上記の図はユーザーとキャッシュDNS、権威DNSのやりとりの簡単な図です。
一般的なOSを利用しているユーザーは権威DNSサーバに直接問い合わせる事は少なく、
基本的にキャッシュDNSサーバーにDNSの名前解決を要求します。
問い合わせを受け取ったキャッシュDNSサーバは権威DNSサーバーに複数回の問い合わせを
行い、目的のレコード得るまで問い合わせを繰り返します。最終的にユーザーが要求する
レコードを得た場合は、そのレコードをユーザーへ応答し一定時間の間レコード情報を
キャッシュします。
この為、トラブルシュートにおいてユーザーがDNS名前解決を行えない場合、問題の
被疑箇所がキャッシュDNSサーバーなのか権威DNSサーバー側になるのかを特定する
必要があります。
権威DNSの問題である場合はインターネット上の全てのユーザーにて該当のレコードに
対する名前解決が行えないケースが殆どです。
キャッシュDNSの問題の場合、別のキャッシュを利用しているユーザーでは名前解決が
行える可能性があります。
【まとめ】
今回解説した2つのDNSサーバはDNSサービスを提供する機器やソフトウェアにおいて、
併用して利用する事ができてしまいます。
その為、DNSサーバーを利用しているユーザーにてDNS関連の調査を行う際や情報の
正確性を確認する上で、問題となっているポイントは権威DNSなのか、
キャッシュDNSなのかを把握しておく事は非常に重要となります。
今回解説したDNS機能を提供する製品について気になる方は、弊社取り扱いの
Infoblox製品についてお気軽にお問合せ下さい。