digコマンドとnslookupコマンドの違いとは

佐藤新太(JPRS)
2003/8/2

 digコマンドもnslookupコマンドも、ネームサーバに対して問い合わせを行い、その応答結果を表示するコマンドです。

 両者の一番の違いは、digコマンドがネームサーバの応答を比較的そのまま表示するのに対し、nslookup コマンドは応答を加工して表示するという点です。
 
 また、nslookupコマンドは実際に行いたい問い合わせ以外にもサーバに対して問い合わせを行い、場合によっては意図しない結果に見えることがあります。

 nslookupコマンドはフルサービスリゾルバの挙動を前提に動作している部分があり、コンテンツサーバの挙動を知りたいときなどには向きません。このような場合はdigコマンドを使うことをお勧めします。

 では、さっそく、digコマンドとnslookupコマンドの両方を使って、簡単な実行例を示してみましょう。いずれもjprs.co.jpのMXレコードをns1.jprs.co.jpに問い合わせたものです。

リスト1:nslookup の実行結果例
% nslookup -query=mx jprs.co.jp ns1.jprs.co.jp
Server:  ns.nic.ad.jp
Address:  61.120.151.70
Aliases:  70.151.120.61.in-addr.arpa


jprs.co.jp    preference = 20, mail exchanger = mx2.jprs.co.jp
jprs.co.jp    preference = 10, mail exchanger = mx1.jprs.co.jp
jprs.co.jp    nameserver = ns2.jprs.co.jp
jprs.co.jp    nameserver = ns1.jprs.co.jp
mx1.jprs.co.jp  internet address = 61.120.151.84
mx2.jprs.co.jp  internet address = 61.120.151.85
ns1.jprs.co.jp  internet address = 61.120.151.70
ns2.jprs.co.jp  internet address = 61.120.151.71

リスト2:digコマンドの実行結果例
% dig @ns1.jprs.co.jp jprs.co.jp mx
; <<>> DiG 9.2.1 <<>> @ns1.jprs.co.jp jprs.co.jp mx
;; global options: printcmd
;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59551
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 4


;; QUESTION SECTION:
;jprs.co.jp. IN MX


;; ANSWER SECTION:
jprs.co.jp.     86400  IN   MX   20 mx2.jprs.co.jp.
jprs.co.jp.     86400  IN   MX   10 mx1.jprs.co.jp.


;; AUTHORITY SECTION:
jprs.co.jp.     86400  IN   NS   ns1.jprs.co.jp.
jprs.co.jp.     86400  IN   NS   ns2.jprs.co.jp.


;; ADDITIONAL SECTION:
mx1.jprs.co.jp.  86400  IN   A   61.120.151.84
mx2.jprs.co.jp.  86400  IN   A   61.120.151.85
ns1.jprs.co.jp.   86400  IN   A   61.120.151.70
ns2.jprs.co.jp.   86400  IN   A   61.120.151.71


;; Query time: 4 msec
;; SERVER: 61.120.151.70#53(ns1.jprs.co.jp)
;; WHEN: Sun Jul 27 23:45:00 2003
;; MSG SIZE rcvd: 168

 digコマンドの出力では応答メッセージのヘッダ情報から、各セクションの応答内容がしっかりと分かれて表示されているのが分かります。また、問い合わせにかかった時間や応答メッセージのサイズなどの情報も表示されます。

 これらの情報はドメイン名からIPアドレスを知るためだけであれば不要かもしれません。しかし、ネームサーバの挙動を知るといった視点からは非常に重要な情報となります。

 一方、nslookupコマンドは得られた情報を見やすい形に加工してあるのが分かります。しかし、表示している情報がどのセクションで返ってきたものか、サーバとして正しい挙動なのかを知るのは難しいです。

 このように、ネームサーバのトラブルシューティングなどを行う際にはdigコマンドを使うことが推奨されます。BINDとともに提供されるツールですので、使った経験のない方はぜひ試してみてください。

関連Tips digコマンドとは
ネームサーバの設定を確認するには

DNS Tips Index

「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間