Windowsのnslookupコマンド入門|DNSと名前解決の問題を調べる方法

前回は、pingコマンドを使ってネットワークの接続状態を確認する方法を紹介しました。

調査をしていると、「IPアドレスにはpingが通るのに、ドメイン名では通らない」ということがあります。

このようなときに役立つのが、nslookup(エヌエスルックアップ)コマンドです。

この記事では、Windowsでnslookupを使い、ドメイン名やDNSの問題を調べる基本的な方法を紹介します。

nslookupコマンドとは

nslookupは、DNSサーバーに問い合わせて、ドメイン名に対応するIPアドレスなどを調べるコマンドです。

DNSは、google.comのような人間が覚えやすいドメイン名を、コンピューターが通信に利用するIPアドレスへ変換する仕組みです。

電話帳で名前から電話番号を調べるような仕組みと考えると、分かりやすいでしょう。

nslookupを実行する方法

Windowsでは、コマンドプロンプトまたはPowerShellから実行できます。

  1. スタートボタンをクリックします。
  2. 検索欄に「cmd」と入力します。
  3. 「コマンドプロンプト」を開きます。
  4. nslookupコマンドを入力してEnterキーを押します。

管理者として起動する必要はありません。

ドメイン名からIPアドレスを調べる

基本的な使い方は、nslookupの後ろに調べたいドメイン名を入力するだけです。

nslookup google.com

実行すると、次のような情報が表示されます。

サーバー:  example.router
Address:  192.168.1.1

権限のない回答:
名前:    google.com
Addresses:  2404:6800:4004:xxx::200e
          142.250.xxx.xxx

「サーバー」と「Address」の部分には、問い合わせに使用したDNSサーバーの情報が表示されます。

「名前」と「Addresses」の部分には、調べたドメイン名と対応するIPアドレスが表示されます。

IPv4とIPv6の両方が登録されている場合は、複数のIPアドレスが表示されることがあります。

「権限のない回答」と表示されても問題ない

nslookupの結果には、「権限のない回答」または「Non-authoritative answer」と表示されることがあります。

これはエラーではありません。

そのドメインを直接管理しているDNSサーバーではなく、契約しているプロバイダーやルーターなどのDNSサーバーから回答を受け取ったことを表しています。

一般的なnslookupの利用では、表示されても問題ありません。

別のDNSサーバーを指定する

nslookupでは、問い合わせ先のDNSサーバーを指定できます。

たとえば、Google Public DNSを使って調べる場合は、次のように実行します。

nslookup google.com 8.8.8.8

通常使用しているDNSサーバーでは検索できないのに、8.8.8.8を指定すると検索できる場合は、普段使用しているDNSサーバーやルーターのDNS設定に問題がある可能性があります。

CloudflareのパブリックDNSを使って確認することもできます。

nslookup google.com 1.1.1.1

複数のDNSサーバーで結果を比較すると、DNSの問題を切り分けやすくなります。

IPアドレスからホスト名を調べる

nslookupにIPアドレスを指定すると、そのIPアドレスに登録されているホスト名を逆引きできます。

nslookup 8.8.8.8

逆引き用の情報が登録されていれば、対応するホスト名が表示されます。

ただし、すべてのIPアドレスに逆引き情報が登録されているわけではありません。結果が表示されなくても、必ずしも異常とは限りません。

メールサーバーを調べる

nslookupでは、IPアドレス以外のDNS情報も確認できます。

たとえば、「-type=mx」を付けると、そのドメインで使用しているメールサーバーを調べられます。

nslookup -type=mx google.com

MXは「Mail Exchange」の略で、メールの配送先を表すDNSレコードです。

メールが届かない原因を調査するときや、ドメインのメール設定を確認するときに利用されます。

名前解決の問題を切り分ける

前回紹介したpingと組み合わせると、次のように問題を切り分けられます。

ping 8.8.8.8
ping google.com
nslookup google.com
確認結果 考えられる状態
8.8.8.8にも接続できない インターネット接続自体に問題がある可能性
8.8.8.8には接続できるが、google.comには接続できない DNSによる名前解決に問題がある可能性
通常のnslookupだけ失敗する 普段利用しているDNSサーバーに問題がある可能性
8.8.8.8を指定すると検索できる ルーターやプロバイダーのDNS設定に問題がある可能性

ただし、サーバーやネットワーク機器がpingへの応答を拒否している場合もあります。pingの結果だけで判断せず、nslookupの結果と合わせて確認することが大切です。

まとめ

nslookupは、ドメイン名とIPアドレスの関係や、DNSによる名前解決の状態を確認できるコマンドです。

基本的な使い方は、次の2つです。

nslookup google.com
nslookup google.com 8.8.8.8

通常のDNSサーバーと別のDNSサーバーで結果を比較すると、問題のある場所を切り分けやすくなります。

「インターネットには接続できているのに、Webサイトをドメイン名で開けない」という場合は、nslookupを使ってDNSの状態を確認してみましょう。

次回は、共有フォルダーの接続や切断に使える「net useコマンド」を紹介します。

参考資料

Microsoft Learn「nslookup」

タイトルとURLをコピーしました