digコマンドやdrillコマンドの使い方を教えてくださいDNS Tips

DNSサーバーに対して問い合わせを行い、その応答を各セクションごとに詳しく表示するdigコマンドとdrillコマンドの使い方を解説する。

» 2014年12月22日 18時00分 公開

 digコマンドやdrillコマンドは、DNSサーバーに対して問い合わせを行い、その応答を各セクションごとに詳しく表示するためのコマンドである。digコマンドはBINDの開発元であるISC(Internet Systems Consortium, Inc.)が提供しており、drillコマンドはNSD/Unboundの開発元であるNLnet Labsが提供している。

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

 digコマンドとdrillコマンドでは、出力フォーマットやコマンド引数に異なる点があるが、得られる情報はほぼ同等である。drillコマンドはdigコマンドを参考にして作られたため、それぞれのコマンドの使い方は似ている。基本的な使い方を以下に示す。

dig @server domain query-type +query-option

drill query-option domain @server query-type

リスト1 コマンド形式
指定 意味
server 利用するネームサーバーホスト名またはIPアドレス
domain 情報を知りたいドメイン名
query-type 知りたい情報のタイプ
表1 指定する内容


query-type 意味
A IPv4アドレス
NS ネームサーバー
MX メールサーバーの情報
SOA 権威の情報
ANY 知っている全ての情報
表2 query-type例

 digコマンドとdrillコマンドの出力は、それぞれ以下のようになる。バージョン情報の出力有無や、空行によるセクション区切りの有無の差があるが、基本的に同様のフォーマットとなっている。なお、下記の例では権威DNSサーバーの設定状況を直接確認しているため、非再帰検索を示す“+norec”(digコマンドの場合)や“-o rd”(drillコマンドの場合)オプションを付けていることに注意されたい。

% dig +norec @ns1.jprs.co.jpjprs.co.jp mx


; <<>> DiG 9.10.1 <<>> +norec @ns1.jprs.co.jpjprs.co.jp mx

; (2 servers found)

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21604

;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 10


;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;jprs.co.jp.                    IN      MX


;; ANSWER SECTION:

jprs.co.jp.             10800   IN      MX      10 off-mx01.tyo.jprs.co.jp.

jprs.co.jp.             10800   IN      MX      20 off-mx02.tyo.jprs.co.jp.


;; AUTHORITY SECTION:

jprs.co.jp.             86400   IN      NS      ns1.jprs.co.jp.

jprs.co.jp.             86400   IN      NS      ns3.jprs.co.jp.

jprs.co.jp.             86400   IN      NS      ns2.jprs.co.jp.


;; ADDITIONAL SECTION:

off-mx01.tyo.jprs.co.jp. 86400  IN      A       202.11.16.214

off-mx01.tyo.jprs.co.jp. 86400  IN      AAAA    2001:df0:8:18::30

off-mx02.tyo.jprs.co.jp. 86400  IN      A       202.11.16.215

off-mx02.tyo.jprs.co.jp. 86400  IN      AAAA    2001:df0:8:18::40

ns1.jprs.co.jp.         86400   IN      A       202.11.16.49

ns1.jprs.co.jp.         86400   IN      AAAA    2001:df0:8::a153

ns2.jprs.co.jp.         86400   IN      A       202.11.16.59

ns2.jprs.co.jp.         86400   IN      AAAA    2001:df0:8::a253

ns3.jprs.co.jp.         86400   IN      A       61.200.83.204


;; Query time: 5 msec

;; SERVER: 2001:df0:8::a153#53(2001:df0:8::a153)

;; WHEN: Tue Nov 18 20:20:20 JST 2014

;; MSG SIZE rcvd: 339

リスト2 digコマンドの実行結果例

% drill -o rd @ns1.jprs.co.jpjprs.co.jp mx

;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 10805

;; flags: qr aa ; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 9

;; QUESTION SECTION:

;; jprs.co.jp.  IN      MX


;; ANSWER SECTION:

jprs.co.jp.     10800   IN      MX      10 off-mx01.tyo.jprs.co.jp.

jprs.co.jp.     10800   IN      MX      20 off-mx02.tyo.jprs.co.jp.


;; AUTHORITY SECTION:

jprs.co.jp.     86400   IN      NS      ns2.jprs.co.jp.

jprs.co.jp.     86400   IN      NS      ns1.jprs.co.jp.

jprs.co.jp.     86400   IN      NS      ns3.jprs.co.jp.


;; ADDITIONAL SECTION:

off-mx01.tyo.jprs.co.jp.        86400   IN      A       202.11.16.214

off-mx01.tyo.jprs.co.jp.        86400   IN      AAAA    2001:df0:8:18::30

off-mx02.tyo.jprs.co.jp.        86400   IN      A       202.11.16.215

off-mx02.tyo.jprs.co.jp.        86400   IN      AAAA    2001:df0:8:18::40

ns1.jprs.co.jp. 86400   IN      A       202.11.16.49

ns1.jprs.co.jp. 86400   IN      AAAA    2001:df0:8::a153

ns2.jprs.co.jp. 86400   IN      A       202.11.16.59

ns2.jprs.co.jp. 86400   IN      AAAA    2001:df0:8::a253

ns3.jprs.co.jp. 86400   IN      A       61.200.83.204


;; Query time: 2 msec

;; SERVER: 202.11.16.49

;; WHEN: Tue Nov 18 20:20:20 2014

;; MSG SIZE rcvd: 328

リスト3 drillコマンドの実行結果例

再帰検索要求の有効/無効に留意すること

 digコマンド、drillコマンドを用いる際には、キャッシュDNSサーバーと権威DNSサーバーのどちらに対して調査を行うのかを常に意識する必要がある。これは、問い合わせを行う際に

  • 「キャッシュDNSサーバーの利用者の立場」でキャッシュDNSサーバーの調査を行う
  • 「キャッシュDNSサーバーの立場」で権威DNSサーバーの調査を行う

という2つのケースがあるためである。それぞれのケースでは、再帰検索要求が有効かどうかが異なる。

対象 再帰検索要求
キャッシュDNSサーバー 有効
権威DNSサーバー 無効
表3 問い合わせの際の再帰検索

 digコマンドもdrillコマンドも、どちらもデフォルトで再帰検索要求が有効になっている。権威DNSサーバーへの問い合わせの場合、再帰検索要求を無効にする場合には、“+norec”オプション(digコマンドの場合)や“-o rd”オプション(drillコマンドの場合)を次のように指定してコマンドを実行する。

dig +norec @ns1.jprs.co.jpjprs.co.jp

drill -o rd @ns1.jprs.co.jpjprs.co.jp

リスト4 再帰検索を無効にしたコマンド例

 これにより、再帰検索要求が無効となり、キャッシュDNSサーバーが権威DNSサーバーに向けて送る問い合わせと同等のものとなる。

水野 貴史(みずの たかふみ)

所属:株式会社日本レジストリサービス(JPRS) システム部

2013年にJPRS入社。レジストリシステムの開発や運用にたずさわるかたわら、DNS関連技術イベントでの発表者を務める。DNS Summer Days 2013、2014にて「初心者のためのDNS運用入門」を発表。Internet Week 2013「DNS DAY」における「JP DNS Update」発表者。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。