Windowsでnslookupの代わりにdigコマンドでDNSを調べる(BIND編)Tech TIPS

DNSをテストするWindows標準ツールといえばnslookupコマンドだ。しかし一般的には、より高機能なdigコマンドの利用が推奨されている。Windowsでdigコマンドを利用する方法は?

» 2014年10月20日 19時00分 公開
[島田広道デジタルアドバンテージ]
Tech TIPS
Windows Server Insider


「Tech TIPS」のインデックス

連載目次

対象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は廃止される可能性もあるとのことだ)。

 だが、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) digコマンドを含むBINDのインストールパッケージをダウンロードする(その1)
これはISCのダウンロードページをWebブラウザーで開いたところ。
  (1)下へスクロールして、これを見つける。
  (2)「BIND」をクリックすると、その下に現在配布中のBINDの各バージョン一覧が現れる。
  (3)この列が「Current-Stable」となっているバージョンを見つける。
  (4)(3)のバージョンの[Download]ボタンをクリックして次へ進む。
次へ
digコマンドを含むBINDのインストールパッケージをダウンロードする(その2) 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) digコマンドをインストールする(その1)
これはダウンロードしたインストールパッケージの内容をローカルドライブに展開したところ。
  (1)インストールパッケージの内容を解凍したフォルダー。
  (2)BINDのインストーラーである「BINDInstall.exe」を右クリックする。
  (3)これをクリックして管理者権限でインストーラーを起動する。ユーザーアカウント制御(UAC)のダイアログが表示されたら[はい]ボタンをクリックする。
次へ
digコマンドをインストールする(その2) digコマンドをインストールする(その2)
これは、起動したBINDInstall.exeの画面。
  (4)インストール先のパス。支障がなければデフォルトの「%Program Files%\ISC BIND 9」のままでよい(なお、古いバージョンのBINDでは、デフォルトで「%SystemRoot%\system32\dns」を指していることもある)。
  (5)これにチェックを入れてオンにする。デフォルトのオフのままだと、DNSサーバーソフトウェアもインストールされてしまうので要注意だ。
  (6)これらのチェックを外してオフにする。
  (7)これをクリックしてインストールを始める。
次へ
digコマンドをインストールする(その3) digコマンドをインストールする(その3)
途中でVisual C++ランタイムのインストールが求められることがある。この画面は64bit版の場合で、32bit版の場合はVisual C++ 2005ランタイムが必要になる。
  (8)これにチェックを入れてオンにする。
  (9)これをクリックしてVisual C++ランタイムをインストールする。ユーザーアカウント制御(UAC)のダイアログが表示されたら[はい]ボタンをクリックする。
次へ
digコマンドをインストールする(その4) digコマンドをインストールする(その4)
このメッセージが表示されたら、インストールは完了だ。

 これで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コマンドにパスを通す(その1) digコマンドにパスを通す(その1)
これはコントロールパネルから起動した[システム]の画面。
  (1)これをクリックして次へ進む。
次へ
digコマンドにパスを通す(その2) digコマンドにパスを通す(その2)
  (2)これをクリックして次へ進む。
次へ
digコマンドにパスを通す(その3) 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版などとほとんど共通だ。詳しい使い方は、次の記事を参照していただきたい。

 ここでは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」と実行すればよい。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。