目の前に僕らの道がある

勉強会とか、技術的にはまったことのメモ

名前解決をしてみよう

1日1アウトプットを心がける

本題に入る前に自分のためにいつも忘れがちな用語を整理

名前解決するためのDNSクライアントコマンドはnslookup、host、digの3つがあります。nslookupはwindowsにも付属しているコマンドなのでなじみが深いかと思います。

nslookup

実行結果はこんな感じ。Non-authoritative answerとか言われているのはキャッシュサーバが回答を返しているからです。

masasuzu@lenny% nslookup google.com
Server:         192.168.1.31
Address:        192.168.1.31#53

Non-authoritative answer:
Name:   google.com
Address: 66.249.89.104
Name:   google.com
Address: 66.249.89.99

-typeオプションをつけるとリソースレコードのタイプを指定できます。

masasuzu@lenny% nslookup -type=mx google.com
Server:         192.168.1.31
Address:        192.168.1.31#53

Non-authoritative answer:
google.com      mail exchanger = 300 google.com.s9b1.psmtp.com.
google.com      mail exchanger = 100 google.com.s9a1.psmtp.com.
google.com      mail exchanger = 400 google.com.s9b2.psmtp.com.
google.com      mail exchanger = 200 google.com.s9a2.psmtp.com.

Authoritative answers can be found from:

host

実行結果はこんな感じ。lennlyに載っているhostコマンドはnslookupと違ってデフォルトでMXレコードも返してくれます。

masasuzu@lenny% host google.com
google.com has address 66.249.89.104
google.com has address 66.249.89.99
google.com mail is handled by 300 google.com.s9b1.psmtp.com.
google.com mail is handled by 100 google.com.s9a1.psmtp.com.
google.com mail is handled by 400 google.com.s9b2.psmtp.com.
google.com mail is handled by 200 google.com.s9a2.psmtp.com.

-tでタイプ指定、-vで冗長出力します。

masasuzu@lenny% host -t ns google.com
google.com name server ns2.google.com.
google.com name server ns1.google.com.
google.com name server ns3.google.com.
google.com name server ns4.google.com.
masasuzu@lenny% host -v google.com
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19563
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             172     IN      A       66.249.89.104
google.com.             172     IN      A       66.249.89.99

Received 60 bytes from 192.168.1.31#53 in 1 ms
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43957
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.                    IN      AAAA

Received 28 bytes from 192.168.1.31#53 in 1 ms
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28348
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.                    IN      MX

;; ANSWER SECTION:
google.com.             869     IN      MX      200 google.com.s9a2.psmtp.com.
google.com.             869     IN      MX      100 google.com.s9a1.psmtp.com.
google.com.             869     IN      MX      400 google.com.s9b2.psmtp.com.
google.com.             869     IN      MX      300 google.com.s9b1.psmtp.com.

Received 162 bytes from 192.168.1.31#53 in 1 ms

dig

出力はこんな感じ。上2コマンドに比べて、詳細な情報を取得することができます。
statusがNOERRORになっていれば正しく応答をもらっていることになります。

masasuzu@lenny% dig google.com a

; <<>> DiG 9.6-ESV-R3 <<>> google.com a
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44662
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             300     IN      A       66.249.89.104
google.com.             300     IN      A       66.249.89.99

;; Query time: 96 msec
;; SERVER: 192.168.1.31#53(192.168.1.31)
;; WHEN: Thu Feb  3 23:25:38 2011
;; MSG SIZE  rcvd: 60

上記2コマンドではオプションなしで逆引きができましたが、digでは-xオプションを使います。

masasuzu@lenny% dig -x 66.249.89.99

; <<>> DiG 9.6-ESV-R3 <<>> -x 66.249.89.99
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53842
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;99.89.249.66.in-addr.arpa.     IN      PTR

;; ANSWER SECTION:
99.89.249.66.in-addr.arpa. 86289 IN     PTR     nrt04s01-in-f99.1e100.net.

;; Query time: 6 msec
;; SERVER: 192.168.1.31#53(192.168.1.31)
;; WHEN: Thu Feb  3 23:30:35 2011
;; MSG SIZE  rcvd: 82

masasuzu@lenny% nslookup 66.249.89.99
Server:         192.168.1.31
Address:        192.168.1.31#53

Non-authoritative answer:
99.89.249.66.in-addr.arpa       name = nrt04s01-in-f99.1e100.net.

Authoritative answers can be found from:

masasuzu@lenny% host 66.249.89.99
99.89.249.66.in-addr.arpa domain name pointer nrt04s01-in-f99.1e100.net.

ちょっとしたことを調べるにはnslookup、細かい調査をするにはdigといったところでしょうか。nslookupは将来的には廃止されるようですが。