再帰DNSサーバーとは
再帰DNSサーバーは、端末から受けたDNS問い合わせに対し、キャッシュを調べ、必要なら他のDNSサーバーをたどって最終的な答えまたはエラーを返すサーバーです。英語ではrecursive DNS server(リカーシブ・ディーエヌエス・サーバー)またはrecursive resolver(リカーシブ・リゾルバー)と呼びます。
端末側は通常、「最終的な結果まで調べてほしい」という再帰要求を付けて一度問い合わせます。再帰DNSサーバーは利用可能なキャッシュを先に調べ、答えが足りなければルート、TLD、権威DNSサーバーなどへ問い合わせます。
端末に一回の回答を返すため、裏側ではキャッシュ利用と複数回の問い合わせが組み合わさります。毎回ルートからたどるわけでも、一台が世界中の正式データを保存しているわけでもありません。

再帰と反復は、誰が次をたどるかが違う
- 1端末が再帰要求を送る
設定済みの再帰DNSサーバーへ、名前と種類を指定します。
- 2有効なキャッシュを確認する
必要なRRsetがそろっていれば、その残りTTLとともに返します。
- 3参照先を順にたどる
未保存なら、ルートやTLDから示された次のDNSサーバーへ反復問い合わせを行います。
- 4最終結果を返して保存する
答え、不存在、または処理エラーを端末へ返し、保存可能な情報をキャッシュします。
権威DNSサーバーとは、データの立場が違う
再帰DNSサーバーが持つ答えの多くは、他のサーバーから取得した一時的なコピーです。これに対し権威DNSサーバーは、担当ゾーンの正式なデータを提供します。「よく問い合わせるサーバー」と「正式な登録内容を持つサーバー」を同じものとして扱わないことが重要です。
一台のソフトウェアが再帰機能と権威機能の両方を備えることは技術的には可能ですが、インターネット向け運用では役割や公開範囲を分けるのが一般的です。応答にAAビットがあるか、RAビットがあるかも役割を読む手掛かりになります。
転送型は、調査をさらに上流へ渡す
再帰リゾルバー自身がルートから反復問い合わせする構成をfull-service resolver(フルサービス・リゾルバー)と呼びます。一方、問い合わせの全部または一部を別の再帰リゾルバーへ渡すものがforwarding resolver(フォワーディング・リゾルバー)です。
家庭用ルーターが端末の問い合わせを通信事業者の再帰DNSへ転送する構成では、端末の設定画面にはルーターのアドレスだけが見えることがあります。どこが最終的に反復問い合わせしたかを調べるには、ルーターの転送設定や上流サービスまで確認します。
公開再帰サービスには、検証と利用制限がある
再帰DNSサービスには、応答を暗号学的に検証するDNSSEC検証、悪意ある名前の遮断、組織内名の特別処理などが加わる場合があります。同じ名前でも、利用する再帰DNSサーバーのキャッシュ状態や方針によって応答時刻や結果が異なることがあります。
誰からでも再帰要求を受けるopen resolver(オープン・リゾルバー)は、応答を偽装した送信元へ大量に返す増幅攻撃に悪用され得ます。組織内サーバーは利用元を制限し、公開サービスは攻撃対策を備えて運用します。
再帰問い合わせの用語確認資料:RFC 1034「Domain Names — Concepts and Facilities」、RFC 9499「DNS Terminology」