Windows 10でDNSサーバーを構築する方法(BIND9)

Windows 10でDNSサーバーを構築する方法(BIND9)

Windows 10などクライアントOSしかない環境で、DNSサーバーを稼働させたい場合、サードパーティーのソフトウェアが必要になりますが、無料かつ安心して利用できるDNSサーバーソフトとなると、選択肢が限られます。

その中でおススメなのが、Linux環境では定番のDNSサーバー「BIND9」のWindows版です。

そこでここでは、オープンソースの無料DNSサーバー「BIND9」を使って、Windows 10でDNSサーバーを構築する方法を紹介します。

なお、ここでは構築が容易なDNSキャッシュサーバーを構築します。

LinuxでDNSキャッシュサーバー(unbound)を構築する方法
ここでは、RedHat互換のLinux(CentOS 7)で自分自身用のDNSキャッシュサーバーをunboundで構築する方法を紹介します。

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows 10 Pro 64bit21H2
BIND99.16.26

BIND9とは

Windows 10でDNSサーバーを構築する方法(BIND9)

BIND 9 - ISC

「BIND」は、オープンソースのDNSサーバーソフトウェアで、インターネット上で稼働している多くのDNSサーバーがBINDを利用していると言われています。

BINDは一般的にはUNIX系のプラットフォームで利用されることが多いですが、WindowsやMacOSもサポートされています。

BIND9の使い方

BIND9の入手とインストール

まずは、公式サイトのダウンロードページからWindows用のZIPファイルをダウンロードします。

執筆時点でダウンロードできる最新バージョンは「9.16.26」です。

Downloads - ISC

Windows 10でDNSサーバーを構築する方法(BIND9)

ZIPファイル「BIND9.16.26x64.zip」をダウンロードしたら、ファイルのプロパティ画面を開いて「全般」タブの下部にある「許可する」にチェック入れて「OK」をクリックします。

Windows 10でDNSサーバーを構築する方法(BIND9)

次に、ZIPファイルを展開してフォルダー内の「BINDinstall.exe」を右クリックし「管理者として実行」を選択します。

Windows 10でDNSサーバーを構築する方法(BIND9)

インストール画面が表示されたら、以下の項目を設定してから画面右上の「Install」をクリックします。

  • Target Directory:C:¥BIND9
  • Service Account Name:named(Windowsに登録されるユーザーアカウントで、BINDサービスを実行するときに利用されます。)
  • Service Account Password:十分に複雑なパスワードを設定
  • Confirm Service Account Password:確認のために再度パスワードを入力
  • Options:既定値のまま

Windows 10でDNSサーバーを構築する方法(BIND9)

インストール中に「Microsoft Visual C++ 2017 Redistributable」のセットアップが起動したときは「ライセンス条項および使用条件に同意する」にチェック入れて「インストール」をクリックします。

Windows 10でDNSサーバーを構築する方法(BIND9)

「Microsoft Visual C++ 2017 Redistributable」のインストールが完了したら「閉じる」をクリックします。

Windows 10でDNSサーバーを構築する方法(BIND9)

インストールが完了すると「BIND installation complete successfully」と表示されるので「OK」をクリックし、インストーラー画面は「Exit」で閉じます。

Windows 10でDNSサーバーを構築する方法(BIND9)

アクセス許可設定

インストール時に作成したService Account「named」は、インストールフォルダー(ここでは、C:¥BIND9)に対して、書き込み・変更権限が必要になるので、権限を付与します。

インストールフォルダー(ここでは、C:¥BIND9)のプロパティ画面を開き「セキュリティ」タブの「編集」をクリックします。

Windows 10でDNSサーバーを構築する方法(BIND9)

「アクセス許可」画面が表示されるので「追加」をクリックします。

Windows 10でDNSサーバーを構築する方法(BIND9)

「ユーザーまたはグループの選択」画面が表示されるので「選択するオブジェクト名を入力してください」欄に「named」と入力して「名前の確認」をクリックします。

