DNSフォワーダー

目次

DNSフォワーダーとは

DNSフォワーダーとは、DNSの名前解決において他のDNSサーバに名前解決の処理を委任すること を言います。

このDNSフォワーダーは名前解決をする側のDNSサーバの話しです。

今までの章でも、名前解決を行う側のDNSサーバとして、キャッシュDNSサーバを紹介してきました。

このサーバは自身で反復的にルートDNSやTLD DNS、権威DNSへ問い合わせを行い、名前解決を行いクライアントに返しておりました。

今回のDNSフォワーダーを使うと、この反復的な問い合わせを別のDNSへ作業を委任という名の丸投げすることが可能です。

DNSフォワーダーには2つ種類があり、「標準フォワーダー」「条件付きフォワーダー」です。

標準フォワーダーは、DNSフォワーダーサーバの中で名前解決が可能な内容(キャッシュやレコードを持っている場合)の時は回答を行い、できない場合は設定されている転送先に名前解決を丸投げします。

標準フォワーダー
条件付きフォワーダーは、特定のドメインのみ設定されている転送先のDNSサーバへ名前解決を丸投げします。

条件付きフォワーダー
このように適切に名前解決ができるように設定するものが、DNSフォワーダーです。

DNSフォワーダーの仕組み

標準フォワーダー

標準フォワーダーは、DNSサーバ自身では依頼された名前解決ができないと判断した時に別のDNSサーバへ名前解決を転送する仕組みです。

標準フォワーダーが設定されたDNSサーバーでは、クライアントからDNSクエリを受信すると、まず自身のキャッシュや、もし権威DNSの役割を持っている場合は自分のゾーン内で解決できるかを試します。

これらの情報で解決できない場合、標準フォワーダーとして設定されたDNSサーバーにクエリを転送します。

この標準フォワーダーは通常、組織のネットワーク外部にあるドメイン名解決のために使われ、多くの場合ISPが提供するDNSサーバーやGoogle Public DNS(8.8.8.8)、Cloudflare DNS(1.1.1.1)などのパブリックDNSサーバーが指定されます。

GoogleやCloudflareという企業が、高速に名前解決が可能なDNSリゾルバサーバをインターネット上に公開しているのです。

なので、自組織の中でわざわざDNSリゾルバサーバを構築して名前解決をさせずに、標準フォワーダーを設定したDNSフォワーダーサーバだけ用意して、名前解決自体はインターネット上で公開されている高性能なDNSを使うということができるのです。

標準フォワーダー
この仕組みにより自社内でのDNS管理を削減することが可能になります。

ただし、インターネット通信における土台である名前解決を他社のサービスに頼ることになりますので、仮に使っているDNSに障害や負荷増加による性能低下が起きた場合、自社にも影響が出るということが起こりえるというリスクがあります。

一応、このDNSフォワーダーには、転送先としているDNSリゾルバサーバが応答しなかったときは、自身でルートDNSから権威DNSまでの名前解決を行うというバックアップ設定も可能です。

通常は、DNSフォワーダーとして名前解決を丸投げし、万が一転送先が使用不可となったときは自身がDNSリゾルバに変身できるのです。

条件付きフォワーダー

条件付きフォワーダーは、特定のドメイン名に対する問い合わせのみを指定したDNSサーバに転送する仕組みです。

ドメイン名に基づいて選択的にクエリを転送するため、ドメインそれぞれに対して異なる解決経路を設定できる柔軟性を提供します。

DNSリゾルバは、基本的に自身の中に名前解決の回答がない(キャッシュを持っていない、権威DNSとしての役割をもたない)場合は、ルートDNS ~ 権威DNSへの名前解決ルートを使います。

なので、知らないドメイン名の名前解決依頼はとりあえず、全てルートDNSのほうへ聞きにいってしまうのです。

ただ、企業ではプライベートドメインという、自社内のプライベートネットワーク内でしか使用しないドメインというものがあります。

プライベートドメインは、ルートDNSへ聞きに行っても回答を知らない(自社内でしか使っていないので。)ので回答不可と返ってきてしまいます。

こんな時に、プライベートドメインについては、自社内にあるそのプライベートドメインの権威DNSへ聞きに行くように設定したいです。

そこで使用するのが、条件付きフォワーダーとなります。

条件付きフォワーダー
プライベートドメインは、自社内の権威DNSサーバへ聞きに行き、その他のドメインはインターネット上のルートDNS経由で反復問い合わせで回答を得ることで適切なDNSサーバへ名前解決先をコントロールできるのです。

