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フォーワーディングサーバである。
前者は、フォワード先のDNSキャッシュサーバに処理が集中する可能性がある。しかし、キャッシュが最も有効に利用される可能性がある。後者では、処理は集中しないがキャッシュの有効利用という点では劣る。
このように、DNSフォーワーディングサーバはDNSキャッシュサーバの一種である。
キャッシュポイズニングとセキュリティ
DNSキャッシュサーバに偽の情報を送り込む攻撃が繰り返し観測されている。この攻撃は、キャッシュポイズニング攻撃と呼ばれている(詳しくは「キャッシュポイズニング」を参照)。以前は、DNSキャッシュサーバはDNSコンテンツサーバと兼用で、DMZに配置されることが多かった。しかし、キャッシュポイズニング攻撃の増加により、DNSキャッシュサーバとDNSコンテンツサーバの機能を分離し、DNSコンテンツサーバをDMZに、DNSキャッシュサーバを内部ネットワークに配置することが好ましいとされている。(詳しくは、「DNSサーバ構築」を参照)
また、インターネット上に公開され誰でもアクセスできるDNSキャッシュサーバをオープンレゾルバと呼ぶ。オープンレゾルバは、他のサイトの攻撃に使われてしまう危険性がありたいへん危険である。そのため、DNSキャッシュサーバには、アクセス制御を実施し、問い合わせを受けるホストを限定しておく必要がある。
DNSSEC
DNSSECは、DNSによる名前解決の結果が正しいことを検証するためのDNSの拡張プロトコルである(詳しくは「DNSSEC」を参照)。DNSキャッシュサーバは、キャッシュポイズニング攻撃を避けるため、DNSSECを使ったDNSレコードの検証を行うべきである。
DNSキャッシュサーバのソフトウェア
「DNSサーバのおすすめOSS比較9選」でも紹介しているように、DNSキャッシュサーバとしてはBIND、unboundなどが使われている。BINDは、古くから使われてきたDNSサーバソフトウェアで、インターネット上では最もよく使われている。しかし、近年は多くの脆弱性が発見されていて、頻繁にバージョンアップが行われている。また、BINDはDNSコンテンツサーバとDNSキャッシュサーバの両方の機能を持っている。そのため、極めて汎用的に使うことができるが、一方でキャッシュの扱いが複雑で脆弱性が潜みやすい。
こうした状況を受けて、最近はunboundが使われることが増えている。unboundは、RedHat Enterprise LinuxやCentOSなどのディストリビューションにも採用され、多くのプロバイダでも利用されている安定したDNSキャッシュソフトウェアである。
デージーネットのサービス
デージーネットでは、セキュリティ面の安全性と性能を評価して、unboundの利用を推奨している。多くのISPへの導入実績がある。また、unboundを使ったDNS水責め(teardrop)攻撃への対応や、児童ポルノブロッキングへの対応など、様々なシステムを構築している。
unboundはキャッシュの制御が非常にしやすいため、標的型メール攻撃の対策のためのシステムでも利用している。
【カテゴリ】:DNS  ネットワーク  
【Webセミナー】自社でOSSを採用しよう!今更聞けないOSSの基本セミナー
日程: | 11月22日(金)Webセミナー「BigBlueButton」を使用します。 |
内容: | OSSを導入したいけど、どこから手をつければいいかわからない方必見! |
ご興味のあるかたはぜひご参加ください。 |