よくある質問・用語集

サーバー構築のデージーネットTOP > よくある質問・用語集 > 用語集 > DNSキャッシュサーバとは

  • もっと調べる
  • どうやって使う?

DNSキャッシュサーバとは

DNSキャッシュサーバとは、利用者から名前解決のリクエストを受け、結果を返す役割のDNSサーバである。例えば、wwww.designet.co.jpという名前から、IPアドレスを調べるような用途で使われる。
利用者は、一般的に一つのDNSキャッシュサーバに問い合わせを行う。DNSキャッシュサーバは、依頼のあった名前解決の処理を行うために、複数の権威DNSサーバに調査を行い、利用者に結果を返す。

再帰問い合わせ

DNSでは、各ドメインの情報は階層構造で管理されている。階層のトップは「.」で、それを管理するサーバは、ルートサーバと呼ばれている。DNSキャッシュサーバは、まずルートサーバに、.jpや.comなどのトップレベルドメインを管理しているサーバを問い合わせる。トップドメインを管理しているサーバが分かったら、そのサーバに一つ下の階層のDNSサーバの情報を問い合わせる。さらに下位のドメインの情報が必要な場合には、この手順を繰り返して問い合わせを行う。このような問い合わせは再帰的に行われるため、再帰問い合わせと呼ばれる。DNSキャッシュサーバは、利用者のリクエストに応じて、再帰問い合わせを行って結果を返却するサーバであるということができる。

DNSキャッシュ

DNSキャッシュサーバのもう一つの役割は、過去にあった問い合わせの情報をキャッシュしておくことである。例えば、Googleのような多くの人が頻繁に利用するようなサイトの情報は、リクエスト毎に何度も調査するのは不経済である。そのため、DNSキャッシュサーバは、調査した結果をキャッシュとして保管する。DNSのデータはレコードと呼ばれているが、各レコードには有効期限(TTL)が設定されている。DNSキャッシュサーバは、このTTLに基づいてキャッシュを管理する。DNSキャッシュがあることで、名前解決は迅速に行うことができる。また、インターネット上への問い合わせを削減することができ、DNSサーバや回線などのリソースを有効に活用することができる。

DNSフォワーディングサーバ

大きな組織で、複数のDNSキャッシュサーバが存在している場合には、DNSキャッシュが分散してしまう。その場合、組織全体で見ると同じ問い合わせが何度も行われることになり、不経済である。このようなことを避けるために使われるのがDNSフォワーディングサーバである。
DNSフォワーディングサーバは、名前解決を行う時に自身のキャッシュにデータがない場合には、別のDNSキャッシュサーバに問い合わせをフォワードする。そのDNSサーバもデータを持っていない場合には、2つの処理方法が使われる。一つの方法は、すべての問い合わせ処理をフォワード先のDNSキャッシュサーバに行ってもらう方法である。もう一つの方法は、フォワード先のDNSキャッシュサーバがデータを持っていない場合には、自分自身で再帰問い合わせの処理を行う方法である。
前者は、フォワード先のDNSキャッシュサーバに処理が集中する可能性がある。しかし、キャッシュが最も有効に利用される可能性がある。後者では、処理は集中しないがキャッシュの有効利用という点では劣る。
このように、DNSフォワーディングサーバはDNSキャッシュサーバの一種である。

キャッシュポイズニングとセキュリティ

DNSキャッシュサーバに偽の情報を送り込む攻撃が、繰り返し観測されている。この攻撃は、キャッシュポイズニング攻撃と呼ばれている(詳しくは「キャッシュポイズニング」を参照)。そのため、DNSキャッシュサーバは組織外から直接アクセスできない場所に配置することが好ましい。
また、インターネット上に公開され誰でもアクセスできるDNSキャッシュサーバをオープンリゾルバと呼ぶ。オープンリゾルバは、他のサイトの攻撃に使われてしまう危険性があり大変危険である。そのため、DNSキャッシュサーバには、アクセス制御を実施し、問い合わせを受けるホストを限定しておく必要がある。

DNSSEC

DNSSECは、DNSによる名前解決の結果が正しいことを検証するためのDNSの拡張プロトコルである(詳しくは「DNSSEC」を参照)。DNSキャッシュサーバは、キャッシュポイズニング攻撃を避けるため、DNSSECを使ったDNSレコードの検証を行うべきである。

DNSキャッシュサーバのソフトウェア

DNSキャッシュサーバとしては、BIND、unboundなどが使われている。BINDは、古くから使われてきたDNSサーバソフトウェアで、インターネット上では最もよく使われている。しかし、近年は多くの脆弱性が発見されていて、頻繁にバージョンアップが行われている。また、BINDはDNS権威サーバとDNSキャッシュサーバの両方の機能を持っている。そのため、極めて汎用的に使うことができるが、一方でキャッシュの扱いが複雑で脆弱性が潜みやすい。
こうした状況を受けて、最近はunboundが使われることが増えている。unboundは、RedHat Enterprise LinuxやCentOSなどのディストリビューションにも採用され、多くのプロバイダーでも利用されている安定したDNSキャッシュソフトウェアである。

デージーネットの取り組み

デージーネットでは、セキュリティ面の安全性と性能を評価して、unboundの利用を推奨している。多くのISPへの導入実績がある。また、unboundを使ったDNS水責め(teardrop)攻撃への対応や、児童ポルノブロッキングへの対応など、様々なシステムを構築している。
unboundはキャッシュの制御が非常にしやすいため、標的型メール攻撃の対策のためのシステムでも利用している。

【カテゴリ】:DNS  ネットワーク  

  • もっと調べる
  • どうやって使う?

関連用語

DNSキャッシュサーバに関連するページ(事例など)


デージーネット用語集のページです。「DNSキャッシュサーバ」という用語と関連情報について説明します。「DNSキャッシュサーバ」について情報を収集する際、サービスをご検討いただく際などに用語集ページをお役立てください。

DNSキャッシュサーバとは先頭へ