Windows TIPS
[Network]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

nslookupの基本的な使い方(イントラネット編)

解説をスキップして操作方法を読む

デジタルアドバンテージ
2003/07/19
 
対象OS
Windows 2000 Professional
Windows 2000 Server
Windows 2000 Advanced Server
Windows XP Home Edition
Windows XP Professional
Windows Server 2003
DNSサーバの動作状態を確認するにはnslookupコマンドを利用する。
nslookupの引数にホスト名やIPアドレスを指定すると、該当するDNSレコードが表示される。
nslookupの第2引数には、対象となるDNSサーバを指定することができる。
 
解説

 nslookupはDNSサービスのトラブルシューティングの場合に必ずといってよいほど使われる、非常に基本的なコマンドである。DNSサーバの設定の状態を調べたり、DNSのクライアント(一般的にはこちらの方が多いだろう)におけるDNS関連の設定を調査したりする場合に利用される。nslookupは、最初にUNIX上でDNSが開発されたときから利用されている、非常に歴史の古いコマンドである。同様のコマンドとして、UNIXやLinuxなどではdigやhostといった、より高機能なコマンドの利用が推奨されているが、Windows OS環境ではnslookup.exeしか用意されておらず、現在でも広く使われている。ここでは、非常に簡単なnslookupコマンドの使い方について解説しておく。インタラクティブ・モードやゾーン/ネーム・サーバ・レコード、DNSサーバのゾーン転送の確認などといった、より高度な使い方については今後別のTIPSで取り上げることにする。

DNSの基本

 DNSサービスの機能を簡単に説明すると、例えばwww.atmarkit.co.jpといったFQDN名と、それに対応付けられている211.4.250.170などというIPアドレスを相互に変換するサービスである。DNSサーバには、名前(ホスト名)に対するIPアドレスの定義(Aレコード)や、逆に、IPアドレスに対する名前の定義(PTRレコード)、ドメイン名に対するネーム・サーバ情報(NSレコード)、サービス名に対するサーバのポート番号などの情報(SRVレコード)など、多くのレコードが登録されている。DNSサーバは、DNSのクライアントからの要求に応じて、これらのレコードを検索し、レコード情報を返すことになっている。

 例えばDNSのクライアントが「www.atmarkit.co.jp」というホストを表す文字列をDNSサーバに渡すと、DNSサーバはこの文字列に割り当てられているIPアドレス「211.4.250.170」(Aレコード)を返してくる。逆に、「211.4.250.170」というIPアドレスを渡すと、「www.atmarkit.co.jp」という名前(PTRレコード。PTRはpointerの略)を返す。

 ユーザーがコンピュータを利用する場合、このようなDNSサーバとDNSクライアントによる名前解決処理は自動的に行われるが、DNSサーバ側の設定ミスやDNSクライアント側でのDNSサーバ指定の間違い、DNSサーバ/クライアント間での通信エラーなどにより、名前解決が正しく行えない場合がある。このようなトラブルが発生した場合に、役に立つのがnslookupコマンドである。

 nslookupコマンドは、DNSのサーバに対して直接DNS要求を送り、その結果を表示する。DNSサーバとのやり取りが直接表示されるので、DNSサーバと正しく通信ができているか、DNSクライアントからの要求に対するサーバの応答は正しいか、サーバに設定されているパラメータ(レコード情報)は正しいか、などの状態を調査することができる。Windows OSでは、DNSサーバに要求を出すクライアント側のプログラムとして「DNS Client」サービスが動作しているが、これは直接DNSサーバに問い合わせるだけでなく、サービス内部にキャッシュされた情報から検索したり、複数のDNSサーバに順に問い合わせたりするなど、いくらか高度な処理を行っている。そのため、DNSサーバに登録された最新のレコード情報と食い違っていたりする可能性がある。だがnslookupを使えば、DNSサーバに対して直接DNS要求を送信してその結果を得ることができる。またDNSサーバを指定することもできるので、DNSレコード情報を直接提供しているDNSサーバ(“権威のある(Authoritative)”DNSサーバ。プライマリDNSサーバともいう)だけでなく、セカンダリDNSサーバやキャッシュDNSサーバ、フォワードのみのDNSサーバなど、いろいろなサーバを指定して、それぞれからのDNS応答が正しいかどうかを検査することができる。


操作方法

nslookupの基本―Aレコードの検索

 一番基本的なnslookupの使い方は、引数にホスト名やFQDN名を指定してnslookupを起動することである。

C:\>nslookup  dapc01 …dapc01という名前をDNSサーバに問い合わせる(※1)
Server:  server01.d-advantage.com  …DNSサーバの名前
Address:  192.168.0.51

