dig コマンドはデフォルトだと A レコードしか見ない

メールサーバの問題を調べる時に dig コマンドを使ったのだが、MX レコードが確認できなかった。

# 例として Yahoo を使用
$ dig yahoo.co.jp

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

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;yahoo.co.jp.                   IN      A

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

;; Query time: 17 msec
;; SERVER: 2404:1a8:7f01:b::3#53(2404:1a8:7f01:b::3)
;; WHEN: Mon Jan 18 09:49:51 JST 2021
;; MSG SIZE  rcvd: 72

dig コマンドでどのような DNS 設定がされているかは、ANSWER SECTION という出力部分を見れば分かるのだが、ココに A レコードしか並んでおらず、MX レコードが確認できなかったのだ。

なんでだー?設定してなかったっけー?と思ってよくよく調べてみると、dig コマンドはオプション引数を一切指定しないと A レコードしか表示しないようだ。

# つまり以下と同義
$ dig yahoo.co.jp a

MX レコードを見たい場合は、ドメイン名の後ろに mx とオプションを付けるか、全部の情報を表示する any を指定すれば良い。

# MX レコードのみ表示
$ dig yahoo.co.jp mx

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

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;yahoo.co.jp.                   IN      MX

;; ANSWER SECTION:
yahoo.co.jp.            788     IN      MX      10 mx3.mail.yahoo.co.jp.
yahoo.co.jp.            788     IN      MX      10 mx2.mail.yahoo.co.jp.
yahoo.co.jp.            788     IN      MX      10 mx1.mail.yahoo.co.jp.
yahoo.co.jp.            788     IN      MX      10 mx5.mail.yahoo.co.jp.

;; Query time: 15 msec
;; SERVER: 2404:1a8:7f01:b::3#53(2404:1a8:7f01:b::3)
;; WHEN: Mon Jan 18 09:51:37 JST 2021
;; MSG SIZE  rcvd: 125

# 全部表示
$ dig yahoo.co.jp any

; <<>> DiG 9.10.6 <<>> yahoo.co.jp any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16428
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;yahoo.co.jp.                   IN      ANY

;; ANSWER SECTION:
yahoo.co.jp.            250     IN      A       183.79.135.206
yahoo.co.jp.            250     IN      A       182.22.59.229
yahoo.co.jp.            5       IN      MX      10 mx2.mail.yahoo.co.jp.
yahoo.co.jp.            5       IN      MX      10 mx5.mail.yahoo.co.jp.
yahoo.co.jp.            5       IN      MX      10 mx1.mail.yahoo.co.jp.
yahoo.co.jp.            5       IN      MX      10 mx3.mail.yahoo.co.jp.

;; Query time: 20 msec
;; SERVER: 2404:1a8:7f01:b::3#53(2404:1a8:7f01:b::3)
;; WHEN: Mon Jan 18 09:51:55 JST 2021
;; MSG SIZE  rcvd: 157

調べていたらついでに、IP アドレスからドメイン名を逆引きする -x オプションも見つけた。

$ dig -x 【IP アドレス】

まだまだ知らないこと多かった…。