こんにちは、Windowsインフラエンジニア ばにゃです。
本記事では、マルチホーム構成(ネットワークアダプタ2枚以上の構成)のドメインコントローラーを構築する場合の推奨設定について解説します。
本記事に記載する設定を行わなかった場合、ドメインコントローラーとなっているサーバーの名前解決を行う際に、想定通りの名前解決が行われずに通信に失敗する可能性があります。
そこで本記事では、複数の運用環境で私が実際に行った経験を元に、本当に必要な設定、本当は必要ない設定について解説します。
前提となる環境
以下のような環境を例として記載します。この環境で私自身が実機動作確認済みの手順となります。
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2012
- Windows Server 2008 R2
- Windows Server 2008
- Windows Server 2003 R2
- Windows Server 2003
- Windows 2000 Server
また本記事では以下のような構成を例として解説します。
- Active Directory と DNS 機能をもったドメインコントローラー
- ネットワークアダプタが 2枚(NIC1 と NIC2)
- NIC1 側のネットワーク(192.168.100.0/24)で名前解決が行われる
設定方法
ドメインコントローラーに管理者権限のユーザーでサインインして操作を行います。設定の流れは以下の通りです。
- DNSで名前解決を行うネットワークの指定①
- DNSで名前解決を行うネットワークの指定②(2000 Server のみ)
- ネットワークアダプタのDNS自動登録の無効化
DNSラウンドロビンの無効化不要- DNSレコードの削除
DNSで名前解決を行うネットワークの指定①
DNSで名前解決を行うネットワークを指定します。今回の構成例では、NIC1 の 192.168.100.10 のみチェックが入った状態にします。
- DNSマネージャーを開きます。
- DNSサーバのプロパティを開き「インターフェース」タブを選択します。
- リッスン対象で「指定したIPアドレスのみ」を選択し、名前解決で使用するネットワークのみチェックが入った状態にします。
DNSで名前解決を行うネットワークの指定②(2000 Server のみ)
Windows 2000 Server の場合は以下のレジストリ設定を行います。
- レジストリエディタを開き、以下の設定を行います。
データには、名前解決に使用する側のIPアドレスを指定します。
項目 | 設定内容 |
---|---|
キー | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters |
名前 | PublishAddresses |
種類 | REG_SZ |
データ | 192.168.100.10 |
- サーバーを再起動します。
ネットワークアダプタのDNS自動登録の無効化
名前解決に使用しない側のネットワークアダプタでDNS自動登録を無効化します。今回の構成例では、NIC2 側で設定を行います。
- 名前解決に使用しない側のネットワークアダプタのプロパティを開きます。
- インターネットプロトコル バージョン4(TCP/IPv4)を選択し、プロパティを開きます。
- 「全般」タブを選択し、詳細設定ボタンをクリックします。
- 「DNS」タブを選択し、この接続のアドレスをDNSに登録する のチェックを外します。
DNSラウンドロビンの無効化
DNSレコードの削除
DNSマネージャーを開き、不要なDNSレコードが登録されている場合は削除します。
今回の例では、NIC2側(192.168.200.10)のAレコードが登録されていた場合は削除を行い、NIC2側(192.168.200.10)のAレコードのみ登録されている状態にします。
これまでに記載した設定が正しく行われていない場合、不要なDNSレコードの削除を行ってもしばらくすると自動的に再登録されます。
補足事項
名前解決の動作やDNSラウンドロビン設定についての補足事項です。
マルチホーム環境で通信に失敗する理由
前提として、ドメインコントローラーの IPアドレス に対しての通信であれば、名前解決は関係ないため問題が発生することはありません。
ドメインコントローラーのホスト名やFQDN名に対しての通信、つまり名前解決が必要になる通信が発生した場合に問題が発生する可能性があります。
本記事で解説した設定を行っていない場合、ドメインコントローラーのDNSには以下のように2つのAレコードが登録されます。(ドメインコントローラーのホスト名が Server01 とした場合)
名前 | 種類 | データ |
---|---|---|
Server01 | Host (A) | 192.168.100.10 |
Server01 | Host (A) | 192.168.200.10 |
この状態で Server01 というホスト名に対して通信が行われると、DNSのラウンドロビン機能により、192.168.100.10、192.168.200.10 のどちらかのIPアドレスが返ってくることとなります。
ルーティング設定によりどちらのIPアドレスに対しても通信可能な環境であったとしても、毎回異なる経路でドメインコントローラーと通信を行うというのはネットワーク的にあまりイケていない状態と言えます。
そこで本記事で解説した設定を行い、DNSのAレコードを以下のような登録状態にして、意図したIPアドレスと通信させることで、問題が発生しなくなります。
名前 | 種類 | データ |
---|---|---|
Server01 | Host (A) | 192.168.100.10 |
DNSラウンドロビンの無効化が不要な理由
Microsoft の公開情報 やネット上の古い記事には、DNSラウンドロビンを無効化する必要があるといった情報が散見されます。
これは上述したようにDNSに2つのAレコードが登録されている場合、DNSラウンドロビン機能が動作するということが元となっている情報だと思われますが、本記事で解説した設定を行うとDNSに登録されるドメインコントローラのホスト名とIPアドレスが 1:1 となるため、そもそもDNSラウンドロビン機能は動作しません。
そのためDNSラウンドロビン機能を無効にする必要はありません。
参考情報
Microsoft ドキュメント
Microsoft の以下サイトも参考にしてください。
参考書籍
基本的な知識となる Active Directory のインストール/削除、オブジェクトやグループポリシーの構成、もう少し踏み込んだ サイトレプリケーション、バックアップ 等についても解説されている書籍です。
初心者~中級者まで、Active Directoryについての学習にはかなりオススメです。
コメント