Name:    dapc01.d-advantage.com …問い合わせ内容(の復唱)
Address:  192.168.0.115 …結果(※2)

 ここでは単にホスト名「dapc01」のみを指定している。こうすると、現在のクライアント環境におけるデフォルト・ドメイン名(この場合は「d-advantage.com」)が末尾に補われて、DNS問い合わせが行われる。

 結果の先頭2行(※1)は、このnslookupコマンドが問い合わせの対象としているDNSサーバの名前である。デフォルトでは、TCP/IPのプロパティにおける、DNSサーバ情報から取得される(複数定義されている場合は最初のDNSサーバ)。また省略時に補われるデフォルトのドメイン名も、同じくTCP/IPのDNS Suffix Search List情報から取得される。これらの情報はipconfig /allコマンドで表示することができる。もしDNSサーバそのものが存在しなければ、「*** Can't find server name for address 192.168.0.15: No response from server」などと表示される。

 DNSサーバへの問い合わせ結果は、最後の2行に表示されている(※2)。つまり、「dapc01.d-advantage.com」のIPアドレスは「192.168.0.115」であるという結果が得られている。もし存在しない名前ならば「*** server01.d-advantage.com can't find pc99: Non-existent domain」などと表示される。

FQDN名を指定したDNS検索

 次は単純なホスト名ではなく、FQDN名(ホスト名+ドメイン名を完全に指定した形式)で検索をしてみよう。この指定方法を使うと、デフォルトとは異なるドメインやサブドメインなどの場合でも検索することができる。DNSサーバに対する検索はこのFQDN名による検索が基本である(DNSクライアントは必要に応じてドメイン名を補って検索するようになっている)。

C:\>nslookup dapc01.d-advantage.com …問い合わせ(※3)
Server:  server01.d-advantage.com
Address:  192.168.0.51

Name:    dapc01.d-advantage.com
Address:  192.168.0.115…結果(※4)

 これは「dapc01.d-advantage.com」という名前を検索して、その結果が「192.168.0.115」であったということを表している。

 これと似た検索として、さらに次のようなものもある。

C:\>nslookup dapc01.d-advantage.com. …問い合わせ(※5)
Server:  server01.d-advantage.com
Address:  192.168.0.51

Name:    dapc01.d-advantage.com
Address:  192.168.0.115…結果(※6)

 この問い合わせ(※5)の最後に「ピリオド(.)」が付いていることに注意して欲しい。結果は、※4※6も同じであるが、実は途中の経過が少し異なる。

 DNSに対する問い合わせでは、最後にピリオドが付いていると、それはFQDNであるとみなされ、自動的なドメイン名の補完は行われない。逆に、ピリオドがない場合は、自動的に現在のドメイン名が補完され、検索が行われる。そしてそれが失敗すると、次にデフォルト・ドメイン名を1つ分短くして(先頭の方から順に短くする)、次々とテストされ、最終的に結果が得られるまで実行される。

DNS要求 トライするFQDN
dapc01 1.dapc01.d-advantage.com.
dapc01.d-advanage.com 1.dapc01.d-advantage.com.d-advanage.com.
2.dapc01.d-advantage.com.
dapc01.d-advanage.com. 1.dapc01.d-advantage.com.
nslookupに対する引数と検索されるFQDNの例
最後にピリオドがない場合は、(デフォルトのnslookupの検索設定では)デフォルトのドメイン名を補って検索し、失敗すると、デフォルト・ドメイン名を短くしながら、順番にトライする。ただし(詳細は省略するが)「dapc01.d-advantage.com.com」はトライしない。

 以上の動作を実際に確認するためには、nslookupに-debugオプションを付けて実行するとよい(「nslookup -debug dapc01.d-advantage.com.」などとする)。一番上と一番下の例では、DNSサーバに対して1回しか要求を出していないが、真ん中の例では、2回DNS要求が発行されている(DNSの要求1回ごとに「Got answer:」という項目が表示される)。

 このような自動的な補完機能は、(サブ)ドメイン指定などを簡単にするために用意されている。例えばデフォルト・ドメインがsub1.sub2.d-advantage.comの場合でも、単に「server01」とすれば、「server01.d-advantage.com」を指すようにするためである。

逆引きポインタの検索

 以上は名前からIPアドレスを求める場合であったが、逆にIPアドレスから元の名前(FQDN名)を求めることもできる。これを逆引きという。といっても、実際にはDNSサーバに逆引きのレコード(PTRレコード)が登録されており、それを検索しているに過ぎない。そのため、PTRレコードが存在しない場合は、逆引きは失敗する。

 逆引きを行うためには、単に引数としてIPアドレスを指定すればよい。

