Active Directoryの複製ロジック~マルチマスタ、ディレクトリ複製、Tombstone~
この記事の内容
- Active Directoryはマルチマスタ構成であり、どのドメインコントローラーからでも書き込みができます
- 同一サイト内のドメインコントローラー間では、オブジェクト作成後ほぼ即座に複製が行われます
- サイトをまたぐ複製はサイトリンクの設定(デフォルト60分間隔)に依存します
- 「今すぐレプリケート」操作を使うことで、手動で即時複製を実行できます
- 削除済みオブジェクトの保持期間(Tombstone Lifetime)は複製の上限日数に深く関わります
検証環境の構成
今回の検証では、以下の2台のドメインコントローラーを使用しています。
- DC01:
ad.localドメイン - DC02:
ad.localドメイン(同一ドメイン)
「Active Directoryユーザーとコンピューター」ツールを両方のDCに接続した状態で、複製の動作を確認していきます。
なお、ツール上でどのDCに接続しているかは、メニューの「ドメインコントローラーの変更」から明示的に切り替えられます。DC01で起動したからといって自動的にDC01を参照しているとは限らないため、必ず接続先を確認するクセをつけておくことが重要です。
マルチマスタとは
Active Directoryはマルチマスタ(Multi-Master)方式を採用しています。これは、どのドメインコントローラーに対しても書き込み操作ができるという特徴です。
実際に検証してみると、DC01でユーザー「テスト1」を作成すると、しばらくしてDC02側にも同じオブジェクトが現れます。逆に、DC02でユーザー「テスト2」を作成した場合も、DC01側に複製されてきます。どちらのDCで作成しても、相互に複製されることが確認できます。
同一サイト内の複製
DC01とDC02が同じサイト(Default-First-Site-Name)に属している場合、オブジェクトを作成するとほぼ即座に複製が完了します。
repadmin コマンドで確認すると、作成直後の数秒〜1分以内に複製が成功していることがわかります。
repadmin /showrepl
同一サイトは直接の複製関係が確立されているため、このような高速な複製が実現します。
サイトをまたぐ複製
DC02を別のサイト(例:TestSite1)に移動すると、複製の動作が大きく変わります。
異なるサイト間の複製は、サイトリンクの設定に依存します。デフォルトのサイトリンク「DEFAULTIPSITELINK」では、複製間隔は 60分に1回 に設定されています。
この状態でDC01にオブジェクトを作成しても、DC02にはすぐには複製されません。前回の複製から60分が経過するまで、DC02側には新しいオブジェクトが現れません。逆方向(DC02→DC01)も同様です。
サイトリンクの複製間隔は、最短15分から最大10080分(約1週間)まで設定可能です。環境の要件に応じて調整できます。
手動で今すぐ複製する
サイトをまたいでいる場合でも、今すぐ複製したい場面があります。そのような場合は、「Active Directoryサイトとサービス」から手動での即時複製が可能です。
手順
- 「Active Directoryサイトとサービス」を開く
- 対象のサイト → NTDS Settings を展開する
- 複製接続オブジェクトを右クリックし、「今すぐレプリケート」を選択する
この操作は、対象のドメインコントローラーが「相手のDCから情報を引っ張ってくる」命令になります。
例えば、DC01の Default-First-Site-Name にある NTDS Settings で「今すぐレプリケート」を実行すると、DC01がDC02の情報を取得します。DC02側は引っ張る操作をしていないため、DC01の情報はまだ反映されていません。DC02にも反映させるには、DC02側(TestSite1)のNTDS Settingsでも「今すぐレプリケート」を実行する必要があります。
Tombstone(廃棄標識)とは
オブジェクトを削除すると、その情報も他のドメインコントローラーへ複製によって伝播します。削除されたオブジェクトは「Tombstone(廃棄標識)」として一定期間保持されます。
Tombstoneの保持期間は、フォレストの Configuration パーティション 内の属性として管理されています。
確認方法
ADSIEdit から以下のパスを参照してください。
この中の tombstoneLifetime 属性に保持日数が設定されており、デフォルト値は 180(日) です。
削除情報の複製を確認する
削除済みオブジェクトは、以下のPowerShellコマンドで確認できます。
Get-ADObject -Filter {isDeleted -eq $true} -IncludeDeletedObjects
このコマンドを実行すると、削除済みとしてマークされたオブジェクトの情報が表示されます。これが他のDCに複製されることで、受け取ったDC側でも該当オブジェクトが削除される仕組みです。
Tombstone Lifetimeを超えた場合のリスク
Tombstone Lifetimeは、単なるゴミ箱の保持期間ではなく、複製の有効期限としての意味も持っています。
あるドメインコントローラーが Tombstone Lifetime(デフォルト180日)を超える期間、複製ができていなかった場合、深刻な問題が発生します。
- 他のDCでは削除済みのオブジェクトが、複製不全のDCには残ったまま
- 削除済みを示す Tombstone 情報は既に消去されてしまっている
- この状態でそのDCから複製が再開されると、削除されたはずのオブジェクトが復活するなど、ディレクトリが矛盾した状態になる
このような状態になると、そのドメインコントローラーは強制的に降格・再構築しなければならないケースがあります。
複製の監視が不可欠
複製エラーは、放置されがちなトラブルの代表例です。管理者が気づかないうちにエラーが継続し、180日を超えてしまうというケースは実際の現場でもよく見られます。
repadmin で定期的に複製の成功状態を確認することを強く推奨します。
repadmin /showrepl
repadmin /replsummary
まとめ
Active Directoryの複製ロジックについて、以下のポイントを確認しました。
- マルチマスタ:どのドメインコントローラーからでも書き込み可能で、変更内容は複製によって全DCに伝播する
- 同一サイト内の複製:ほぼ即時に実行される
- サイト間の複製:サイトリンクの間隔設定(デフォルト60分)に依存する
- 今すぐレプリケート:手動で即時複製を実行できる(相手からの「引っ張り」操作)
- Tombstone Lifetime:削除済みオブジェクトの保持期間(デフォルト180日)であり、これを超えた複製不全はDCの再構築を招く
複製の仕組みを正しく理解し、repadmin などを使った定期的な監視を実施することが、Active Directory環境の健全な運用には不可欠です。