DNSキャッシュサーバ 【DNS cache server】 キャッシュDNSサーバ / cache DNS server
概要
DNSキャッシュサーバ(DNS cache server)とは、利用者からの任意のドメイン名の名前解決の問い合わせを受け付け、当該ドメイン名を管理するDNSサーバへの問い合わせを(代理で)行い、結果を利用者に返答するコンピュータやソフトウェアのこと。問い合わせ結果は一定期間保存され、期間内に同じ問い合わせが来た時には外部サーバへ新たに問い合わせることはせず自ら返答する。これにより各ドメインを管理するDNSサーバの負担が軽減され、利用者への応答時間も短縮される。
DNS問い合わせの仕組み
DNS(Domain Name System)はドメイン名とIPアドレスを対応付ける世界規模のデータベースシステムで、各ドメイン名を管理する「権威DNSサーバ」(DNSコンテンツサーバ)が、そのドメインに含まれるホストとIPアドレスの対応関係を管理し、外部からの問い合わせに応答する。
ある特定のホスト名から対応するIPアドレスを割り出す(これを名前解決という)には、まず世界の十数ヶ所に設置された最上位のルートサーバ(root server)にトップレベルドメイン(.jpや.comなど)の権威DNSサーバの所在を訪ねる。
トップレベルドメインの権威サーバにはセカンドレベルドメイン(co.jpやexample.comなど)の権威サーバの所在を訪ね、セカンドレベルドメインの権威サーバにはサードレベルドメインの権威サーバの所在を訪ね…という手順を繰り返し、目的の個別ドメインの権威サーバから、ホスト名に対応するIPアドレスの情報を聞き出す。
DNSキャッシュサーバの役割
この再帰的な問い合わせを利用者の手元の端末(クライアント)が毎回繰り返したのでは非効率で、上位ドメインのサーバの負荷が大きすぎるため、個々のクライアントはISP(インターネットサービスプロバイダ)などが設置したDNSキャッシュサーバに問い合わせ依頼を送る。
キャッシュサーバはクライアントの代理として上記の問い合わせを行い、結果をクライアントに返答する。問い合わせ結果は一定期間(各ドメインの管理者が指定する)保管され、(別のクライアントから)同じ問い合わせを受け付けると保管しておいた情報を回答する。この仕組みを「DNSキャッシュ」と呼び、キャッシュサーバの名称の由来となっている。
このようにDNSキャッシュサーバはDNSサーバでありながら、名前解決を行うDNSクライアント(リゾルバ)でもある。自ら再帰的な(完全な)名前解決を実行できるため、「フルサービスリゾルバ」(full service resolver)と呼ばれる。これに対し、端末側に実装されている、キャッシュサーバに問い合わせ依頼を送るだけのDNSクライアントを「スタブリゾルバ」(stub resolver)という。
DNSサーバソフトウェアは権威DNSサーバとしてもDNSキャッシュサーバとしても運用できるように両方の機能が実装されていることが多く、インターネット上で運用されているDNSサーバには、どちらか一方のみの役割が有効になっているサーバと、一台で両方の役割を兼ねているサーバがある。