今号では、dig コマンドの使い方やオプションについてご紹介します!
dig コマンドとは
dig コマンドは、DNS サーバに問合せを行ない、様々な情報を取得することができるコマンドです。
主に、下記の用途で使用される事が多いです。
・ホスト名から IP アドレスを調べる (正引き)
・IP アドレスからホスト名を調べる (逆引き)
・MX レコード (メールサーバ)、NS レコード (ネームサーバ) などの詳細な情報を取得する
dig コマンドにより DNS サーバに関する詳細を確認できるため、DNS に関連する設定に誤りがないか、
またネットワークの問題が発生した際に、名前解決に問題がないか等を確認できます。
dig コマンドのインストール
dig コマンドは bind-utils パッケージに含まれるコマンドです。
デフォルトではインストールされていないため (RHEL6~RHEL9 の環境で確認済み)、
まずは bind-utils をインストールしましょう。
# dnf install bind-utils
基本の使い方・結果の見方
- A レコード (IPv4 アドレス) の情報を表示する
dig コマンドの後にホスト名を入力すると、A レコード (IPv4 アドレス) の情報 が表示されます。
# dig example.com ; > DiG 9.11.36-RedHat-9.11.36-11.el8_9.1 > example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER
・QUESTION SECTION: example.com の A レコードへの問合せであることを示します。
・ANSWER SECTION: example.com の A レコードが 93.184.215.14 であることを示します。
・Query time: 問合せにかかった時間 (この場合は 2ミリ秒) を示します。
・SERVER: 問合せを行なった DNS サーバのアドレス (この場合は 172.31.0.2) を示します。 - AAAA レコード (IPv6 アドレス) の情報を表示する
最初の例では IPv4 の情報のみ表示されますが、AAAA レコード (IPv6 アドレス) の情報を
表示したい場合は、ホスト名の後に AAAA と記載します。
すると、ANSWER SECTION の IP アドレスが、IPv6 に変化していることが分かります。# dig example.com AAAA ; > DiG 9.11.36-RedHat-9.11.36-11.el8_9.1 > example.com AAAA ;; global options: +cmd ;; Got answer: ;; ->>HEADER
- MX レコード (メールサーバ) の情報を表示する
メールサーバに関連する情報を表示したい場合は、ホスト名の後に MX と記載します。
すると、ANSWER SECTION に MX レコードの情報 (mail.example.com) および優先度 (10) が
表示されていることが分かります。# dig example.com MX ; > DiG 9.11.36-RedHat-9.11.36-11.el8_9.1 > example.com MX ;; global options: +cmd ;; Got answer: ;; ->>HEADER
- NS レコード (ネームサーバ) の情報を表示する
ネームサーバに関連する情報を表示したい場合は、ホスト名の後に NS と記載します。
すると、ANSWER SECTION に NS レコードの情報 (ns1.example.com と ns2.example.com) が
表示されていることが分かります。# dig example.com NS ; > DiG 9.11.36-RedHat-9.11.36-11.el8_9.1 > example.com NS ;; global options: +cmd ;; Got answer: ;; ->>HEADER
- すべてのレコードの情報を表示する
対象サーバのすべての情報を表示したい場合は、ホスト名の後に ANY と記載します。
例として、メールサーバ example.com のすべての情報を表示した場合、ANSWER SECTION に
A レコード、AAAA レコード、MX レコードの情報が表示されていることが分かります。# dig example.com ANY ; > DiG 9.10.3-P4-Ubuntu > example.com ANY ;; global options: +cmd ;; Got answer: ;; ->>HEADER
- 逆引きを行う
逆引き (IP アドレスからホスト名を問合せる) を行いたい場合は -x オプションを指定します。
すると、ANSWER SECTION に ホスト名 (server.example.com) が表示されていることが分かります。# dig -x 172.10.1.10 ; > DiG 9.11.36-RedHat-9.11.36-11.el8_9.1 > -x 172.10.1.10 ;; global options: +cmd ;; Got answer: ;; ->>HEADER