2008-07-09

WindowsにBINDを導入(named-checkzone.exeが出すエラーの対処法つき)

WindowsでDNSサーバを立てなきゃいけなくなったので、ちょっと調べてみました。

DNSサーバと言えばBINDが有名ですが、Windows バイナリ形式でも配布されているので導入は簡単です。私は BIND9.5.0-P1.zip というファイルをダウンロードしました。

●インストール

ZIPファイルを展開して出てくるインストーラを起動するだけです。
DNSサーバ(named)の他に、dig とか nslookup といったツール類も導入されます。

●設定

設定ファイルは自分で一から書く必要があります。デフォルトでは、C:\WINDOWS\system32\dns\etc\ というフォルダに named.conf というファイルを作ることになります。

●テスト

設定ファイルの内容がおかしくないかを確認するプログラム named-checkconf、named-checkzone が C:\WINDOWS\system32\dns\bin\ にインストールされているので、これらを使って named.conf やゾーンファイルをチェックします。

●named-checkzone.exe が「INSIST(0) failed」エラーを出す場合

ゾーンファイルをチェックしようとしたら、named-checkzone.exe が「INSIST(0) failed.」というエラーを出して使えませんでした…。どういうことよと Google に訊いてみたところ原因を見つけた人がいました。
実行するときに「named-checkzone.exe」だとエラーになるけれど、拡張子を付けずに「named-checkzone」とすれば良いとのこと。ファイル名が長いのでTABキーで補完入力してしまう人(私のことです)には盲点でした。TABキーだと.exeまで補完されますから。

●おまけ:Windows XP/VistaでDNSサーバを立てるのはライセンス違反?

XPや2000でDNSを立てるのは、EULAで禁止されているそうです。サーバソフトウェアを使いたかったら Windows Server を使ってね、とのこと。
上のサイトはVistaが出る前に書かれたようで、Vistaについては触れられていませんが、XP/2000と同じ扱いとなる可能性はあります。ご注意ください。