Engineering Note

プログラミングなどの技術的なメモ

2.2 コマンドについて(nslookup)

dns-icon

前回は、UNIX系のOSで利用されているdigコマンドを用いて、DNSのレコードを問い合わせる方法について学びました。
今回は、Windowsで利用されるnslookupというコマンドについて学んでいきます。

 

nslookup

Windowsではコマンドプロンプトというコマンドラインインターフェースがあり、デフォルトでnslookupコマンドが用意されています。

以下でnslookupの簡略なhelpを表示することができます。

 

 C:\>nslookup ?
 使用法:
    nslookup [-opt ...]                  # 既定のサーバーを使用する対話モード
    nslookup [-opt ...] - サーバー       # 'サーバー' を使用する対話モード
    nslookup [-opt ...] ホスト           # 既定のサーバーを使用して
                                           'ホスト' を検索
    nslookup [-opt ...] ホスト サーバー  # 'サーバー' を使用して 'ホスト' を検索

 

上記では正直分かりにくいので、後述する対話モードに切り替えてhelpを表示すると詳細が確認できます。

 

 C:\>nslookup
 既定のサーバー:  192.168.1.1
 Address:  192.168.1.1
 
 > help
 コマンド:   (識別子は大文字で示され、[] はオプションを意味します)
 NAME            - 既定のサーバーを使用するホスト/ドメイン名に関する情報を
                   印刷します
 NAME1 NAME2     - 上記と同様ですが、NAME2 をサーバーとして使用します
 help または ?       - 一般的なコマンドに関する情報を印刷します
 set OPTION      - オプションを設定します
     all                 - オプション、現在のサーバー、およびホストを印刷します
     [no]debug           - デバッグ情報を印刷します
     [no]d2              - 完全なデバッグ情報を印刷します
     [no]defname         - 各クエリにドメイン名を付加します
     [no]recurse         - クエリへの再帰回答を要求します
     [no]search          - ドメイン検索一覧を使用します
     [no]vc              - 常に仮想回線を使用します
     domain=NAME         - 既定のドメイン名を NAME に設定します
     srchlist=N1[/N2/.../N6] - ドメインを N1 に設定し、検索一覧を N1、N2 などに
                               設定します
     root=NAME           - ルート サーバーを NAME に設定します
     retry=X             - 再試行の回数を X に設定します
     timeout=X           - 初期タイムアウト間隔を X 秒に設定します
     type=X              - クエリの種類を設定します (A、AAAA、A+AAAA、ANY、
                           CNAME、MX、NS、PTR、SOASRV など)
     querytype=X         - type と同じです
     class=X             - クエリのクラスを設定します (IN (Internet)、ANY など)
     [no]msxfr           - MS 高速ゾーン転送を使用します
     ixfrver=X           - IXFR 転送要求で使用される現在のバージョンです
 server NAME     - 現在の既定のサーバーを使用して、既定のサーバーを NAME に
                   設定します
 lserver NAME    - 初期サーバーを使用して、既定のサーバーを NAME に設定します
 root            - 現在の既定のサーバーを root に設定します
 ls [opt] DOMAIN [> FILE] - DOMAIN 内のアドレスを一覧表示します (オプションとして
                            FILE に出力します)
     -a          -  正規名とエイリアスを一覧表示します
     -d          -  すべてのレコードを一覧表示します
     -t TYPE     -  指定の RFC レコードの種類のレコードを一覧表示します
                    (A、CNAME、MX、NS、PTR など)
 view FILE           - 'ls' 出力ファイルを並べ替えて、pg で表示します
 exit            - プログラムを終了します

 

レコードを問い合わせる

まずは単純にドメイン名だけを入力するとAレコードが返ってきます。

 

 C:\> nslookup www.google.com
 サーバー:  192.168.1.1
 Address:  192.168.1.1
 
 権限のない回答:
 名前:    www.google.com
 Addresses:  2404:6800:400a:806::2004
           216.58.196.228

 

上記ではサーバーのIPv4IPv6のアドレスが取得できました。

digとは違って出力がシンプルです。

また、レコードタイプを指定する場合は以下のように入力します。

 

 C:\> nslookup -type=MX google.com
 サーバー:  192.168.1.1
 Address:  192.168.1.1
 
 権限のない回答:
 google.com      MX preference = 10, mail exchanger = aspmx.l.google.com
 google.com      MX preference = 20, mail exchanger = alt1.aspmx.l.google.com
 google.com      MX preference = 30, mail exchanger = alt2.aspmx.l.google.com
 google.com      MX preference = 50, mail exchanger = alt4.aspmx.l.google.com
 google.com      MX preference = 40, mail exchanger = alt3.aspmx.l.google.com
 
 alt3.aspmx.l.google.com internet address = 108.177.122.27
 alt1.aspmx.l.google.com AAAA IPv6 address = 2607:f8b0:4003:c09::1b
 alt2.aspmx.l.google.com internet address = 74.125.129.27
 alt2.aspmx.l.google.com AAAA IPv6 address = 2607:f8b0:4001:c15::1a

 

上記ではメールサーバの問い合わせを行っています。

前回でも説明しましたが、MXの後に記載されている数字はプリファレンス値と呼ばれるものであり、この値が小さいほど優先順位が高く設定されています。

 

逆引きを行う

逆引きを行うときは、特にオプションは付けずにそのままIPアドレスを入力します。

 

 C:\> nslookup 216.58.196.228

 

対話モードを利用する

nslookupには対話的にコマンドを入力するモードがあります。

対話モードを利用するには以下のようにコマンドを入力します。

 

 C:\> nslookup
 既定のサーバー:  192.168.1.1
 Address:  192.168.1.1
 
 > www.google.com
 サーバー:  192.168.1.1
 Address:  192.168.1.1
 
 権限のない回答:
 名前:    www.google.com
 Addresses:  2404:6800:400a:808::2004
           172.217.26.100
 
 > set type=MX
 > google.com
 サーバー:  192.168.1.1
 Address:  192.168.1.1
 
 権限のない回答:
 google.com      MX preference = 40, mail exchanger = alt3.aspmx.l.google.com
 google.com      MX preference = 30, mail exchanger = alt2.aspmx.l.google.com
 google.com      MX preference = 10, mail exchanger = aspmx.l.google.com
 google.com      MX preference = 50, mail exchanger = alt4.aspmx.l.google.com
 google.com      MX preference = 20, mail exchanger = alt1.aspmx.l.google.com
 
 alt3.aspmx.l.google.com internet address = 108.177.122.26
 alt3.aspmx.l.google.com AAAA IPv6 address = 2607:f8b0:4002:c02::1b
 alt2.aspmx.l.google.com internet address = 74.125.129.27
 > exit

 

以上がnslookupコマンドの基本的な使い方になります。

実際に手を動かして確認すると、DNSがぐっと身近に感じられるようになったと思います。

次回はいよいよDNSサーバを構築していきたいと思います。

 

参考書籍

改訂新版 BIND9によるDNSサーバ構築 (エッセンシャルソフトウェアガイドブック)