ネットワーク nslookupとdigの違い

目次

nslookupとdigの違いのまとめ

nslookupとdigは、DNS(ドメイン名とIPアドレスの対応)を確認するためのコマンドです。

どちらも名前解決の結果を確認する用途で使われますが、機能の豊富さ・出力の詳細さ・用途に違いがあります。

 

項目 nslookup dig
主な用途 簡易的な名前解決確認 詳細調査・トラブルシュート
出力 シンプル 詳細(構造化)
対話モード あり 対話モードは持たない
レコード指定 可能(やや制限あり) 柔軟に指定可能
DNSサーバ指定 可能 可能(より柔軟)
環境 Windows/Linux/macOS 主にLinux/Unix/macOS
実務での位置づけ 簡易確認用 詳細解析用

 

どちらを使うべきか

nslookup とりあえず名前解決できるか確認したい
Windows標準環境のみで調査したい
簡単な疎通確認
dig DNSの問題調査(最重要)
権威DNSやレコードの詳細確認
TTLや応答内容の検証
DNSの経路確認(trace)

nslookupとは

nslookupは、DNSサーバに問い合わせを行い、ドメイン名とIPアドレスの対応を確認するためのコマンドです。

古くから利用されており、現在でもWindows/Linux/macOSなど多くの環境で利用可能です。

特徴

  • 簡単に名前解決の結果を確認できる
  • 対話モードで連続して問い合わせが可能
  • OSごとに実装や出力形式が異なる(Windows版とBIND版で差あり)

 

    コマンド実行例

    $ nslookup www.example.com
    Server:   8.8.8.8
    Address:  8.8.8.8#53
    
    Non-authoritative answer:
    Name:    www.example.com
    Address: 93.184.216.34

    Server/Address

    →問い合わせに使用したDNSサーバ

    Non-authoritativeanswer

    →権威DNSサーバから直接取得した回答ではないことを示す
    (キャッシュ経由などを含む)

    Name/Address

    →名前解決結果(Aレコードなど)

    補足

    • 出力形式はOSや実装により異なる
    • 詳細調査にはやや不向き(最低限の確認向け)

    digとは

    dig(Domain Information Groper)は、DNSの詳細な情報を取得するためのコマンドです。

    主にLinux/Unix系で広く利用され、DNSの調査・トラブルシューティングで標準的に使われます。

     

    特徴

    • 詳細なDNS情報を取得可能
    • レコード種別(A,MX,TXT,NS,SOAなど)を指定可能
    • 問い合わせ先DNSサーバを明示できる
    • DNSの応答構造(ヘッダ・セクション)を確認可能

     

    コマンド実行例

    $ dig www.example.com
    ; <<>> DiG 9.18.12 <<>> www.example.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; QUESTION SECTION:
    ;www.example.com.          IN  A
    
    ;; ANSWER SECTION:
    www.example.com.   2605  IN  A  93.184.216.34
    
    ;; Query time: 25 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Sat Sep 13 01:20:00 JST 2025
    ;; MSG SIZE  rcvd: 65

    2行目は、使用しているdigのバージョンと、問い合わせたドメインを表示しています。

    ; <<>> DiG 9.18.12 <<>> www.example.com

     

    5行目は、先頭は;;でコメントですがDNSヘッダという実データを元にしています。

    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345

    opcode: QUERY 実行した操作の種類(opcode)
    通常の名前解決クエリ(QUERY)
    status:NOERROR 応答の状態(status)
    ・NOERROR=正常
    ・NXDOMAIN=ドメインが存在しない
    ・SERVFAIL=サーバ内部エラー
    id DNSメッセージの識別子(リクエストとレスポンスの対応付け)

     

    6行目も、先頭は;;でコメントですがDNSメッセージのヘッダ情報を、digが人間向けに要約表示した行です。

    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

    flags: qr rd ra DNSヘッダに含まれるビットフラグを表しています。
    主な意味:
    qr(QueryResponse)
    →応答(レスポンス)である(サーバが返す)
    rd(RecursionDesired)
    →クライアントが再帰的に解決してほしいと要求(クライアントの要求)
    ra(RecursionAvailable)
    →DNSサーバが再帰対応可能であること(サーバが返す)
    QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 QUERY:1
    →問い合わせ内容(質問)が1件
    例:example.comのAレコードを聞いた
    ANSWER:1
    →回答が1件
    例:IPアドレスが1つ返ってきた
    AUTHORITY:0
    →権威DNS情報なし
    (この応答には権威サーバ情報は含まれていない)
    ADDITIONAL:1
    →追加情報が1件
    例:NSレコードに対応するIPなど

     

    9行目は、;でコメントですが、何を問い合わせたかを表示しています。

    ;; QUESTION SECTION:
    ;www.example.com. IN A

    www.example.com. 問い合わせ対象(FQDN)
    IN クラス(通常はIN = Internet)
    A レコード種別(IPv4アドレス)

     

    12行目は、DNSサーバの応答内容です。

    ;; ANSWER SECTION:
    www.example.com. 2605 IN A 93.184.216.34

    www.example.com. ドメイン名
    2605 TTL(キャッシュ可能秒数、ここでは2605秒)
    IN クラス(通常はIN = Internet)
    A レコード種別(IPv4アドレス)
    93.184.216.34

     

    14-17行目も;;でコメントですが、中身は有用な情報です。

    Querytime:25msec DNS応答にかかった時間
    ・単位:ミリ秒
    ・小さいほど速い
    ポイント
    ・遅い場合→DNS遅延の可能性
    ・0msに近い→キャッシュヒットの可能性
    SERVER:8.8.8.8#53(8.8.8.8) 実際に問い合わせたDNSサーバ
    ・8.8.8.8→サーバIP
    ・#53→ポート番号(DNS標準)
    ・(8.8.8.8)→実IP(名前解決後)
    ポイント
    ・想定したDNSに問い合わせているか確認できる
    ・調査時にどのDNSを見ているかは超重要
    ;; WHEN: Sat Sep 13 01:20:00 JST 2025 問い合わせ実行時刻
    ポイント
    ・ログとの突き合わせに使う
    ・DNS変更直後の確認などで重要
    MSG SIZE rcvd: 65 受信したDNSメッセージサイズ(バイト)
    ポイント
    ・通常はあまり気にしない
    ・ただし以下で重要になる:
    ・異常に大きい → DNSSEC / TXT大量
    ・512byte超 → TCPフォールバックの可能性

     

      よく使うdigの使い方

      レコード種別を指定

      dig example.com MX
      dig example.com TXT

       

      DNSサーバを指定

      dig @8.8.8.8example.com

       

      結果だけ取得(スクリプト向け)

      dig example.com +short

       

      DNSの委任経路を確認

      dig example.com +trace

       

      権威DNSを直接確認

      dig @ns1.example.com example.com

      Windows環境での補足 PowerShellのResolve-DnsName

      WindowsではPowerShellの以下のコマンドも利用できます。

      Resolve-DnsName

      Resolve-DnsName example.com

      特徴

      • オブジェクト形式で結果を取得可能
      • スクリプト処理と相性が良い
      • nslookupの代替として利用可能な場面が多い

      関連の記事

      DNSの仕組みの概要(ドメイン・ネーム・システム)
      DNSフォワーダとは

      △上に戻る