Windows Server でドメイン環境を構築経験がある方は聞いた事があると思いますが、ドメインコントローラをマルチホームで構成すると問題が起きやすいです。
マルチホームがそもそも何か?という話の人は以下のサイトを参考にしてください。
簡単に言うと NIC を2つ持っていて、それぞれにセグメントが別の IP アドレスを振っている環境です。
ではなぜドメインコントローラで NIC が2つ付いていると問題が起きるのでしょうか?
肝は DNS に登録されるレコード です。
マルチホーム対策を行っていない以下のドメインコントローラでは、192.168.1.1 と 10.0.1.1 の両方の A レコードを DNS Server に登録することになります。
つまりクライアントがドメインコントローラの名前解決を行うと2つのAレコードが返ってくることになります。
仮にクライアントが 192.168.1.0/24 のネットワークのみに存在していて、10.0.0.0/8 のネットワークとつながらない場合でも、2つのA レコードが返ってきてしまう場合ドメインコントローラに対するアクセスに 10.0.1.1 の IP アドレスを利用する可能性があります。
その可能性が顕現した場合、認証処理に時間がかかりログオンに異様な時間がかかってしまうというようなことが発生します。
※※※※※※※※※※※※※※※※
既定で「ネットマスクの順序を有効にする」が有効になっているので、この構成ですぐ上記問題が起きるかというと起きませんが…ドメインコントローラの認証を利用して認証基盤を自作している環境とかだと問題がより発生しやすくなると感じています。
※※※※※※※※※※※※※※※※
さて対策ですが、基本的な対策は簡単です。
上記の例の場合ですと、10.0.1.1 の A レコードを全て削除すればよいのです。
そうすればクライアントは届かないセグメントの IP アドレスにクエリを投げることはありません。
ではどうすれば 10.0.1.1 の A レコードを全て削除することができるのでしょうか?
手動で削除すれば OK なのでしょうか?
NGです。
ドメインコントローラは自身のレコードを動的に登録するので、手動で削除してもすぐに再作成されます。
なぜならドメインコントローラは自身の A レコードを以下の2つの方法で
自動的に登録するからです。
1. DNS Client Service による動的登録
2. DNS Server Service による ListenAddress の登録
なので以下2つの対策を実施する必要があります。
•10.0.1.1 の NIC の プロパティ [この接続のアドレスを DNS に登録] のチェックをオフにする
IPv4 および IPv6 の [詳細設定] – [DNS] タブ
•DNS Server のプロパティでリッスンアドレスに 192.168.1.1 のみを指定する
選択されたアドレスだけをリッスンするように DNS サーバーを制限する
上記2つの対策を取る事で、10.0.1.1 の Aレコードは作成されることはありません。
これでマルチホーム構成も怖くはありません。
Comments