server-memo.net

digコマンドの使い方

   

digコマンドの使い方です(普段使いそうなものだけです)

digコマンドの基本的な使い方

digコマンドを使用して名前解決をする方法をまとめています。

digがインストールされていない場合

CentOSであれば「bind-utils」をイストールすることで使用することができます。
「dig」というパッケージはないので注意してください。

# yum install bind-utils

digの使用方法

digを使用して名前解決を行うための基本的な書式は下記の通りとなります。

dig [@ネームサーバ] ホストまたはドメイン名 [検索タイプ] [検索オプション]
項目 設定内容
@ネームサーバ 名前解決の問い合わせを行うネームサーバをホスト名かIPアドレスで指定
指定がない場合は/etc/resolve.confに設定されているネームサーバに問い合わせを行う
ホストまたはドメイン名 名前解決を行いたいホスト名またはドメイン名を指定する
検索タイプ どのタイプ(レコード)の名前解決を行いたいか設定
省略時は「a」(正引き)となる
検索オプション オプションを指定

検索タイプ

検索タイプで指定するレコードの説明です。

検索タイプ 説明
a Aレコード(正引きの)の確認
ホスト名からIPアドレスを表示
※検索タイプを省略した場合はこちらが指定される
any すべての情報を確認
axfr ゾーン情報の転送確認(ゾーン転送の要求を実施)
cname CNAMEレコード(別名情報)の検索
mx MXレコード(メールの宛先サーバ)の確認
ns NSレコード(ネームサーバ)の確認
ptr PTRレコード(逆引き)の確認
soa SOAレコード(権威情報)の確認
txt txtレコードの確認

検索オプション

オプションは種類が多いので普段使いそうなものを抜粋して説明します。

オプション 説明
-x IPアドレス IPアドレスからホスト名(逆引き)の確認
+domain=ドメイン名 デフォルトのドメインを指定
+multiline 結果を適当な部分で折り返して表示
+norecurse 再帰問い合わせを行わない
デフォルト設定は+recurse再帰問い合わせを行う
+short 検索結果のみを表示

digの実行例

実際に「dig」コマンドで名前解決の方法を、実際の実行例をもとに説明していきます。

ホスト名からIPアドレスを確認(正引き)

名前解決を行うネームサーバとして「8.8.8.8」を指定して、「www.google.co.jp」のホスト名からIPアドレスを問い合わせます。

$ dig @8.8.8.8 www.google.co.jp

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> @8.8.8.8 www.google.co.jp
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18319
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
www.google.co.jp.       299     IN      A       172.217.24.131

;; Query time: 41 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Apr 25 16:14:27 JST 2017
;; MSG SIZE  rcvd: 61

名前解決を行った結果は「ANSWER SECTION」に表示されます。

IPアドレスからホスト名を確認(逆引き)

逆引きの名前解決を行う方法は下記の2通りあるので、それぞれの方法について実行例を記述します。

  • 「-x IPアドレス」オプションを使用
  • 検索タイプでptrを指定

「-x IPアドレス」オプションを使用

IPアドレスからホスト名を参照してみます。

「-x IPアドレス」で名前解決を行う場合は、検索タイプを指定する必要はありません。

$ dig @8.8.8.8 -x 172.217.24.131

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> @8.8.8.8 -x 172.217.24.131
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48484
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;131.24.217.172.in-addr.arpa.   IN      PTR

;; ANSWER SECTION:
131.24.217.172.in-addr.arpa. 86399 IN   PTR     nrt20s01-in-f131.1e100.net.
131.24.217.172.in-addr.arpa. 86399 IN   PTR     nrt20s01-in-f131.1e100.net.
131.24.217.172.in-addr.arpa. 86399 IN   PTR     syd09s06-in-f3.1e100.net.
131.24.217.172.in-addr.arpa. 86399 IN   PTR     nrt20s01-in-f3.1e100.net.
131.24.217.172.in-addr.arpa. 86399 IN   PTR     syd09s06-in-f3.1e100.net.
131.24.217.172.in-addr.arpa. 86399 IN   PTR     nrt20s01-in-f3.1e100.net.

;; Query time: 41 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Apr 25 16:16:09 JST 2017
;; MSG SIZE  rcvd: 196

ptrレコードを使用

検索タイプで「ptr」を指定する場合「in-addr.arpa」形式で指定する必要があるため、「-x IPアドレス」形式で名前解決を行うより入力が面倒になってしまいます。

# dig 131.24.217.172.in-addr.arpa ptr

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <<>> 131.24.217.172.in-addr.arpa ptr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18610
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;131.24.217.172.in-addr.arpa.   IN      PTR

;; ANSWER SECTION:
131.24.217.172.in-addr.arpa. 86400 IN   PTR     syd09s06-in-f3.1e100.net.
131.24.217.172.in-addr.arpa. 86400 IN   PTR     nrt20s01-in-f3.1e100.net.
131.24.217.172.in-addr.arpa. 86400 IN   PTR     nrt20s01-in-f131.1e100.net.
131.24.217.172.in-addr.arpa. 86400 IN   PTR     nrt20s01-in-f3.1e100.net.
131.24.217.172.in-addr.arpa. 86400 IN   PTR     nrt20s01-in-f131.1e100.net.
131.24.217.172.in-addr.arpa. 86400 IN   PTR     syd09s06-in-f3.1e100.net.