Windows 10でDNSサーバーを構築する方法(BIND9)

入力した名前がオブジェクト名として表示されたら「OK」をクリックします。

Windows 10でDNSサーバーを構築する方法(BIND9)

「アクセス許可」画面に戻ると「グループまたはユーザー名」の一覧に「named」が追加されているので、クリックして選択した状態で「アクセス許可」から「変更」の許可にチェック入れて「OK」をクリックします。

Windows 10でDNSサーバーを構築する方法(BIND9)

プロパティ画面に戻るので「OK」をクリックします。

Windows 10でDNSサーバーを構築する方法(BIND9)

BIND9の設定

BIND9の設定は、インストールフォルダーの「etc」フォルダー内に「named.conf」 というテキストファイルを用意して、このファイルに記述します。

ここでは、DNSキャッシュサーバーとして稼働させるための必要最低限の設定として、次の内容を記述します。

options {
listen-on {any;};
listen-on-v6 {any;};

directory "C:\BIND9";
empty-zones-enable no;

recursion yes;
allow-query {any;};
allow-recursion {any;};
allow-query-cache {any;};
forwarders {192.168.10.254;}; #ここには転送先のDNSサーバーアドレスを記述します。

dnssec-validation no;
};

Windows 10でDNSサーバーを構築する方法(BIND9)

設定ファイルを作成したら、設定ファイルに文法などの誤りがないかを確認するために、コマンドプロンプトを起動して以下のコマンドを順に実行します。

C:\> cd c:\BIND9\bin
C:\BIND9\bin> named-checkconf.exe

コマンド実行後、以下の画面のように何も表示されなければOKです。

Windows 10でDNSサーバーを構築する方法(BIND9)

なお、本格的にDNSサーバーとして稼働させる場合は、セキュリティやロギングといった点も考慮して設定ファイルを記述する必要があります。

named.confファイルの記述方法は、他のプラットフォームのBINDとほとんど同じなので、記述方法をインターネット上で調べたいときは、オンラインマニュアルだけでなく、他のプラットフォーム向けの情報も参考になるでしょう。

BIND9の開始

設定が完了したら、スタートメニューのプログラム一覧から「Windows管理ツール」>「サービス」を起動して、サービス一覧から「ISC BIND」サービスを開始します。

Windows 10でDNSサーバーを構築する方法(BIND9)

なお、Windows版のBINDでは、ログがアプリケーションイベントログとしても記録されているので、サービスを起動したら、イベントビューアーでBIND関連のエラーが発生いていないか確認しましょう。

Windows 10でDNSサーバーを構築する方法(BIND9)

ファイアウォールの設定

つぎに、スタートメニューのプログラム一覧から「Windows管理ツール」>「セキュリティが強化された Windows Defender ファイアウォール」を起動し、以下の内容で「受信の規則」を追加します。

  • 規則の種類:プログラム
  • このプログラム:C:¥BIND9\bin\named.exe
  • 操作:接続を許可する
  • プロファイル:既定値(すべてにチェックが入った状態)
  • 名前:任意の管理しやすい名前(例:BIND9)

Windows 10でDNSサーバーを構築する方法(BIND9)

動作確認

BINDの動作確認としては、他のマシンから名前解決を実行して、正常な応答が返ってくるかを確認します。

たとえば、DNSサーバーを構築したマシンのIPアドレスが「192.168.10.217」の場合、他のWindowsマシンで、コマンドプロンプトから以下のコマンドを実行します。

C:\> nslookup www.google.co.jp 192.168.10.217

コマンド実行後、以下の画面のように応答が返ってくればOKです。

Windows 10でDNSサーバーを構築する方法(BIND9)

あとがき

BINDは、インターネットに公開されているような本格的なDNSサーバーでも利用できるため、しっかりと設定しようとすると、それなりに手間がかかりますが、ここで紹介したように簡易的にDNSサーバーを立てたいときにも、必要最小限のシンプルな設定で比較的短時間で構築することができますよ。