C:\>nslookup 192.168.0.115 …問い合わせ(※7)
Server:  server01.d-advantage.com
Address:  192.168.0.51

Name:    dapc01.d-advantage.com …結果
Address:  192.168.0.115

 この例では、「192.168.0.115」の逆引きの結果は「dapc01.d-advantage.com」であるという結果が返されている。ただしこれはPTRレコードのデータ部分だけであり、実際のPTRレコード全体を表示するには、次のように「-type=ptr」を付けて実行する(もっとも、結果に大きな違いはないが)。

C:\>nslookup -type=ptr 192.168.0.115
Server:  server01.d-advantage.com
Address:  192.168.0.51

115.0.168.192.in-addr.arpa      name = dapc01.d-advantage.com …結果

 「115.0.168.192.in-addr.arpa」というのは、実際に定義されている逆引きレコードのFQDN名である(逆引きレコードは「0.168.192.in-addr.arpa」ドメインに定義されている)。

デフォルト以外のDNSサーバの指定

 以上の例では、すべてデフォルトのDNSサーバ(上の例ではserver01.d-advantage.com)を利用して検索を行っていた。デフォルト以外のDNSサーバを利用するには、nslookupの引数の最後(第2引数)に、DNSサーバのFQDN名(もしくはIPアドレス)を付加すればよい。複数のDNSサーバが利用できる場合は、この機能を使って、それぞれのDNSサーバが正しく動作しているか、登録されている内容に矛盾がないかどうかなど調査することができる。

C:\>nslookup dapc01.d-advantage.com server02
Server:  server02.d-advantage.com
Address:  192.168.0.52

Name:    dapc01.d-advantage.com
Address:  192.168.0.115

 この場合は、最初の例と同じなので、どちらのDNSサーバの内容も正しいということが分かる。もし異なる結果が得られたり、どちらかのDNSサーバがダウンしているようならば、サーバ側の調査が必要になるだろう。End of Article

関連記事(Windows Server Insider)
  Windows TIPS:nslookupの基本的な使い方(MXレコード編)
  Windows TIPS:nslookupでDNSのゾーン転送機能をテストする
     
この記事と関連性の高い別のWindows TIPS
DNSサービスのルート・ヒントを変更する
DNSサーバのキャッシュの内容を調査する
優先DNSサーバと代替DNSサーバの動作について
名前解決のトラブルシューティング(DNSリゾルバ・キャッシュ編)
リモート・ネットワークの名前解決をhosts/lmhostsで行う
DNSサーバでゾーンごとに異なるフォワーダを使う
分散サービス拒否(DDoS)攻撃を仕掛けるDNS ampとは?
DNSのラウンドロビン設定を確認する
Google Public DNSでWeb表示を高速化する
nslookupでDNSのゾーン転送機能をテストする
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

TechTargetジャパン

Windows Server Insider フォーラム 新着記事
  • Gmailのキーボードショートカットを素早く確認する (2014/4/23)
     マウス操作が基本とはいえ、キーボードショートカットを使いこなすことで、作業効率はグンと上がる。まずはショートカット一覧を素早く表示する方法を覚えよう
  • 第411話 連鎖反応 (2014/4/22)
     今日の授業は連鎖反応について。ある反応が次の反応を引き起こして、反応が次々と進むことです。おいっ、聞いてるかそこっ!
  • まだ知らない人のためのOneDrive入門 (2014/4/21)
     マイクロソフト提供の個人向けオンラインストレージ「OneDrive(旧SkyDrive)」。仕事で活用するうえでのメリット/デメリットは? 最新情報で全面更新
  • Win 7をUEFIインストールするためのUSBメモリの作成 (2014/4/18)
     Windows 7をUEFIモードでインストールするためのブータブルUSBメモリを作るには、不足しているファイルを手動で追加コピーする

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

キャリアアップ

- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る
- PR -

ホワイトペーパーTechTargetジャパン

ソリューションFLASH

「ITmedia マーケティング」新着記事

ITシステムやソリューションなどのBtoB購買者は何を求めているのか
ClickZ.comに掲載された記事では、Explore(探索)、Evaluate(評価)、Purchase(購買)...

富士通、オムロン草津工場にて「ものづくりビッグデータ分析」の実証実験を開始
富士通は4月22日、オムロンの草津工場において、プリント基板表面実装ラインの品質向上/...

第2回 ビジネスを継続していくために――BtoB企業に不可欠な「分析の知」
ビジネスを続けていくには、継続してお客さまを見つけることが必要。安定的な取引がある...