;; Query time: 61 msec
;; SERVER: 157.7.180.133#53(157.7.180.133)
;; WHEN: Wed Apr 26 18:43:22 JST 2017
;; MSG SIZE  rcvd: 196

MXレコード(メール配送先ホスト)を確認

メールの配送先ホストを確認する場合は、検索タイプ「mx」を指定します。

$ dig @8.8.8.8 gmail.com mx

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> @8.8.8.8 gmail.com mx
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63200
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;gmail.com.                     IN      MX

;; ANSWER SECTION:
gmail.com.              3599    IN      MX      10 alt1.gmail-smtp-in.l.google.com.
gmail.com.              3599    IN      MX      5 gmail-smtp-in.l.google.com.
gmail.com.              3599    IN      MX      20 alt2.gmail-smtp-in.l.google.com.
gmail.com.              3599    IN      MX      30 alt3.gmail-smtp-in.l.google.com.
gmail.com.              3599    IN      MX      40 alt4.gmail-smtp-in.l.google.com.

;; Query time: 36 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Apr 25 16:16:59 JST 2017
;; MSG SIZE  rcvd: 161

NSレコード(DNSサーバ)を確認

ドメインのゾーン情報を管理しているDNSサーバを確認する場合は、検索タイプに「ns」を指定します。

また、検索対象にはホスト名ではなくドメイン名を指定する必要があります。

$ dig @8.8.8.8 google.co.jp ns

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> @8.8.8.8 google.co.jp ns
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14287
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
google.co.jp.           86399   IN      NS      ns1.google.com.
google.co.jp.           86399   IN      NS      ns4.google.com.
google.co.jp.           86399   IN      NS      ns2.google.com.
google.co.jp.           86399   IN      NS      ns3.google.com.

;; Query time: 38 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Apr 25 16:17:26 JST 2017
;; MSG SIZE  rcvd: 123

soaレコードを確認

SOAレコードの確認を行う場合は、検索タイプに「soa」を指定し、検索対象にはホスト名ではなくドメイン名を指定する必要があります。

SOAレコードでは下記の情報が表示されます。

  • serial シリアル番号
  • refresh セカンダリサーバがゾーン情報更新をチェックする間隔
  • retry セカンダリサーバがゾーンrefreshに失敗した場合のリトライ間隔
  • expire セカンダリサーバがrefresh出来ない場合にゾーン情報を持ち続ける期間
  • minimum ネガティブキャッシュの期間
$ dig @8.8.8.8 google.co.jp soa

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> @8.8.8.8 google.co.jp soa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26150
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
google.co.jp.           59      IN      SOA     ns3.google.com. dns-admin.google.com. 154136759 900 900 1800 60

;; Query time: 42 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Apr 25 16:18:21 JST 2017
;; MSG SIZE  rcvd: 101

そのままだといまい見づらいので、「+multiline」オプションを使用するとより見やすく表示されます。

$ dig @8.8.8.8 google.co.jp soa +multiline

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <<>> @8.8.8.8 google.co.jp soa +multiline
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60793
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
google.co.jp.           59 IN SOA ns2.google.com. dns-admin.google.com. (
                                154384827  ; serial
                                900        ; refresh (15 minutes)
                                900        ; retry (15 minutes)
                                1800       ; expire (30 minutes)
                                60         ; minimum (1 minute)
                                )

;; Query time: 40 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Apr 27 16:51:26 JST 2017
;; MSG SIZE  rcvd: 101

txtレコードの確認

txtレコードの確認を行う場合は、検索タイプに「txt」を指定します。

$ dig @8.8.8.8 google.co.jp txt

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> @8.8.8.8 google.co.jp txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9121
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
google.co.jp.           299     IN      TXT     "v=spf1 -all"

;; Query time: 38 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Apr 25 16:19:06 JST 20

any(すべての情報)の確認

検索タイプに「any」を指定することで、すべての検索タイプを一度に確認することが出来ます。

$ dig @8.8.8.8 google.co.jp any

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> @8.8.8.8 google.co.jp any
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60204
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
google.co.jp.           299     IN      A       172.217.24.131
google.co.jp.           299     IN      AAAA    2404:6800:4004:806::2003
google.co.jp.           599     IN      MX      40 alt3.aspmx.l.google.com.
google.co.jp.           86399   IN      NS      ns3.google.com.
google.co.jp.           599     IN      MX      20 alt1.aspmx.l.google.com.
google.co.jp.           86399   IN      NS      ns4.google.com.
google.co.jp.           86399   IN      NS      ns1.google.com.
google.co.jp.           599     IN      MX      50 alt4.aspmx.l.google.com.
google.co.jp.           599     IN      MX      30 alt2.aspmx.l.google.com.
google.co.jp.           86399   IN      NS      ns2.google.com.
google.co.jp.           599     IN      MX      10 aspmx.l.google.com.
google.co.jp.           59      IN      SOA     ns3.google.com. dns-admin.google.com. 154136759 900 900 1800 60
google.co.jp.           299     IN      TXT     "v=spf1 -all"

;; Query time: 41 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Apr 25 16:17:57 JST 2017
;; MSG SIZE  rcvd: 345

 - dig