概要  
DNSに関する各種の調査やデバッグをする。このコマンドはUNIX/Linuxのnslookupコマンドとほぼ完全な互換性がある。

nslookupコマンドは独自にDNSクライアントの機能を持っており,クライアント・マシン上のDNS関連コンポーネントと無関係にDNSサーバーに接続する。このため,nslookupコマンドでDNSサーバーから適切な結果が返却されても,クライアント上のDNSの設定が適切とは必ずしも限らない。また,通常のWindowsマシンの名前解決では,DNSで名前解決できなかった場合にhostsファイルやNetBIOS名の名前解決機構を参照するが,nslookupコマンドではそうした別の名前解決は実行しない。


 構文  
nslookup [-type=RRタイプ] [-debug|-d2] [-timeout=タイムアウト時間] [検索対象 [DNSサーバー]]

 利用環境  
Windows 95 ×
Windows 98 ×
Windows Me ×
Windows NT 4.0 ○
Windows 2000 ○
Windows XP ○
Windows Server 2003 ○

 オプション 
(なし)対話モードに入り,プロンプトを表示する。
-type=RRタイプ検索対象のリソース・レコード(RR)のタイプを指定する。よく使う主なRRタイプは以下の通り。これら以外についてはRFC1035を参照。
A IPアドレス
CNAME エイリアス
NS DNSサーバー
MX メール・サーバー
PTR ホスト名
SOA DNSゾーンの管理情報
SRV 指定したサービスを提供するサーバー。主にActive Directoryで使用する
TXT テキスト情報。特殊な用途で使用される
-debug|-d2デバッグ情報を出力するときに使う。通常は-debugを,より詳細な情報を出力したい場合は-d2を指定する。
-timeout=タイムアウト時間DNSサーバーからの応答を待機する時間を秒単位で指定する。ちなみに,指定しない場合のデフォルト時間は5秒。
検索対象DNSの検索対象とするIPアドレスもしくは名前を指定する。
DNSサーバー接続先のDNSサーバーを指定する。指定しなかった場合は,クライアントのTCP/IP設定により接続先のDNSサーバーが決定される。
※nslookupではtype/debugといったオプションをサブコマンドと呼ぶ。これらのサブコマンドを使うことでDNS機構を柔軟にデバッグ可能となる。サブコマンドの多くはコマンド・ラインからnslookupコマンド実行時に一緒に指定することも,対話モードに入ってnslookupのプロンプトから適宜指定することも可能(一部対話モードからのみ指定可能なサブコマンドもある)。サブコマンドおよびサブコマンド固有のオプションを任意の数指定できる。

 ここで紹介したもの以外にも多数のサブコマンドがあるが,ここでは一般的なネットワーク管理者の使用を想定して紹介している。例えば,一般のネットワーク管理者が通常意識する必要がないと思われるもの(DNSサーバー自身のデバッグ用途のサブコマンドなど)については省いている。

 対話モードはオプションを付けずに「nslookup」と実行すると「>」と表示されるプロンプトからサブコマンドを実行する。例えば,DNSドメインを指定して情報を一覧表示したい場合は「ls [-t RRタイプ]DNSドメイン名」と実行する。ここでリソース・レコード(RR)のタイプを指定すれば,対象とするタイプのみを一覧表示できる。

 なお,検索対象として名前を指定する場合は,末尾に「.」を付けることを推奨する。これを省略すると,デフォルトのドメイン名が末尾に付加された名前での名前解決を最初に試行する。このため,意図しない名前で名前解決が処理される場合があるほか,結果的に意図した名前で名前解決できても,それまでに無駄な通信を発生させることになる。


 使用例1:DNSリソース・レコードを検索する(クリックで詳細表示)  
nslookup -type=RRレコード 検索対象. [DNSサーバー]

 使用例2:DNSゾーン転送の可否を確認する(クリックで詳細表示)  
nslookup
> server ゾーン転送元サーバー
> ls -t ns ドメイン名. [> 出力先ファイル名]

 使用例3:Active Directoryに対応したDNSゾーンであることを確認する(クリックで詳細表示)  
nslookup -type=srv _ldap.tcp.dc._msdcs. ドメイン名.