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は廃止される可能性もあるとのことだ)。
だが、Windows OSにはdigコマンドが標準装備されておらず、そのままでは使えない。そこで本稿では、Windowsでも動作するdigコマンドをインストールする手順と、digコマンドの基本的な使い方を説明する。
本稿では、ISC(Internet Systems Consortium)のDNSサーバーソフトウェア「BIND」に付属しているdigコマンドを利用する。BINDは業界標準といえるDNSサーバーソフトウェアであり、無償で利用できる。
digコマンドをインストールするには、次のISCのダウンロードページからBINDのインストールパッケージをダウンロードする必要がある。
このページの「Downloads」−「BIND」をクリックして表示される一覧から、「STATUS」列が「Current-Stable」(現行の安定版)であるバージョンを見つけて、その[Download]ボタンをクリックする。
インストールパッケージのZIPファイルをダウンロードしたら適当なフォルダーに展開し、その中のBINDInstall.exeを管理者として実行する。通常の権限で実行すると、デフォルトのインストールパスである「%ProgramFiles%(C:\Program Files)」にはインストールできないので注意する。
インストーラーの画面が表示されたら、DNSサーバーソフトウェアを除いてdigコマンドのようなツールのみをインストールするために、以下のように設定を変更してからインストールを進めること。
これで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.exeの在りかをフルパスで指定しなければならず、面倒なので、実行パスの設定を変更する。それにはコントロールパネルの[システム]を実行して左メニューの[システムの詳細設定]をクリックし、システムのプロパティ画面が表示されたら、[環境変数]ボタンをクリックする。そしてPath環境変数の末尾にdig.exeの在りか(デフォルトでは「C:\Program Files\ISC BIND 9\bin」)を加える。
Path環境変数の設定が完了したら、コマンドプロンプトを起動し直してから、次のようにdigコマンドを実行してみよう。
C:\>dig -v
DiG 9.10.1
今度はフルパスで指定しなくても、正しく実行できるはずだ。
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」と実行すればよい。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.