🎼

試験目的等で Active Directory を NW 分断することはできません

1 min read

はじめに

「試験用に Active Directory を現行サーバから同期させて持って行き、ネットワーク的に繋がっていない別環境で立てよう」ということを考えている人たちに時々お会いします。

このあたりの発想は、Active Directory = DNS サーバ + LDAP サーバ + ファイルサーバ (+ Kerberos) と捉えている人に多い気がします。たしかに、「LDAP サーバだから、LDAP Database を同期させて別の場所に持って行けば、それ単独でも大丈夫なんでしょ?」という気持ちも分からなくもないです。

本記事では、このやり方はまったくもってオススメできません、ということを書いておこうと思います。

なぜダメなのか?

主な理由としては下記のとおりです。他にもあるかもしれませんが、ひとまず。

  1. 特定のドメインコントローラしか持っていない役割がある
  2. AD, DNS は全てのドメインコントローラの情報を持っている
  3. 長時間同期しないと問題が発生する

順番に少し説明していきます。

1. 特定のドメインコントローラしか持っていない役割がある

ドメインコントローラの中には、FSMO と呼ばれる役割を持つドメインコントローラが存在します。この FSMO は、役割ごとにドメインまたはフォレストに一台しか存在することはできません。

参考 : Windows での Active Directory 柔軟な単一マスター操作 (FSMO) の役割

別環境にいるドメインコントローラは、この FSMO のドメインコントローラと通信が出来なくなってしまうため、別環境で AD が上手く動作しなくなる状況になってしまうのです。

一番わかりやすいのは PDC エミュレータで、アカウントのパスワードの変更などをつかさどっています。この役割を持つドメインコントローラと通信ができないと、こういった機能が利用できなくなり正常運用することができなくなります。

2. AD, DNS は全てのドメインコントローラの情報を持っている

AD は、LDAP Database の中に全てのドメインコントローラの情報を持っています。また、多くのケースで一緒に利用される DNS サーバ (統合 DNS ゾーン) の中にも、それらのドメインコントローラの DNS レコードが含まれています。

このため、クライアントから DNS で名前解決した際、別環境のドメインコントローラが名前解決されてしまうことで通信ができないといった状況になり得ることになります。本番環境でも認証遅延や障害が出てしまうかもしれませんね。。

3. 長時間同期しないと問題が発生する

ドメインコントローラは、グループポリシーの機能を提供するためにファイルサーバの機能も持っており、DFS を利用してドメインコントローラ間で相互にファイル同期を行っています。

このあたりも別環境と同期ができない状況になる他、長時間 (既定では60日間) 同期ができていないとレプリケーションそのものを停止し、イベントログにエラーが記録されます。

参考 : How to troubleshoot missing SYSVOL and Netlogon shares

上記の情報にごちゃごちゃした記載があるように、この状態に陥ってしまうと整合性を合わせるのにかなり苦労することになります。

最後に

ということで、タイトルのことについての理由をあげてみました。

もし、周りで無邪気にそういう検討をしている人を見つけたら、教えてあげてみてください。