はじめに。
ADはマルチマスタなので、各ドメインコントローラが互いに双方向にデータのレプリケーションを行う。いま面倒を見ているシステムにて、「片方向は問題なくレプリケーションできるが、反対方向のレプリケーションがある日突然エラーになる」という現象が起きている。これまで何度もこの障害に見舞われており、正直見飽きたぐらい。
どんなエラー?
レプリケーション問題が起きているドメインコントローラを仮にDC1, DC2とする。起きた現象は、DC1→DC2のレプリケーションは問題ないが、DC2→DC1のレプリケーションがエラーになるというもの。
Figure.1 片方向だけレプリケーションエラー |
YYYY-MM-DD HH:MI:SS の最後の試行は、失敗しました。結果は 1396 (0x574):
ログオン エラー: 対象のアカウント名は間違っています。
とか
ログオン エラー: 対象のアカウント名は間違っています。
******* 警告: エラーが発生したため、KCC はこのレプリカ リンクを追加できませんでした。
とかのエラーメッセージが表示される。
後者は、日本語でググっても全く情報が出てこないので、レアケースなのかもしれない(英語でKCC could not add this REPLICA LINK due to error.でググると、そこそこ情報が出てくる)。
解消手順
※前提:接続オブジェクト(レプリカリンク)は、知識整合性チェッカー(Knowledge Consistency Checker, KCC)で自動作成することとする。※この例では、ドメイン名をhoge.comとする。
1.
入力方向のレプリケーションがエラーとなっているドメインコントローラ(DC1)で、コマンドプロンプトにて
net stop kdcを実行し、Kerberos Key Distribution Centerサービスを停止する。
2.
"Active Directory サイトとサービス"を開く。「ドメインコントローラの変更」でDC1を選択する。
DC1のNTDS Settingsを開き、DC2の接続オブジェクトを削除する。
Figure.2 接続オブジェクトを削除 |
3.
DC1からDC2に2.の結果をレプリケーションする。
任意のDCでコマンドプロンプトを起動し、下記2行のコマンドを実行。
repadmin /replicate dc2 dc1 dc=hoge,dc=com repadmin /replicate dc2 dc1 cn=configuration,dc=hoge,dc=com
他にもドメインコントローラがある場合、全てのドメインコントローラに対してレプリケーションを行うことが望ましい。
4.
DC1でコマンドプロンプトを管理者として起動し、
repadmin /kccを実行する。これにより、KCCが新しい接続オブジェクトを作成してくれる。
Figure.3 接続オブジェクトが再度自動生成された |
DC1からDC2に2.の結果をレプリケーションする。
任意のDCでコマンドプロンプトを起動し、下記2行のコマンドを実行。
repadmin /replicate dc2 dc1 dc=hoge,dc=com repadmin /replicate dc2 dc1 cn=configuration,dc=hoge,dc=com他にもドメインコントローラがある場合、全てのドメインコントローラに対してレプリケーションを行うことが望ましい。
6.
ここまでの手順で多分直ってるので、DC2→DC1のレプリケーションを試行。
repadmin /replicate dc1 dc2 dc=hoge,dc=com処理に成功すればOK。
失敗したら、2.~5.をもう一度。
7.
1.で停止したKerberos Key Distribution Centerサービスを起動するため、
net start kdcを実行する。
0 コメント:
コメントを投稿