前回は、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、SOA、SRV など) 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
上記ではサーバーのIPv4とIPv6のアドレスが取得できました。
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サーバを構築していきたいと思います。