Windowsでnslookupの代わりにdigコマンドでDNSを調べる(BIND編):Tech TIPS
DNSをテストするWindows標準ツールといえばnslookupコマンドだ。しかし一般的には、より高機能なdigコマンドの利用が推奨されている。Windowsでdigコマンドを利用する方法は?
対象OS:Windows 7/Windows 8/Windows 8.1/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2
解説
WindowsでDNSサーバーの動作状況を確認するには通常、標準装備のnslookupコマンドが利用されることが多い。その使い方は右上の関連記事を参照していただくとして、UNIXやLinuxなどでは現在nslookupは非推奨とされており、digのような高機能なコマンドの方が推奨されている(将来的にnslookupは廃止される可能性もあるとのことだ)。
- ネットワーク管理の基本Tips:digとは?(@IT Server & Storageフォーラム)
だが、Windows OSにはdigコマンドが標準装備されておらず、そのままでは使えない。そこで本稿では、Windowsでも動作するdigコマンドをインストールする手順と、digコマンドの基本的な使い方を説明する。
操作方法
本稿では、ISC(Internet Systems Consortium)のDNSサーバーソフトウェア「BIND」に付属しているdigコマンドを利用する。BINDは業界標準といえるDNSサーバーソフトウェアであり、無償で利用できる。
●Windowsにdigコマンドをダウンロードする
digコマンドをインストールするには、次のISCのダウンロードページからBINDのインストールパッケージをダウンロードする必要がある。
このページの「Downloads」−「BIND」をクリックして表示される一覧から、「STATUS」列が「Current-Stable」(現行の安定版)であるバージョンを見つけて、その[Download]ボタンをクリックする。
digコマンドを含むBINDのインストールパッケージをダウンロードする(その1)
これはISCのダウンロードページをWebブラウザーで開いたところ。
(1)下へスクロールして、これを見つける。
(2)「BIND」をクリックすると、その下に現在配布中のBINDの各バージョン一覧が現れる。
(3)この列が「Current-Stable」となっているバージョンを見つける。
(4)(3)のバージョンの[Download]ボタンをクリックして次へ進む。
digコマンドを含むBINDのインストールパッケージをダウンロードする(その2)
BIND 9.10以降のWindows版には、32bit(x86)版と64bit(x64)版が用意されている。インストール先のWindows OSに合わせて、どちらかを選択する。
(5)これをクリックすると「BIND<バージョン番号>.x64.zip」という64bit(x64)版インストールパッケージがダウンロードできる。
(6)これをクリックすると「BIND<バージョン番号>.x86.zip」という32bit(x86)版インストールパッケージがダウンロードできる。
●Windowsにdigコマンドをインストールする
インストールパッケージのZIPファイルをダウンロードしたら適当なフォルダーに展開し、その中のBINDInstall.exeを管理者として実行する。通常の権限で実行すると、デフォルトのインストールパスである「%ProgramFiles%(C:\Program Files)」にはインストールできないので注意する。
インストーラーの画面が表示されたら、DNSサーバーソフトウェアを除いてdigコマンドのようなツールのみをインストールするために、以下のように設定を変更してからインストールを進めること。
digコマンドをインストールする(その1)
これはダウンロードしたインストールパッケージの内容をローカルドライブに展開したところ。
(1)インストールパッケージの内容を解凍したフォルダー。
(2)BINDのインストーラーである「BINDInstall.exe」を右クリックする。
(3)これをクリックして管理者権限でインストーラーを起動する。ユーザーアカウント制御(UAC)のダイアログが表示されたら[はい]ボタンをクリックする。
digコマンドをインストールする(その2)
これは、起動したBINDInstall.exeの画面。
(4)インストール先のパス。支障がなければデフォルトの「%Program Files%\ISC BIND 9」のままでよい(なお、古いバージョンのBINDでは、デフォルトで「%SystemRoot%\system32\dns」を指していることもある)。
(5)これにチェックを入れてオンにする。デフォルトのオフのままだと、DNSサーバーソフトウェアもインストールされてしまうので要注意だ。
(6)これらのチェックを外してオフにする。
(7)これをクリックしてインストールを始める。
digコマンドをインストールする(その3)
途中でVisual C++ランタイムのインストールが求められることがある。この画面は64bit版の場合で、32bit版の場合はVisual C++ 2005ランタイムが必要になる。
(8)これにチェックを入れてオンにする。
(9)これをクリックしてVisual C++ランタイムをインストールする。ユーザーアカウント制御(UAC)のダイアログが表示されたら[はい]ボタンをクリックする。
これでBINDに含まれるdigコマンドのインストールは完了だ。ただ、インストールされたVisual C++ランタイムに脆弱性が残っている場合があるので、Windows Updateを実行して最新版に更新すること。
ここで、ひとまずdigコマンドを実行して動作を確認してみよう。それには、インストールしたパスのbinフォルダーにあるdig.exeを、以下のようにフルパスで指定して実行する。
C:\>"C:\Program Files\ISC BIND 9\bin\dig.exe" -v
DiG 9.10.1
正しくインストールできていれば、digコマンドのバージョンが表示されるはずだ。
●digコマンドにパスを通して簡単に実行できるようにする
このままでは、いちいちdig.exeの在りかをフルパスで指定しなければならず、面倒なので、実行パスの設定を変更する。それにはコントロールパネルの[システム]を実行して左メニューの[システムの詳細設定]をクリックし、システムのプロパティ画面が表示されたら、[環境変数]ボタンをクリックする。そしてPath環境変数の末尾にdig.exeの在りか(デフォルトでは「C:\Program Files\ISC BIND 9\bin」)を加える。
digコマンドにパスを通す(その3)
これは環境変数を設定するための画面。
(3)Path環境変数をクリックする。
(4)これをクリックすると(5)が表示される。
(5)もともと設定されていたパスの末尾に、セミコロンを挟みつつdig.exeの在りかを加える。ここでは「C:\Program Files\ISC BIND 9\bin」を追加している。あとは[OK]ボタンをクリックしていって画面を閉じていけば、設定は完了だ。
Path環境変数の設定が完了したら、コマンドプロンプトを起動し直してから、次のようにdigコマンドを実行してみよう。
C:\>dig -v
DiG 9.10.1
今度はフルパスで指定しなくても、正しく実行できるはずだ。
●Windowsでdigコマンドを使ってみる
Windows版といっても、digコマンドの使い方はLinux版などとほとんど共通だ。詳しい使い方は、次の記事を参照していただきたい。
- ネットワーク管理の基本Tips:digとは?(@IT Server & Storageフォーラム)
ここではdigコマンドの基本的な使い方を説明する。
■ホスト名(Aレコード)を検索する
nslookupと同様、「dig <ホスト名>」と実行すると、「;; ANSWER SECTION」という行のすぐ下に検索結果が出力される。
C:\>dig www.example.jp
; <<>> DiG 9.10.1 <<>> www.example.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21549
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;www.example.jp. IN A
;; ANSWER SECTION:
www.example.jp. 3600 IN A 192.168.0.11 ……検索結果
;; Query time: 13 msec ……検索にかかった時間
;; SERVER: 192.168.0.4#53(192.168.0.4) ……参照したDNSサーバー
;; WHEN: Mon Oct 20 16:56:46 JST 2014
;; MSG SIZE rcvd: 59
■逆引きポインター(PTRレコード)を検索する
「dig -x <IPアドレス>」と実行する。
■デフォルト以外のDNSサーバーを指定して検索する
「dig @<DNSサーバー名またはそのIPアドレス> <検索対象の名前>」と実行する。
■SOAやMX、NSなどのレコードを検索する
「dig <ホスト名> <レコードタイプ名>」と実行する。SOAレコードなら「dig example.jp soa」、MXレコードなら「dig example.jp mx」、NSレコードなら「dig example.jp ns」という具合だ。任意のレコードを全て検索するなら「dig example.jp any」と実行すればよい。
■この記事と関連性の高い別の記事
- nslookupの基本的な使い方(イントラネット編)(TIPS)
- nslookupの基本的な使い方(SOAレコード編)(TIPS)
- これだけは覚えておきたいWindowsのコマンドプロンプトの使い方(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.