🐺
dig で +trace をつけても反復的名前解決が行われないときの対処法
TL; DR
dig のバージョンを 9.20.1
にする。
前提環境
- macOS Sonoma
- dig のバージョン
- Before: 9.10.6
- After: 9.20.1
問題
DNS に関する調査にあたって、権威サーバからの応答を確認したかったので、以下のコマンドを実行しました。
$ dig example.com +trace
; <<>> DiG 9.10.6 <<>> example.com +trace
;; global options: +cmd
;; Received 17 bytes from 192.168.11.1#53(192.168.11.1) in 142 ms
$ which dig
/usr/bin/dig
+trace は、ルートサーバから順に権威サーバへの問い合わせを実行してくれるオプションです。
ただ、この結果を見るにどうやら192.168.11.1
からのみ応答があり、権威サーバにリクエストした形跡がありません。
対処
1, 2時間格闘したのですが結局よく分からず、最新の dig を入れたら権威サーバへのリクエストも確認できるようになりました。結果が大きかったので抜粋しています。
$ brew install bind
$ dig example.com +trace
; <<>> DiG 9.20.1 <<>> example.com +trace; (1 server found)
;; global options: +cmd
. 512200 IN NS a.root-servers.net.
. 512200 IN NS b.root-servers.net.
. 512200 IN NS c.root-servers.net.
. 512200 IN NS d.root-servers.net.
;; Received 525 bytes from 1.1.1.1#53(1.1.1.1) in 36 ms
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
;; Received 1171 bytes from 192.5.5.241#53(a.root-servers.net) in 19 ms
example.com. 172800 IN NS a.iana-servers.net.
;; Received 235 bytes from 192.5.6.30#53(a.gtld-servers.net) in 236 ms
example.com. 3600 IN A 93.184.215.14
;; Received 163 bytes from 199.43.135.53#53(a.iana-servers.net) in 131 ms
$ which dig
/opt/homebrew/opt/bind/bin/dig
終わりに
直接の原因はわからなかったのですが、9.10.6
と9.20.1
の差分が影響していることは間違いなさそうです。
ただ、9.10.6
でもネームサーバを1.1.1.1
に指定すると、9.20.1
同様の結果が得られました。8.8.8.8
ではダメでした。
$ dig @1.1.1.1 example.com +trace
<権威サーバへの問い合わせ結果>
$ dig @8.8.8.8 example.com +trace
; <<>> DiG 9.10.6 <<>> example.com +trace
;; global options: +cmd
;; Received 17 bytes from 192.168.11.1#53(192.168.11.1) in 142 ms
あと、この記事を書いているときに気づいたのですが、9.10
系は、すでに EOL になっていたので、そもそもアプデするのが良さそうです。
標準でインストールされているコマンドが EOL だなんて、かなし〜。
Discussion