dig コマンドの見方

dig(domain information groper) コマンドは DNS メッセージをほとんどそのまま出力する為、DNS のトラブルシューティングでは必須のツールです。DNS メッセージは基本的に問い合わせと応答に同じフォーマットが使われる為、dig の出力結果を正確に判断する能力があれば DNS における問題解決能力は飛躍的に向上します。

なお、dig の基本的な構文は以下のとおりです。

dig [オプション] [@サーバ] ドメイン名 [タイプ] [クラス]
[ ] で囲まれた引数は省略可能です。[@サーバ]を省略した場合は OS 設定のフルリゾルバが、[タイプ]を省略した場合は A が、[クラス]を省略した場合は IN が指定されます。

dig コマンドの各フィールドの意味

まず、ローカルに擬似的なインターネット名前空間を用意し、「tech.yamashiro.blog.」に対して dig した結果が以下です。

[root@localhost ~]# dig tech.yamashiro.blog.

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> tech.yamashiro.blog.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43114
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;tech.yamashiro.blog.           IN      A

;; ANSWER SECTION:
tech.yamashiro.blog.    3600    IN      A       192.168.0.200

;; AUTHORITY SECTION:
yamashiro.blog.         3600    IN      NS      ns1.xserver.jp.

;; ADDITIONAL SECTION:
ns1.xserver.jp.         3600    IN      A       192.168.0.100

;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: 土  7月 11 17:52:53 JST 2020
;; MSG SIZE  rcvd: 108

「QUESTION」「ANSWER」「AUTHORITY」「ADDITIONAL」については、説明不要だと思いますので省略します。注目すべきは「HEADER SECTION」です。

HEADER SECTION

HEADER SECTION の各フィールドの意味は以下のとおりです。

opcode

問い合わせの種類を指定。「QUERY」「NOTIFY」「UPDATE」が入る。

status

トラブルシューティング時に最も役に立つフィールドです。以下の意味を持ちます。

NOERROR通常応答
SERVFAILサーバ側の異常で名前解決に失敗した
NXDOMAINその名前とその下の階層にはいずれのリソースレコードも存在しない
REFUSEDアクセス制限や管理ポリシーなどによりリクエストを拒否した

id

DNS のトランザクション ID。問い合わせ時にランダムに生成し、応答パケットにコピーする。

flags

それぞれ以下の意味を持つ。

qr応答であることを示す
aa管理者権限を持つ応答であることを示す
tc応答が切り詰められたことを示す
rddig コマンドが送った問い合わせが再帰問い合わせであったことを示す
ra応答した相手がフルリゾルバであることを示す

status フィールドの意味だけでも憶えておくと役に立ちます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)