情シスのアウトソーシングサービス「オフィスドクター」が、nslookupコマンドの使い方をわかりやすく解説します!
nslookupとは
nslookup(エヌエスルックアップ)とは、コマンドラインのコマンドの一つです。
社内のネットワークやインターネット接続でトラブルが発生した際、原因の多くはDNS(ドメイン名とIPアドレスの対応情報)に関連しているか確認する際に活用します。
Windows、Mac、Linuxいずれの環境でも利用できるツールで、DNSの状態を確認したり、通信トラブルの原因を切り分けたりする際に役立ちます。
nslookupでできること
nslookupでは以下のようなことができます。
ドメイン名からIPアドレスを確認(正引き)
例えば、example.comがどのIPアドレスに割り当てられているかを確認できます。
IPアドレスからドメイン名を確認(逆引き)
例えば、192.0.2.1 がどのサイトに対応しているかを調査できます。
特定のDNSサーバーを指定して問い合わせ
Google DNS(8.8.8.8)などを利用した確認も可能です。
メールサーバーやドメイン管理情報の確認
MXレコード(メール受信サーバー)やNSレコード(ドメイン管理サーバー)などもチェックできます。
なぜトラブル対応に役立つのか?
「インターネットに繋がらない」や「メールが届かない」といったトラブルの多くはDNSに起因するとされており、nslookupを使用することでDNSの解決状況を確認し、問題の切り分けやサーバー移行・ドメイン設定変更時のDNS伝播状況の確認に非常に役立ちます。
使用例
メールが届かない/遅れるとき
メールが届かなかったり遅れたりする場合は、宛先あるいは送信先のDNS レコードを確認してみる必要があります。 特にDNSレコードのうち、MXレコードを確認する必要があります。 このとき、nslookupを使用すると、MXレコードを確認することができます。
社内のインターネットが不安定なとき
社内のネットワークでWebサイトにアクセスできないが、スマホのテザリングなど別のネットワークでは問題がない場合、まずは社内のDNSサーバーの応答を確認することが重要です。
WindowsのコマンドプロンプトやMac・Linuxのターミナルで「nslookup google.com」と入力すると、現在使用しているDNSサーバーで名前解決ができるかを確認できます。もし応答がなかったり「Server failed」と表示された場合は、社内DNSサーバーに問題がある可能性が高いです。逆に、正しいIPアドレスが返ってくる場合は、DNS以外の原因(ファイアウォールなど)を調査する必要があります。
次に、GoogleのパブリックDNSサーバー(8.8.8.8)を指定して「nslookup google.com 8.8.8.8」を実行し、同じ名前解決を試みます。こちらで正しく解決できる場合は、社内DNSサーバーの障害が確定します。
実際の使い方とコマンド例
基本的な使い方
nslookupコマンドは、直接コマンドと実行対話モードの2つの方法で使うことができます。
まず、直接コマンド実行では、一行ずつ以下のように入力します。
例えば、正引きであれば「nslookup google.com」、逆引きであれば「nslookup 8.8.8.8」のように入力します。
対話モードでは、コマンドプロンプトやターミナルで「nslookup」と入力すると対話モードが起動します。ここで「server」と入力すると現在使用中のDNSサーバーを確認できます。
本文では直接コマンド実行で進めます。
コマンド例
コマンドプロンプトまたはターミナルを開き、正引き「nslookup yahoo.co.jp」を入力すると、以下の結果が出ます。
逆引き「nslookup 182.22.31.252」を入力すると、以下の結果が出ます。
現在のデフォルトDNSサーバーではなく、他のDNSサーバーを活用してIPアドレスを取得してみます。
「nslookup yahoo.co.jp 1.1.1.1」を入力すると、以下の結果が出ます。ここで、1.1.1.1はCloudflareという会社が提供するパブリックDNSサーバです。
順序の違いはありますが、返却されるIP アドレスは同じであることが確認できます。
最後にDNSレコードを確認してみます。nslookupを通じてDNSレコードを確認する方法は、“-type=”を追加すればいいです。
「nslookup -type=MX yahoo.co.jp 」を入力すると以下のような結果が出ます。
MXレコードのみ確認しましたが、複数のレコード(Aレコード、AAAレコード、CNAMEなど)も同じ形式(-type=A)で確認できます。
まとめ

nslookupについて解説いたしました。
nslookupコマンドとは、DNS(Domain Name System)関連の問題を調査・診断するためのコマンドです。

