digコマンドによるDNSサーバの挙動確認


はじめに

digコマンドを使ってDNSサーバへ問い合わせた際のメッセージ内容やコマンドの使い方をまとめます。OSはCentos7です。

digのインストール

# yum install bind-utils

フルリゾルバーへのDNS問い合わせ

# dig www.google.com IN A

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.google.com IN A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10632
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
www.google.com.     150 IN  A   216.58.197.228

;; Query time: 31 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Oct 04 19:16:47 UTC 2019
;; MSG SIZE  rcvd: 59

HEADER

status 意味
NOERROR 正常応答
SERVFAIL サーバ側での異常による名前解決失敗
NXDOMAIN リソースレコードが存在しない
REFUSED リクエストが拒否された

id:DNSのトランザクションID。問い合わせ時にランダムに生成される

flags 意味
qr 問い合わせが0, 応答が1。上記例では応答なので flags: qr となっている
rd 権威サーバへの問い合わせ(非再帰的問い合わせ)は0, フルリゾルバーへの問い合わせ(再帰的問い合わせ)は1
ra 応答した相手が名前解決処理できる(フルリゾルバーである)場合は1

セクション

セクション 意味(各セクションの有無が0,1で表される)
QUERY 問い合わせ内容(ドメイン、タイプ)のセクション
ANSWER 問い合わせ内容に対するリソースレコードのセクション
AUTHORITY 権威を持っているDNSサーバー情報のセクション
ADDITIONAL

権威サーバへのDNS問い合わせ

yahoo.co.jpを委任されているサーバ(権威サーバ)の確認
# dig yahoo.co.jp NS

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> yahoo.co.jp NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56429
;; 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  NS

;; ANSWER SECTION:
yahoo.co.jp.        899 IN  NS  ns02.yahoo.co.jp.
yahoo.co.jp.        899 IN  NS  ns01.yahoo.co.jp.
yahoo.co.jp.        899 IN  NS  ns12.yahoo.co.jp.
yahoo.co.jp.        899 IN  NS  ns11.yahoo.co.jp.

;; Query time: 20 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Oct 05 01:31:27 UTC 2019
;; MSG SIZE  rcvd: 116


# dig ns01.yahoo.co.jp A

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> ns01.yahoo.co.jp A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43327
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
ns01.yahoo.co.jp.   838 IN  A   118.151.254.133

;; Query time: 170 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Oct 05 01:31:45 UTC 2019
;; MSG SIZE  rcvd: 61
yahoo.co.jpの権威サーバの一つ118.151.254.133に対して直接、非再帰的な問い合わせ(+norec)を行う

;; flags: qr aaのようにAA(Authoritative Answer)ビットがセットされており、応答したサーバ118.151.254.133が問い合わせたドメインの管理権限を持つことがわかる。
また、yahoo.co.jpの権威サーバのNSリソースレコードとAリソースレコードが4つずつセットされている。

# dig +norec @118.151.254.133 yahoo.co.jp

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> +norec @118.151.254.133 yahoo.co.jp
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12964
;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 5

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

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

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

;; ADDITIONAL SECTION:
ns01.yahoo.co.jp.   900 IN  A   118.151.254.133
ns02.yahoo.co.jp.   900 IN  A   118.151.254.149
ns11.yahoo.co.jp.   900 IN  A   124.83.255.37
ns12.yahoo.co.jp.   900 IN  A   124.83.255.101

;; Query time: 17 msec
;; SERVER: 118.151.254.133#53(118.151.254.133)
;; WHEN: Sat Oct 05 01:33:53 UTC 2019
;; MSG SIZE  rcvd: 212

権威サーバへ再帰的問い合わせをしてみる

yahoo.co.jpドメインの権威サーバ118.151.254.133に対して、管理外のwww.google.comを再帰的(+norecを付けずに)問い合わせてみる。

以下の通り、status: REFUSEDとリクエストが拒否されて、
flags: qr rdにもraが含まれていないため、応答した相手が名前解決ができないことがわかる。

# dig  @118.151.254.133 www.google.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> @118.151.254.133 www.google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 51205
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.google.com.            IN  A

;; Query time: 19 msec
;; SERVER: 118.151.254.133#53(118.151.254.133)
;; WHEN: Sat Oct 05 01:41:48 UTC 2019
;; MSG SIZE  rcvd: 43

参考

jprs用語辞典(フルサービスリゾルバー)

DNSの勉強ノート【その3】フルサービスリゾルバとコンテンツサーバ