用語辞典・コマンド・確認ツール

nslookup

nslookupとは

nslookup(エヌエスルックアップ)は、DNSサーバーへ問い合わせ、名前解決結果を確認する対話型コマンドです。名前とレコード種類を一回のコマンド行で指定する非対話モードと、確認画面内でサーバー・種類等を切り替えながら複数回調べる対話モードがあります。

何も指定しなければOSで設定された既定の再帰リゾルバーへ問い合わせ、第二引数などでサーバーを明示すれば、そのDNSサーバーへ直接質問できます。二つのサーバーへ同じ質問を行い、キャッシュや設定の違いを比べる用途にも使えます。

nslookupはDNSへの質問と回答を観測するツールです。ブラウザが最終的に使う接続先、HTTPSの成否、すべてのOS内キャッシュをそのまま再現するものではありません。

既定または指定したリゾルバーへ、名前とレコード種類を組にして質問する一回照会、対話セッション、回答種別と失敗状態を分けて読む
検索窓を表す端末からDNS 問い合わせをサーバーへ送り、既定と明示サーバー、一回だけの照会と複数レコード種類を続ける対話照会、成功、レコードなし、ドメイン不存在、タイムアウト、拒否を図形で示すピクトグラム図解
図1問い合わせ先サーバーを変えると、キャッシュ、フィルター、分割DNS、反映時刻の違いにより回答が変わる場合があります。先に「どこへ聞いた結果か」を記録します。

一回照会と対話モード

Noninteractive一つの質問を一行で実行

名前、種類、必要ならDNSサーバーを指定し、スクリプトや一回の確認へ使います。

Interactive設定を保って続けて質問

nslookupだけで入り、サーバーや種類を変更して複数名を調べます。

DefaultサーバーOS設定のリゾルバーへ聞く

DHCPや手動設定、VPN等から選ばれた通常の問い合わせ先を使います。

Namedサーバー比較したいサーバーを明示

リゾルバーのIPアドレスを指定し、既定サーバーとの差を切り分けます。

Query種類必要なレコード種類を指定

A、AAAA、MX、TXT、NS、SOA、PTRなど、調べたい情報を一つずつ選びます。

Result状態回答と応答コードを区別

成功、該当種類なし、ドメイン不存在、サーバー失敗、拒否、タイムアウトを別に読みます。

質問は「名前」と「種類」の組

同じ名前でも、IPv4アドレスを持つAレコード、IPv6アドレスのAAAAレコード、メール配送先のMXレコードは別の質問です。Aが存在してもMXが存在するとは限りません。

Windowsの非対話モードでは、たとえばnslookup -type=AAAA example.comのように種類を指定できます。実在する自分のドメインまたは説明用に予約されたドメインを使い、他者のDNSサーバーへ大量照会しません。

問い合わせ先を必ず確認する

出力冒頭のサーバー名とアドレスは、回答を受けたDNSサーバーです。調べているWebサーバーのアドレスとは別です。家庭ルーターがDNSプロキシとして表示され、その先で事業者リゾルバーへ転送している場合もあります。

VPN接続中は組織内リゾルバー、会社内ドメインは分割DNS、セキュリティソフトウェアはローカルプロキシを使うことがあります。パブリックリゾルバーを明示して回答が得られても、OSの通常経路がそのサーバーを使うとは限りません。

non-authoritativeは「信用できない回答」ではない

再帰リゾルバーが権威サーバーから得てキャッシュした回答を返すと、nslookupは非権威回答として表示することがあります。これは回答元がゾーンの正式データを保持する権威サーバーではない、という出所の区別です。

キャッシュ回答も通常の名前解決に使われます。逆に権威を示す表示だけでDNSSEC検証済み、相手が安全、Web証明書が正しいとは言えません。権威情報とセキュリティ検証は別です。

正引きと逆引きは別レコード

名前からアドレスを調べるのが正引きです。IPアドレスを入力すると、nslookupは通常PTRによる逆引きを試みます。PTRはアドレス管理側の逆ゾーンへ置く別データで、A・AAAAから自動的に同じ名前が返る保証はありません。

PTRがなくてもそのIPアドレスへの通信はできます。AとPTRが一致しないこともあり、逆引き名だけで端末所有者やサービス本人性を決めません。

末尾のドットと検索接尾辞

末尾にドットのない短い名前は、OSやnslookupの設定により検索接尾辞を付けて照会される場合があります。組織内でserverのような短名が引けるのは、この補完によることがあります。

DNS階層上の完全な名前として比較したいときは、末尾ドットを持つFQDNを使い、検索の有無を揃えます。入力した文字列と実際の問い合わせ名前が違えば、サーバー比較の結果も不正確になります。

失敗表示を分ける

NXDOMAINはそのドメイン名自体が存在しない回答です。一方、名前は存在するが指定種類のレコードがない状態があります。タイムアウトは時間内に応答が来なかったことで、レコード不存在とは別です。

SERVFAILはサーバーが有効な回答を作れない状態、REFUSEDは方針により質問を拒否した状態です。ネットワークunreachableや接続refusedはサーバーへ届けられない、またはサービスが受け付けない可能性があります。文言は実装で異なるため、応答コードと問い合わせ先を記録します。

OSキャッシュとアプリケーションの選択を完全には再現しない

nslookupは指定DNSサーバーへ質問しますが、ブラウザーがSecure DNS、独自キャッシュ、Happy Eyeballs、CDNのサービス束縛等を使う場合、実際の接続選択と一致しないことがあります。ホストファイルの内容も通常のDNSレコードではありません。

ipconfig /flushdnsでWindowsリゾルバーキャッシュを消しても、再帰リゾルバー、ブラウザー、ルーター、権威側のデータは消えません。nslookupで得たTTLとサーバーを含めて層を分けます。

nslookupは「どのDNSサーバーへ、何という名前の、どのレコード種類を聞いたか」を明示して読むツールです。対話モードの設定、検索接尾辞、キャッシュ、応答コードを記録し、Web接続全体の結果と混同しません。

Windows nslookupの対話・非対話mode、server指定、query type、search、timeoutと各error:Microsoft Learn「nslookup」

関連用語