
TLDのネーム サーバーを取得しようとしました。が有効になっていて、実行されたコマンドが次com
の場合の成功した出力は次のとおりです。
dnscrypt-proxy
dig com. ns
掘る成功
これは次の結果ですdig @a.root-servers.net com. ns
:
答えのないセクションを掘る
これはオンラインdigインターフェースを使用した出力であり、コマンドはdig NS +noadditional +noquestion +nocomments +nocmd +nostats com. @a.root-servers.net
リンク
;; Truncated, retrying in TCP mode.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
オンラインの dig インターフェイスでは、a.root
回答が得られる可能性があると表示されますが、自分のシステムではそれを再現できません。
答え1
あなたが示した予期しない結果に基づくと、DNS クエリを好きな場所に送信できる「クリーンな」ネットワーク パスがない環境で実行しているという印象を受けますdig
。何かがクエリを傍受して処理します。
あなたのdig
出力(以下に引用)から、以下の調査結果に基づいて上記の結論に至りました。
; <<>> DiG 9.18.1-1-Debian <<>> @a.root-servers.net com. ns
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50284
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;com. IN NS
;; Query time: 12 msec
;; SERVER: 2001:503:ba3e::2:30#53(a.root-servers.net) (UDP)
;; WHEN: Wed Jun 15 18:15:11 WIB 2022
;; MSG SIZE rcvd: 32
質問でおっしゃっていたように、このクエリのセクションには、ルート サーバーの 1 つに向けられ
com
た委任NS
レコードが表示されるはずですAUTHORITY
。しかし、あなたの環境では、どういうわけかそうではありません。ルートサーバーは再帰サービスを提供していないことは間違いありませんが、それでも
ra
(再帰が利用可能) フラグが設定されました。クエリは明らかに アドレス
2001:503:ba3e::2:30
( の IP アドレスa.root-servers.net
) に送信されましたが、上記の動作はルート サーバーの動作と一致しません。結論としては、ネットワーク内で他の何かがこのようなクエリを傍受して応答していると考えられます。
次のようなクエリを試してみるとよいでしょう。
dig @a.root-servers.net version.bind CH TXT
dig @a.root-servers.net id.server CH TXT
どれのかもしれない実際に答えているのが何であるかについて、何らかのヒントを与えます。