nslookup

DNSを調査する時に利用するnslookupについて説明します。

nslookupの概要

 nslookupはDNSを利用してFQDNからIPアドレスに変換出来るか等を確認出来るコマンドです。Windowsではコマンドプロンプトで実行出来ます。

 nslookup FQDNと入力する事で、IPアドレスを確認する事が出来ます。

【nslookup実行例】
コマンドプロンプト
C:\>nslookup www.aaa.bbb.ccc
サーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

権限のない回答:
名前:    www.aaa.bbb.ccc
Addresses:  192.168.1.2

 「権限のない回答」と出力される場合は基本編「DNSキャッシュ」で説明した通り、DNSキャッシュサーバーがキャッシュしている内容を回答している事を示します。

nslookupの動作

 nslookupは基本編の「IPアドレスの設定」で示したように優先DNSサーバーに問い合わせを行っています。

便利な住所録5

便利なコマンド

 nslookupコマンドは対話型も可能です。対話型とはnslookupを実行後にコマンドを入力して結果を得るやり方です。nslookupを対話型で実行する時の便利なコマンドをご紹介します。

【Windowsのnslookupでのコマンド】
コマンド 説明
set type=A Aレコードを問い合わせる時に使います。
set type=PTR PTRレコードを問い合わせる時に使います。
set type=MX MXレコードを問い合わせる時に使います。
set type=CNAME CNAMEレコードを問い合わせる時に使います。
server IPアドレス、又はFQDN 問い合わせるサーバーを指定のサーバーに切り替えます。
set debug DNSで問い合わせて得られる様々な情報を表示します。

set type=Aでの実行例

 set type=Aを実行する事でFQDNからIPアドレスを解決します。

【set type=Aでの実行例】
コマンドプロンプト
C:\>nslookup
既定のサーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

> set type=A
> www.aaa.bbb.ccc
サーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

権限のない回答:
名前:    www.aaa.bbb.ccc
Address:  192.168.1.2

 set type=Aは特に実行しなくてもIPアドレスを回答してくれます。

【set type=Aなしでの実行例】
コマンドプロンプト
C:\>nslookup
既定のサーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

> www.aaa.bbb.ccc
サーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

権限のない回答:
名前:    www.aaa.bbb.ccc
Addresses:  192.168.1.2

set type=PTRでの実行例

 set type=PTRを実行する事でIPアドレスからFQDNを解決します。

【set type=PTRでの実行例】
コマンドプロンプト
C:\>nslookup
既定のサーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

> set type=PTR
> 192.168.1.2
サーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

権限のない回答:
2.1.168.192.in-addr.arpa     name = www.aaa.bbb.ccc

 set type=PTRは実行しなくてもFQDNに解決してくれます。

【set type=PTRなしでの実行例】
コマンドプロンプト
C:\>nslookup
既定のサーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

> 192.168.1.2
サーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

名前:    www.aaa.bbb.ccc
Address:  192.168.1.2

set type=MXでの実行例

 set type=MXを実行する事でドメインのメールサーバーのFQDNを解決します。

【set type=MXでの実行例】
コマンドプロンプト
C:\>nslookup
既定のサーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

> set type=MX
> aaa.bbb.ccc
サーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

権限のない回答:
aaa.bbb.ccc     MX preference = 10, mail exchanger = mail1.aaa.bbb.ccc
aaa.bbb.ccc     MX preference = 10, mail exchanger = mail2.aaa.bbb.ccc

set type=CNAMEでの実行例

 set type=CNAMEを実行する事で指定のFQDNの本来のFQDNが分かります。

【set type=CNAMEでの実行例】
コマンドプロンプト
C:\>nslookup
既定のサーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

> set type=CNAME
> www.aaa.bbb.ccc
サーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

権限のない回答:
www.aaa.bbb.ccc canonical name = test1.aaa.bbb.ccc

serverコマンドの実行例

 server DNSサーバー名を実行する事で指定したサーバーに問い合わせを行います。

nslookup1

 実行例は以下の通りです。

【serverコマンドの実行例】
コマンドプロンプト
C:\>nslookup
既定のサーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

> server 172.16.1.1
既定のサーバー:  ns1.ddd.eee.fff
Address:  172.16.1.1

> www.ddd.eee.fff
サーバー:  ns1.ddd.eee.fff
Address:  172.16.1.1

名前:    www.ddd.eee.fff
Addresses:  172.16.1.2

set debugでの実行例

 set degubを実行すると様々な情報が得られます。よく確認する部分は赤字で示しています。

【set debugでの実行例】
コマンドプロンプト
C:\>nslookup
既定のサーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

> set debug
> www.ddd.eee.fff
サーバー:  ns1.aaa.bbb.ccc
Address:  192.168.1.1

------------
Got answer:
    HEADER:
        opcode = QUERY, id = 6, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 2,  additional = 2

    QUESTIONS:
        www.ddd.eee.fff, type = A, class = IN
    ANSWERS:
    ->  www.ddd.eee.fff
        internet address = 172.16.1.3   ★Aレコード
        ttl = 60 (1 mins)
    AUTHORITY RECORDS:
    ->  ddd.eee.fff
        nameserver = ns1.ddd.eee.fff    ★相手DNSプライマリサーバーのFQDN
        ttl = 60 (1 mins)
    ->  ddd.eee.fff
        nameserver = ns2.ddd.eee.fff    ★相手DNSセカンダリサーバーのFQDN
        ttl = 60 (1 mins)
    ADDITIONAL RECORDS:
    ->  ns1.ddd.eee.fff
        internet address = 172.168.1.1  ★プライマリサーバーのIPアドレス
        ttl = 60 (1 mins)
    ->  ns2.ddd.eee.fff
        internet address = 172.168.1.2  ★セカンダリサーバーのIPアドレス
        ttl = 60 (1 mins)

------------
権限のない回答:
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 7, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        www.ddd.eee.fff, type = AAAA, class = IN
    AUTHORITY RECORDS:
    ->  ddd.eee.fff
        ttl = 60 (1 mins)
        primary name server = ns1.ddd.eee.fff
        responsible mail addr = mail.ddd.eee.fff
        serial  = 2012082901
        refresh = 1800 (30 mins)
        retry   = 900 (15 mins)
        expire  = 86400 (1 day)
        default TTL = 900 (15 mins)

------------
名前:    www.ddd.eee.fff
Address:  172.16.1.3

サイト関連1

基本編「DNSキャッシュ
トラブル対応「DNS

キーマンズネット1

初級ネットワーク講座「13番目のMルート?“DNS”の仕組み徹底解説
  • このエントリーをはてなブックマークに追加