標準フォワーダーと条件付きフォワーダーの違い

標準フォワーダーと条件付きフォワーダーの違いを整理してみます。

基本的なスタンスでいうと、標準フォワーダーはとりあえずなんでも転送先に丸投げし、条件付きフォワーダーは決まったドメインのみ他のDNSサーバに転送するというイメージです。

比較項目 標準フォワーダー 条件付きフォワーダー
適用範囲 すべての未解決クエリに対して適用される 特定のドメイン名やゾーンに対するクエリのみに適用される
設定の粒度 サーバー全体に対する設定 ドメインごとに異なるフォワード先を個別に設定可能
優先順位 条件付きフォワーダーの後に処理される 標準フォワーダーよりも優先して処理される
主な用途 一般的なインターネットドメイン解決、ISPのDNSサーバーへの転送 特定の組織間連携、マルチサイト環境、分割DNS実装
設定例 すべての未解決クエリを8.8.8.8(Google DNS)に転送 example.comドメインのクエリのみを192.0.2.10に転送
ネットワーク上の位置付け 通常、組織の境界に位置するDNSサーバーに設定 複数のネットワークやドメインを接続する中間のDNSサーバーに設定
管理の複雑さ 比較的単純で管理が容易 ドメインごとに設定が必要で管理がやや複雑

DNSフォワーダーのメリット

標準フォワーダー

標準フォワーダーを使用するメリットとデメリットを整理します。

メリット

  • インターネット帯域幅の節約
  • キャッシュによる負荷分散
  • セキュリティの向上
  • DNSフィルタリングの一元化
  • ネットワーク構造の隠蔽
  • 集中管理

デメリット

  • 単一障害点の発生
  • 追加のレイテンシ
  • 柔軟性の制限
  • 構成の複雑化
  • 依存関係の増加
  • 問題の切り分け困難

標準フォワーダーを使用することで、実際の名前解決を特定のDNSリゾルバサーバに集中させることができます。

この指定するDNSリゾルバサーバは、インターネット上で公開されている他社のサーバにすることもできますし、自社で管理するDNSリゾルバサーバにすることもできます。

例えば、支社を含む複数の会社を持つグループ会社の場合、各社のDNSセキュリティを統括して管理したいという場合、DNSフォワードの設定が有効です。

支社にはDNSフォワーダーのみを配置し、DNSリゾルバは本社管理とすることで、全社の名前解決の記録とインターネットへの通信口を少なくすることができるのです。

大企業向け標準フォワーダー構成
このような形で、標準フォワーダーは有用に使用することが可能です。

条件付きフォワーダー

条件付きフォワーダーを使用するメリットとデメリットを整理します。

メリット

  • ドメイン別の最適経路設定
  • 分割DNS実装の容易さ
  • 複数組織間の連携強化
  • セキュリティの強化
  • マルチサイト環境での柔軟性

デメリット

  • 設定・管理の複雑さ
  • メンテナンスの必要性
  • トラブルシューティングの複雑さ
  • 競合リスク
  • パフォーマンスへの影響
  • フォールバック動作の制限
条件付きフォワーダーを使う環境は、主に複数のドメインを使用しており、そのドメインを管理する権威DNSが散在している状況での利用が考えられます。

インターネット上で公開するためのドメインや、自社内でのみ使用するプライベートドメイン、更には協力会社がいる場合はその会社のDNSを参照することもあります。

このようなときに、名前解決を行う権威DNSサーバを指定することで、最適な名前解決の経路を構築可能になります。

マルチドメイン構成

DNSフォワーダーの優先順位

これまでDNSフォワーダーとして、「標準フォワーダー」と「条件付きフォワーダー」を解説してきましたが、フォワーディングには優先順位があります。

標準フォワーダー」と「条件付きフォワーダー」の両方が設定されている場合は、「条件付きフォワーダー」が優先されます。

条件付きフォワーダーでマッチしなかった問い合わせについては、標準フォワーダーが適用されるという流れになります。

フォワーディングの順序

まとめ

DNSによるフォワーディングの解説を行ってきました。

DNSサーバは色々な役割のサーバや複数の権威DNSが絡み合って、名前解決が行えます。

その名前解決を適切に行うには、名前解決経路の設計が重要になります。

DNSフォワーディングは正直、複雑な設定ではありますが、通信帯域やセキュリティ、サービス提供性などの重要な要素を支える技術です。

使いこなせるように内容をしっかりと理解していってください。