反復リクエストを行うDNS

反復リクエストを行うDNS

Windows または Linux 上のクライアントを再帰クエリではなく反復クエリを実行するように構成できるかどうかを尋ねたいと思います。

DNS サーバーの再帰をオフにする方法に関する記事しか見つかりませんでした。

ありがとう

答え1

反復 DNS クエリが何であるか全くわかりません。

DNS サーバーに送信されたクエリは、「再帰要求」フラグを設定することがあります。これは、人間が話す言葉で言えば、「[もの] のアドレスは何ですか。わからない場合は、調べてください」と言っているようなものです。サーバーはこれを拒否し、「知りませんし、尋ねていません」と同等の応答を返すか、「尋ねてみたら、[これ] です」または「尋ねてみたら、[これ] だと教えられました」または「私はこれを知っています。[これ] です。実際、私はそのアドレスの権限を持っています」と応答することがあります。

非再帰クエリは、単に「[もの] のアドレスは何ですか。ただし、わからない場合は、そのように言ってください」というものです。サーバーは、以前の再帰クエリからの回答をすでに知っていてそれを返す場合もあれば、そうでない場合もありますが、いずれにしても、今度は何もクエリしません。

サーバー (S と呼ぶことにします) が再帰要求を尊重すると仮定すると、サーバーは名前 (たとえば、「www.example.com」) を取得し、情報を持つ右端のコンポーネントから開始します。

これは何もない場合もあります。その場合、S はルート サーバーにクエリを送信します。ルート サーバーのリストはキャッシュされているか、ハードコードされているか、事前に設定されているリストとして提供されています。ルート サーバーの 1 つが「www.example.com、再帰要求」という要求を受け取ります。ルート サーバーは再帰しませんが、次善策として「.com」のネーム サーバーとそのアドレスを返します。次のコマンドを実行してみてください
dig www.google.com @c.root-servers.net

S は次に、それらの 1 つに「www.example.com、再帰要求」を要求します。これらも再帰しま​​せんが、次善策として、「example.com」のネームサーバーとそのアドレス (取得元はスキップします - 「グルー レコード」を参照してください) を返します。次善策として、以下を実行してみてください
dig www.google.com @k.gtld-servers.net

S は次に、それらの 1 つに「www.example.com、再帰要求」を要求します。答えを知っているので再帰する必要はありません。そのため、フラグ「authoritative answer」とともに返します。
実行してみてくださいdig www.google.com @ns3.google.com(「aa」フラグに注意してください。次のようになります)。返信フラグのリスト)。

その後、S は、権限がないため、つまり問い合わせる必要があったため、「aa」フラグなしで最終回答をクライアントに返します。

ある意味では、「再帰的」なクエリは S によって「反復的に」処理されます。クライアントがこれを直接実行したい場合は、ルート サーバーのリストを事前に構成しておく必要があります (ルート サーバーに問い合わせることで更新できます)。また、結果をキャッシュして他のローカル プログラムが再利用できるようにする必要があります。つまり、基本的には、ローカル ホスト上で再帰的でキャッシュのみの (何に対しても権限がないため) ネーム サーバーを実行することになります。

それで...質問を明確にしてもらえますか? 何をしたいと考えていますか?

答え2

DNS 要求をサーバーに送信するときに、反復モードに調整できます。この要求では、DNS サーバーの設定は無視されます。

たとえば、digまたはnslookupで試すことができます

dig +norecurse netpas.co

DNS サーバーがレコードをキャッシュした場合は、A レコードが表示されます。または、次に試す必要がある DNS サーバーの提案が表示されます。

関連情報