【nslookup】の使い方,見方~権限のない回答,unknown,DNSサーバ指定方法,キャッシュについて~

スポンサーリンク
スポンサーリンク

nslookup とは?

nslookupとは、Windowsのコマンドの1つで、DNSによる名前解決を行うツールです。例えば 佐川急便のWebサイトのURLは『www.sagawa-exp.co.jp』ですが、このIPアドレスを知りたいとき(つまり正引きしたいとき=Aレコードを知りたいとき)は以下のようにします。

Windowsキー + R
⇒  "cmd" と入力し、[Enter]
⇒  "nslookup www.sagawa-exp.co.jp" と入力し、[Enter]

www.sagawa-exp.co.jp のIPアドレスが 42.124.125.51 だと分かります。ブラウザでhttp://42.124.125.51 でアクセスしても、www.sagawa-exp.co.jp と同じWebページが表示されます。

『サーバー: Unknown』とは、Address: 192.168.100.1 の逆引き(PTRレコード)を調べたけど『レコード無し』だったことを示しています。

『権限のない回答』とは?

『権限のない回答』とは"問合せをしたDNSサーバ"が自分で『www.sagawa-exp.co.jp』の情報を持っていた訳ではなく、『他のDNSサーバに聞いたらそういう回答があったよ』ということを示しています。

では権限のある回答にするためにはどうすればよいか?『www.sagawa-exp.co.jp』の情報を持っているDNSサーバはどのサーバなのでしょうか?

それを調べるにはその1つ上のドメイン『sagawa-exp.co.jp』のNSレコードを調べます。NSレコードは、そのドメインの管理している(つまり権限のある)DNSサーバを探すときに使うレコードです。NSレコードを調べるには、以下のように nslookup のあとに -type=ns というオプションを付けます。

nslookup  -type=ns  sagawa-exp.co.jp

スポンサーリンク

143.90.130.58 が『sagawa-exp.co.jp』に関するドメイン情報を持っていることが分かります。このDNSサーバに直接聞きに行くには、nslookupで[Enter]した後、『server』オプションでそのDNSサーバのIPアドレスを指定します。具体的には以下のように打ちます。

nslookup
> server 143.90.130.58
> www.sagawa-exp.co.jp

今度は『権限のない回答』とは出てきません。これは 143.90.130.58 のDNSサーバがwww.sagawa-exp.co.jp の情報を持っており、nslookup コマンドの server 指定で直接聞きに行っているからです。

なお、このようなDNSサーバに別のドメインの名前を聞こうとすると、通常は拒否されます。もしこれが拒否されないと、セキュリティ上の問題になるからです。以下は、佐川急便のDNSサーバにwww.yahoo.com を聞きに行った場合の結果です。

スポンサーリンク

nslookup の使い方

レコード指定

既に使い方の例が出ていますが、"nslookup -type=[レコードタイプ]" で知りたいレコードタイプの情報を取得できます。-typeを入れないと"Aレコード"が出てきます。

レコードタイプは[ A , MX , NS , PTR , SRV , TXT ] 等が使えます。例えば hogehoge@yahoo.com のメールアドレスをどのメールサーバへ送ればよいかを調べるときは以下で確認できます。

nslookup -type=mx yahoo.com

メールサーバがたくさんあることが確認できます。おそらくどれに送っても同じように扱われるはずです。

DNSサーバ指定

nslookup とだけ打つとオプションを指定しながら名前解決が出来ます。serverオプションではDNSサーバの指定が出来ます。また、set type=[レコードタイプ]でレコードタイプの指定も出来ます。

nslookup
> server 8.8.8.8    # google のDNSサーバを指定
> set type=ptr
> 124.108.103.103

yahoo.com の正引き(Aレコード)を調べると 124.108.103.103が返ってきますが、これの逆引き(PTRレコード)を調べると media-router-fp1.prod1.media.vip.tp2.yahoo.com というホスト名が返ってきます。このように、正引きの逆引きは必ずしも一致しません。

この記事全般を通して『何をやっているか分からない』という方は、以下のページも参考にしてみて下さい。DNSについて分かり易く解説しています。

【図解】初心者にも分かるDNSの仕組み 〜GoogleのIPアドレスの確認方法、等〜
【図解】初心者にも分かるDNSの仕組み 〜GoogleのIPアドレスの確認方法、等〜
DNSとは DNSとは、文字列をIPアドレスに変換(およびその逆変換)をするク...

nslookup のキャッシュについて

nslookup コマンドによるDNSの回答結果はPC内にキャッシュされません。つまり、nslookupコマンドを打つたびに毎回DNSサーバに聞きに行きます。

ですが、DNSサーバ側では、前述した『権限のない回答』をするDNSサーバについては基本的にキャッシュされます。例えばCentOS+bindのDNSサーバ上でキャッシュをクリアするには以下コマンドを打ちます。

rndc flush

なお、WindowsのクライアントPC側で、(nslookupではなく)ブラウザ等のURLの名前解決で使っているDNSキャッシュをクリアするにはコマンドプロンプトで以下を打ちます。

ipconfig /flushdns
スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク