DNSフォワーダーとは、クライアントから受け取ったDNS問い合わせのうち、自分で直接答えられないものを、別のDNSサーバーへ転送して解決を任せる仕組み、またはその役割を持つDNSサーバーのことです。
簡単にいうと、「名前解決を自分だけで最後までやらず、上流のDNSサーバーに問い合わせを引き継ぐ中継役」です。
DNSは、example.com のようなドメイン名を、93.184.216.34 のようなIPアドレスに変換する仕組みです。
たとえば、ユーザーがブラウザでWebサイトを開くときは、まずDNSサーバーに対して、
www.example.com のIPアドレスは何かを問い合わせます。
DNSサーバーはその結果を返し、端末はそのIPアドレスに接続します。
このときDNSサーバーには、主に次のような動き方があります。
この「転送する」役割を担うのがDNSフォワーダーです。
DNSフォワーダーは、クライアントから問い合わせを受けると、まず自分がすでに答えを持っているか確認します。
たとえば次の順序で動くことが一般的です。
つまりDNSフォワーダーは、問い合わせを受ける窓口であり、必要に応じて他のDNSサーバーへ取り次ぐ役割を持っています。
たとえば社内ネットワークで、各PCが直接インターネット上のDNSサーバーへ問い合わせるのではなく、まず社内DNSサーバーに問い合わせる構成があります。
この場合は次のような流れになります。
この社内DNSサーバーが、外部DNSへの問い合わせを中継していれば、それがDNSフォワーダーです。
DNSフォワーダーは、単なる中継役というだけでなく、運用上かなり重要な意味があります。
各端末がそれぞれ外部DNSへ直接問い合わせるのではなく、社内DNSにまとめて問い合わせるようにすると、ネットワーク管理がしやすくなります。
たとえば、
といった利点があります。
DNSフォワーダーはキャッシュ機能を持つことが多く、同じ問い合わせが繰り返されたときに、毎回上流DNSへ聞きに行かずに済みます。
たとえば社内の多くの端末が同じサイトへアクセスする場合、最初の問い合わせ結果をキャッシュしておけば、その後はより速く応答できます。
そのため、
が期待できます。
社内には、インターネット上には存在しない内部用のサーバー名があることがあります。
例
fileserver.internal.exampledb01.corp.exampleこのような社内向けの名前は社内DNSが答え、外部サイトの名前は上流DNSへ転送する、といった役割分担ができます。
DNSフォワーダーには、すべての問い合わせを同じ上流DNSへ送るだけでなく、特定ドメインだけ特定のDNSサーバーへ送る設定もあります。
これを条件付きフォワーダーといいます。
たとえば、
partner.example 宛ての問い合わせは取引先のDNSへ送るcorp.example は自社DNSで解決するというように、ドメインごとに処理を分けられます。
これは次のような場面でよく使われます。
ここは混同しやすいポイントです。
再帰解決は、DNSサーバーがクライアントの代わりに最終的な答えを得るまで問い合わせを進める動作です。
たとえば必要に応じて、
.com や .jp など)へ段階的に問い合わせながら、最終的な回答を得ます。
フォワーディングは、その処理を別のDNSサーバーへ引き継ぐ動作です。
つまり、
という関係です。
このため、再帰DNSサーバーとDNSフォワーダーは完全に別物というより、機能として組み合わせて使われることがあると理解するのが正確です。
実際には、
という動作をするDNSサーバーもあります。
DNSフォワーダーを使わないDNSサーバーは、必要に応じて自分で名前解決を進めます。
ただし、毎回必ず最初からルートDNSに問い合わせるとは限りません。
すでにキャッシュがあれば、それを利用して途中から解決できます。
一方、DNSフォワーダーを使う場合は、
という流れになります。
DNSの仕組みを説明するときによく出てくるのがルートDNSサーバーです。
ルートDNSサーバーは、通常、最終的なWebサイトのIPアドレスそのものを返すのではなく、どのTLD側に問い合わせればよいかという参照情報を返す役割を担います。
たとえば www.example.com を調べる場合、ルートDNSは .com を扱う側の情報を返し、そこからさらに適切なDNSサーバーへたどっていく流れになります。
この意味でも、DNSは1台のサーバーがすべてを知っているのではなく、段階的にたどる仕組みになっています。
DNSフォワーダーは、その「たどる処理」を上流のDNSサーバーに任せる役割を持つわけです。
DNSフォワーダーの主なメリットは次の通りです。
同じ問い合わせが多い環境では、キャッシュによって応答が速くなりやすくなります。
端末のDNS設定を社内DNSに統一しやすくなり、管理や運用が楽になります。
社内ドメイン、取引先ドメイン、外部ドメインを整理して処理しやすくなります。
DNS通信を特定のサーバーに集約することで、ログ管理や通信制御を行いやすくなります。
ただし、これはフォワーダーを導入するだけで自動的に安全になるわけではなく、アクセス制御やポリシー設計とあわせて活きるメリットです。
便利な一方で、注意点もあります。
端末がすべて同じDNSフォワーダーに依存している場合、そのサーバーが停止すると名前解決全体に影響が出ることがあります。
フォワーダー自体が正常でも、転送先のDNSサーバーが遅い、または障害を起こしていると影響を受けます。
一か所にDNS問い合わせを集約するぶん、設定ミスがあると多くの端末に影響する可能性があります。
そのため実際の運用では、
が重要になります。
DNSフォワーダーは、次のような環境でよく使われます。
各端末が社内DNSへ問い合わせ、社内DNSが必要に応じて外部DNSへ転送します。
Windows Server の DNS では、通常のフォワーダーや条件付きフォワーダーがよく使われます。
別拠点や取引先の内部ドメインを引くために、特定ドメインだけ相手先DNSへ転送する構成が使われます。
AWS、Azure、GCP などのクラウド側DNSと、社内DNSを連携させる用途でも使われます。
家庭用ルーターの中には、LAN内の端末からDNS問い合わせを受けて、上流のDNSへ転送する簡易的なDNSフォワーダーとして動くものもあります。
DNSフォワーダーとキャッシュDNSは混同されやすいですが、役割の切り口が少し異なります。
実際のDNSサーバーでは、この2つの機能をあわせ持つことが多いため、実務上は一体のものとして扱われることも珍しくありません。
DNSフォワーダーは、HTTPプロキシのように通信内容そのものを中継するものではありません。
中継するのはあくまでDNS問い合わせです。
役割が違うため、同じ「中継」でも別の仕組みです。
DNSフォワーダーとは、クライアントから受けたDNS問い合わせのうち、自分で答えられないものを、別のDNSサーバーへ転送して解決を委ねる仕組み、またはその役割を持つDNSサーバーです。
ポイントをまとめると、次のようになります。
一言でいうと、DNSフォワーダーは「DNS問い合わせを必要に応じて上流へ取り次ぐ受付役」です。
以上、DNSフォワーダーについてでした。
最後までお読みいただき、ありがとうございました。