web-dev-qa-db-ja.com

クエリに回答したDNSサーバーを確認する

一見シンプルな質問がありますが、検索してもその質問に対する答えを見つけることができませんでした。
ドメイン名のIPアドレスを調べたい場合は、たとえば次のように入力します。

nslookup google.de

そして得る

Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
Name:   google.de
Address: 172.217.18.3

しかし、私はこの答えをどこから得たのかわかりません。私が最初に知っている限り、私のリゾルバーは私のローカルDNSサーバー(Ubuntu dnsmasq上にあります)に質問を試み、そのDNSサーバーに答えがない場合は次のサーバーに尋ねます。しかし、最終的にどのサーバーが答えを出したかを知りたいのです。それは可能ですか?
私も試しました

Dig +trace www.google.com

発行されたサーバーに関するすべての情報を提供しますが、完全な反復ルックアップを実行します。基本的にはそのような答えが欲しいのですが、通常のルックアップを使用します。

9
Staki42

最終的にどのサーバーに答えがあったのか知りたい。それは可能ですか?

これは達成できません。参照された特定の権限のあるサーバーは、DNS応答のペイロードのどこにも指定されていません。返信した特定のrecursiveサーバーを識別するために存在するCHAOSクエリがありますが、リカーサーが取得した正確な権限のあるサーバーの名前を抽出するための同等のクエリはありませんからのデータ。

PhillipがリンクしたStackOverflow Q&Aは、再帰DNS応答の権限セクションに存在していたNSレコードのリストを識別する方法についての説明を提供します。ただし、これはサーバーの完全なリストであり、特定のサーバーではありません。十分に使用できたとしても、この情報はDNS標準ではオプションであると見なされており、内部ソースのリフレクション攻撃のペイロードサイズを削減するために、再帰応答でこの情報を確認することはまれになっています。

ゾーンの名前がわかっている場合は、NSレコードの完全なリストを明示的なリクエストでリクエストできます。これはあなたがゾーンの頂点にいることを知る必要があります。 example.com NSレコードは目的の応答を返しますがwww.example.comは、wwwが別のサーバーのセットに委任されない限り、しません。この場合、ゾーンの頂点が見つかるまで、逆方向に繰り返し作業するしかありません。

簡単に言えば、再帰サーバーからallアップストリーム権限に関する情報を取得するための信頼できる短いパス(つまり、単一のクエリ)はなく、noがあります。権限のあるサーバーを制御したり、各サーバーで一意のデータを作成したりせずに、クエリに応答した特定の権限のあるサーバーを学習する方法。 (これを行う場合は、よりデリケートな本番ゾーンの転送を妨げないように、その目的のために一意のゾーンを作成してください)

5
Andrew B

これを参照してください https://stackoverflow.com/questions/38021/how-do-i-find-the-authoritative-name-server-for-a-domain-name

つまり、nslookupはクエリタイプをSOAに設定します。

単線:

 nslookup -querytype=soa google.de
 nslookup -d2 -type=ANY google.de
 nslookup -d2 -type=ANY google.de 8.8.8.8

探します:プライマリネームサーバー

command line> nslookup
> set querytype=soa
> google.de
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Non-authoritative answer:
google.de
    primary name server = ns2.google.com 
    responsible mail addr = dns-admin.google.com
    serial  = 160093636
    refresh = 900 (15 mins)
    retry   = 900 (15 mins)
    expire  = 1800 (30 mins)
    default TTL = 60 (1 min)

>

編集:

SOAレコードは最善の方法ではない可能性があります。正しく設定されていない可能性もあります。したがって、NSレコードはより良い選択:

ドメインのnameserverサーバーはどこですか...

  nslookup  -type=NS google.de

または、nameserverを見つけるための多くのデバッグ情報

  nslookup -d2 -type=NS google.de
6

デフォルトの応答でDigを使用すると、応答するネームサーバーのIPが得られます。これは、システムで構成された再帰ネームサーバー(/etc/resolv.conf通常)。

1
Patrick Mevzek