ネームサーバーに問い合わせを行う dig(とnslookup)

digとはdomain information groperの略で、ネームサーバーに問い合わせを行い、その応答結果を表示するコマンドです。

digとよく似た機能を提供するコマンドにnslookupがあります。その違いは、nslookupがネームサーバーからの応答を見やすいように加工して表示する(そのため、ときに意図しない結果に見える)のに対して、digはほぼそのまま表示するという点です。また、nslookupはフルサービスリゾルバ*1の挙動を前提にしている部分があり、コンテンツサーバーの挙動を知りたいときには向いていません。nslookupはBIND 4/8のコマンドで、BIND 9以降ではdigの使用が推奨されています。

# dig www.google.co.jp

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> www.google.co.jp
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54701
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;www.google.co.jp.		IN	A

;; ANSWER SECTION:
www.google.co.jp.	345600	IN	CNAME	www.google.com.
www.google.com.		604800	IN	CNAME	www.l.google.com.
www.l.google.com.	300	IN	A	72.14.203.104
www.l.google.com.	300	IN	A	72.14.203.105
www.l.google.com.	300	IN	A	72.14.203.106
www.l.google.com.	300	IN	A	72.14.203.147
www.l.google.com.	300	IN	A	72.14.203.99
www.l.google.com.	300	IN	A	72.14.203.103

;; AUTHORITY SECTION:
google.com.		172799	IN	NS	ns3.google.com.
google.com.		172799	IN	NS	ns4.google.com.
google.com.		172799	IN	NS	ns1.google.com.
google.com.		172799	IN	NS	ns2.google.com.

;; ADDITIONAL SECTION:
ns1.google.com.		345599	IN	A	216.239.32.10
ns2.google.com.		345599	IN	A	216.239.34.10
ns3.google.com.		345600	IN	A	216.239.36.10
ns4.google.com.		345599	IN	A	216.239.38.10

;; Query time: 718 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Feb 10 20:46:31 2011
;; MSG SIZE  rcvd: 314

digコマンドを使ってGoogle先生ドメイン名を問い合わせてみました。応答結果がほぼそのまま表示されています。

# nslookup www.google.co.jp
Server:		127.0.0.1
Address:	127.0.0.1#53

Non-authoritative answer:
www.google.co.jp	canonical name = www.google.com.
www.google.com	canonical name = www.l.google.com.
Name:	www.l.google.com
Address: 72.14.203.103
Name:	www.l.google.com
Address: 72.14.203.104
Name:	www.l.google.com
Address: 72.14.203.105
Name:	www.l.google.com
Address: 72.14.203.106
Name:	www.l.google.com
Address: 72.14.203.147
Name:	www.l.google.com
Address: 72.14.203.99

nslookupコマンドを使って同じドメイン名を問い合わせてみました。応答結果が加工されて、一部の情報は表示されていません。

ネットワーク関係のトラブルシューティングには、生の応答結果を確認できるdigコマンドの方が向いています。

*1:フルサービスリゾルバとコンテンツサーバーについては、こちらに詳しい説明があります。