再帰問い合わせ 【recursive DNS query】
概要
再帰問い合わせ(recursive DNS query)とは、ドメイン名とIPアドレスを対応付けるDNSで、DNSクライアント(スタブリゾルバ)からDNSキャッシュサーバ(フルサービスリゾルバ)に対して行われる問い合わせ。権威DNSサーバ群への再帰的な探索を行ってほしいという要求を表している。ドメイン名は「www.example.jp」のような形式で表されるが、「jp」「example.jp」など各階層のドメインにはそれぞれ管理主体がおり、各々がインターネット上に権威DNSサーバを公開して自身の管理するドメイン情報への問い合わせを受け付けている。
ドメイン名から対応するIPアドレスを割り出すには、「ルートDNSサーバに『jp』の権威サーバの所在を教えてもらう」→「『jp』の権威サーバに『example.jp』の権威サーバの所在を教えてもらう」→「『example.jp』の権威サーバに『www.example.jp』のIPアドレスを教えてもらう」という具合に複数のサーバに順番に問い合わせなければならない。
利用者が操作する端末で動作するDNSクライアントが個別にこの割り出し作業を行うのは非効率であるため、クライアントに代わってこの操作を代行し、結果のみを教えてくれるDNSサーバが運用されている。これを「DNSキャッシュサーバ」あるいは「フルサービスリゾルバ」という。
再帰問い合わせはクライアントからDNSキャッシュサーバへ特定のドメイン名の探索を依頼するメッセージで、DNSメッセージの「RDビット」(Recursion Desired)と呼ばれる領域が「1」に設定されている。
キャッシュサーバから権威サーバへの問い合わせは探索を依頼せず単に情報を聞き出す「非再帰問い合わせ」(non-recursive query)で、RDビットは「0」になっている。再帰問い合わせを受け付けることができるDNSサーバはDNS応答メッセージのRAビット(Recursion Available)が「1」に設定されている。
(2023.7.6更新)