CentOSでdigコマンドを使い、A・MX・NS・CNAME・PTRなど各種DNSレコードを確認する方法をまとめる。
前提/環境
CentOS 7 / CentOS Stream 8で確認。digはbind-utilsパッケージに含まれる。
[root@centos ~]# yum install -y bind-utils
[root@centos ~]# dig -v
DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.6
基本的な使い方
Aレコードの確認
オプションを付けずに実行すると、既定でAレコードを問い合わせる。
$ dig example.com
; <> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.6 <> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 300 IN A 192.0.2.1
;; Query time: 12 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Wed Aug 26 10:00:00 JST 2026
;; MSG SIZE rcvd: 56
出力を簡潔にする(+shortオプション)
ヘッダやセクション情報を省き、結果だけを表示する。スクリプトから呼ぶ場合に使う。
$ dig example.com +short
192.0.2.1
MXレコードの確認
$ dig example.com MX +short
10 mail.example.com.
NSレコードの確認
$ dig example.com NS +short
ns1.example.com.
ns2.example.com.
CNAMEレコードの確認
$ dig www.example.com CNAME +short
example.com.
逆引き(PTRレコード)の確認
-xオプションでIPアドレスから逆引きする。
$ dig -x 192.168.1.10 +short
server01.internal.example.jp.
問い合わせ先DNSサーバを指定する
@オプションで、既定のリゾルバではなく特定のDNSサーバに直接問い合わせできる。社内DNSの動作確認に使う。
$ dig @192.168.1.1 example.com +short
192.0.2.1
ハマりどころ
digが見つからない場合は、bind-utilsパッケージが未インストール。ミニマム構成のCentOSでは標準で入っていないことが多い。
+shortを付けないと出力が長くなり、シェルスクリプトでのパースには不向き。逆に確認方法(ANSWER SECTIONのTTLやSERVER行)を見たいときは+shortを外す。
社内DNSサーバに@オプションで直接問い合わせる場合、DNSサーバ側でUDP/TCPの53番ポートが該当ホストからのクエリを許可しているか確認する。ファイアウォールでブロックされているとtimed outになる。