💻

ドメコン間のレプリケーション

2022/07/19に公開

はじめに

Active Directory Domain Serviceのサーバ(ドメインコントローラー)のレプリケーション周りについて整理。
なお前提としてシングルフォレスト、シングルドメイン、マルチサイト構成を想定してます。

レプリケーションの種類

ユーザアカウントやコンピュータアカウント、AD統合ゾーン等の情報(NTDS)のレプリケーションとグループポリシー等の情報(SYSVOL)のレプリケーションの大きく2種類にわかれている。

レプリケーションの間隔

サイト内のドメコン間のレプリケーション間隔は15秒、サイトを超えたドメコン間のレプリケーション間隔は3時間(設定変更することで15分まで縮めることは可能)が基本。ただし、アカウントのパスワード変更のようなものはPDCに対してNetlogonサービスから変更通知を即時で実施する。その後PDCがあるサイト内のドメコン間は15秒間隔でレプリケーションが行われ、サイトを超えるドメコン間は3時間間隔でレプリケーションが行われる。
パスワードの認証要求は最終的にはPDCに対して実施するので、レプリケーションがまだ行われていないサイトでも認証は可能らしい。(やったことないのでいつか試してみたい。)

レプリケーションを即時実行したいときにやること

レプリケーションをすぐに実施したいときは以下のコマンドを実行する。サイトが一つしかなかったりするとあまり活躍しないが、複数サイトで構成されている環境では本当にお世話になったコマンド。

repadmin /syncall /AeP

オプションのざっくりした意味は以下の通り
/A :すべての名前付けコンテキストをレプリケーション対象にする
/e :他サイトにあるドメコンをレプリケーション対象にする
/P :コマンドを実行するドメコンからプッシュでレプリケーションする(本オプションを消すとプルになる)

ただし、上記のコマンドではSYSVOLの内容はレプリケーションされないので要注意。SYSVOLの内容もすぐにレプリケーションしたい場合は以下コマンドを実行。

dfsrdiag SyncNow /RGName:"Domain System Volume" /Member:<レプリケーション先のドメコン> /Partner:<レプリケーション元のドメコン> /time:<xx分>

コマンド実行すると一時的に上記のtimeで指定したレプリケーション間隔になるが、すぐにレプリケーションしたいときでも、何となくサイト間レプリケーション間隔の最小値である15分を指定して使っていた。[1]

なお、ドメコンの切り替えでユーザアカウントやコンピュータアカウントはレプリケーションされているのに、AD統合ゾーンの情報だけ何故かレプリケーションに時間がかかるという事象に何度か遭遇した。上記のrepdamin叩いてもダメ。もしかしたら/Aeでプルすればよかったのかもしれないが、だいたい翌日には何事もなかったようにレプリケーションが完了していたので、深追いはしていない。。

レプリケーションがうまくいっていないときにやること

イベントログで2213が出てたらダーティシャットダウンとかしちゃった影響でSYSVOLのレプリケーションが止まっている可能性がある。Windows2012以降であれば自動回復が有効になっているので自動的に復旧してくれそうだが、Windows2008R2は無効になっている場合があるので、注意が必要。(ってWindows2008はもうさすがにないか。。)以下サイトがとても参考になる。
https://docs.microsoft.com/ja-jp/troubleshoot/windows-server/networking/dfsr-event-id-2213
なお、レプリケーションが止まっている期間が長かったりすると、上記対処をしてもイベントログに4012がでて復旧できないことがある。(60日以上レプリケーションが止まっていると該当しちゃうかも。)その場合はレプリケーション元と先でMaxOfflineTimeInDaysを一時的に長い期間にしてDFSRサービスを再起動し、DFSRDIAG POLLAD[2]を実行して、レプリケーションされることを確認できたら、MaxOfflineTimeInDaysを元に戻してあげる。
ちなみに、SYSVOLがレプリケーションされているかを確認する手取り早い方法はSYSVOL配下に任意のファイルを置いて、レプリケーションされるかを確認する。(DFSRのレポートを確認していても異常を検知できなかったことがあった。。)
その他以下サイトも参考になる。
https://docs.microsoft.com/ja-jp/troubleshoot/windows-server/networking/troubleshoot-missing-sysvol-and-netlogon-shares

ドメコン切り替えのときによくやったこと

特定サイトのドメコンをローリングアップデートとかするとサイトリンク周りでハマることがよくあった。時間が解決することもあるのだが、限られた時間内で切り替え作業をしなければならないときは、手動でパスを再生成するということをよくやっていた。
具体的には、Active Directoryサイトとサービスからサイト名→Servers→ADサーバ名→NTDS Settingsを選択し、右ペインに表示される自動生成されている接続オブジェクトを削除して、repadmin /kccとrepadmin /syncall /AePをレプリケーション元とレプリケーション先で実行するような感じ。

まとめ

レプリケーションが止まってるというのは割と遭遇してきたので、定期的な稼働チェック(dcdiagを実行して確認、イベントログの確認、SYSVOLのレプリケーション状況の確認等)をして、早めに異常に気づけるようにしたいものです。

脚注
  1. DFSR(not FRS)の場合、レプリケーションが最適化されており、SYSVOLの内容に変更があったら、即時レプリケーションされるみたいな記事もあるが、私が触った環境ではそのような動作にはなっていなかった。どちらかというとサイトリンクで定義した時間(デフォルト3時間)に近しい時間でレプリケーションがされているような印象。 ↩︎

  2. 「DFS の管理」ツールを事前に導入しておく必要あり ↩︎

Discussion