digコマンドを実行したら結果が空だった

2021/04/08

DNS情報を確認したかったので dig コマンドを実行してみたら、下記のようになぜか結果がちゃんと表示されませんでした。

$ dig yahoo.co.jp
; <<>> DiG 9.10.6 <<>> yahoo.co.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: FORMERR, id: 60546
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; WARNING: EDNS query returned status FORMERR - retry with '+noedns'

;; QUESTION SECTION:
;yahoo.co.jp.                        IN        A

;; Query time: 5 msec
;; SERVER: 10.10.61.1#53(10.10.61.1)
;; WHEN: Mon Apr 05 12:30:06 JST 2021
;; MSG SIZE  rcvd: 29

なんでかな?と思いながら、実行結果を見てみると…

下記のようなメッセージがありました。

;; WARNING: EDNS query returned status FORMERR - retry with '+noedns'

retry with '+noedns' と書いてあるのでこれをつけて実行し直してみようと思います。

dig コマンドに +noedns をつけて実行

$ dig yahoo.co.jp +noedns
; <<>> DiG 9.10.6 <<>> yahoo.co.jp +noedns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 388
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;yahoo.co.jp.                        IN        A

;; ANSWER SECTION:
yahoo.co.jp.                300        IN        A        183.79.135.206
yahoo.co.jp.                300        IN        A        182.22.59.229

;; AUTHORITY SECTION:
yahoo.co.jp.                169        IN        NS        ns02.yahoo.co.jp.
yahoo.co.jp.                169        IN        NS        ns12.yahoo.co.jp.
yahoo.co.jp.                169        IN        NS        ns01.yahoo.co.jp.
yahoo.co.jp.                169        IN        NS        ns11.yahoo.co.jp.

;; ADDITIONAL SECTION:
ns02.yahoo.co.jp.        725        IN        A        118.151.254.149
ns01.yahoo.co.jp.        138        IN        A        118.151.254.133
ns11.yahoo.co.jp.        360        IN        A        124.83.255.37
ns12.yahoo.co.jp.        598        IN        A        124.83.255.101

;; Query time: 7 msec
;; SERVER: 118.238.201.49#53(118.238.201.49)
;; WHEN: Mon Apr 05 12:30:38 JST 2021
;; MSG SIZE  rcvd: 201

コマンドの最後に +noedns を追加して実行してみると、結果がちゃんと表示されました。

ただ毎回、つけるのは面倒くさいなと思って調べてみたら、対策できそうなので今後のためにも設定。

.digrc で +noedns を設定

ホームディレクトリ配下に .digrc ファイルを作成して、+noedns と記述するとコマンドに毎回付け足さなくても良くなります。

$ vim ~/.digrc
+noedns

.digrc ファイルを作成してコマンドをもう一度実行してみると…

$ dig yahoo.co.jp
; <<>> DiG 9.10.6 <<>> yahoo.co.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35350
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;yahoo.co.jp.                        IN        A

;; ANSWER SECTION:
yahoo.co.jp.                157        IN        A        183.79.135.206
yahoo.co.jp.                157        IN        A        182.22.59.229

;; AUTHORITY SECTION:
yahoo.co.jp.                590        IN        NS        ns11.yahoo.co.jp.
yahoo.co.jp.                590        IN        NS        ns01.yahoo.co.jp.
yahoo.co.jp.                590        IN        NS        ns02.yahoo.co.jp.
yahoo.co.jp.                590        IN        NS        ns12.yahoo.co.jp.

;; ADDITIONAL SECTION:
ns11.yahoo.co.jp.        375        IN        A        124.83.255.37
ns01.yahoo.co.jp.        655        IN        A        118.151.254.133
ns02.yahoo.co.jp.        184        IN        A        118.151.254.149
ns12.yahoo.co.jp.        575        IN        A        124.83.255.101

;; Query time: 4 msec
;; SERVER: 10.10.61.1#53(10.10.61.1)
;; WHEN: Mon Apr 05 12:33:03 JST 2021
;; MSG SIZE  rcvd: 201

+noedns をつけたときと同じように dig コマンドを実行できるようになりました!