スマホ向け表示

記事一覧

厳密なレプリケーション整合性を有効にする方法

ファイル 212-1.jpg
 
BPAの結果が気に入らないから(笑)、対策をしてみる。
ルートサーバーはね、警告でちゃっててもいいんです。このコにはデフォゲ設定してないからアクセス出来なくて当然だし… 

★厳密なレプリケーション整合性を有効にするために、以下のコマンドを使用します。
 
-------------------------------------
repadmin /regkey ~
------------------------------------- 
 
このコマンドは、以下のレジストリ値を追加・編集するものです。作業前のレジストリ バックアップは忘れずに。
レジストリ エディタ(regedit)でもいいんですけどね・・・。
 
  
*******************************************************
追加する値:allowDivergent
正式な値:"Allow Replication With Divergent and Corrupt Partner"
 
変更する値:strict
正式な値:"Strict Replication Consistency"
*******************************************************
 
   
-------------------------------------------------------
☆ここでは以下の環境を想定しています。
・厳密なレプリケーションの整合性を有効にしろと警告が出ているDC = ns3.nekoprint.mobi
・その他のDC = ns2.nekoprint.mobi
・全てのDCに適用したい = DC=nekoprint,DC=mobi
・SYSVOL_DFSR 共有にアップグレードずみ
・DCサーバーは2台構成(Widows Server 2008 R2、Windows Server 2012 R2)で2台ともまだ厳密なレプリケーションの整合性を有効にしていない状態。
※操作はNS3 (Windows Server 2012 R2)で実施。
 
-------------------------------------------------------
◆事前に、残留オブジェクトの削除を確認してから実行します。
もし残留オブジェクトがあれば、それを削除してから実行します。
https://www.nekoprint.jp/cgi-bin/nekonekodiary/archives/211.html
 
 
レプリケーションのイベントログに、残留オブジェクト関連のイベントログ ID:2042 がなれば次へ。
  
①コマンドプロンプト(管理者として実行)へ以下を入力・実行します。 
 
ファイル 212-2.jpg
 
-------------------------------------
repadmin /regkey GC: +allowDivergent 
-------------------------------------
 
  
※1台だけ(Widows Server 2012 R2側)に設定する場合は以下。
repadmin /regkey ns3.nekoprint.mobi +allowDivergent
 
 
②次に以下のコマンドを入力・実行します。
 
ファイル 212-3.jpg
 
-------------------------------------
repadmin /regkey * +strict
-------------------------------------
 
  
このコマンドでは、厳密なレプリケーション整合性をフォレスト内のすべての DC 上で有効にします。
 
 
※念のためレジストリエディタを開き、以下の場所に値が設定されているか確認してみるとよい。 
HKLM\system\ccs\services\ntds\parameters
 
 
③ここまで行ったら、レプリケーションが正しく出来ているかを確認してみます。
 
以下のコマンドを入力し、実行します。
 
ファイル 212-4.jpg
 
-------------------------------------
repadmin /showrepl
-------------------------------------
 
 
問題がなければ、同じ内容で以下のような表示が5つ確認できる。
---------------------------------------------------------
DC=DomainDnsZones,DC=nekoprint,DC=mobi
Default-First-Site-Name\NS2 (RPC 経由)
DSA オブジェクト GUID: e326cfd2-835e-4449-ab07-681840dfab07
yyyy-mm-dd hh:mm:ss の最後の試行は成功しました。
 
---------------------------------------------------------
時々、時間の早いほうがRPC関係のログで失敗していることがあるが、数時間経過後に同じ動作を行えばすべて「yyyy-mm-dd hh:mm:ss の最後の試行は成功しました。」が表示するはずである。
 
 
④以下のコマンドを入力・実行し、複製先のレプリケーションの状態を確認します。
 
  
ファイル 212-5.jpg
 
-------------------------------------
dcdiag /s:ns2 /test:dfsrevent /v
-------------------------------------
 
  
(上記のコマンドで ns2 側のDFSR テストで失敗がないかを確認、もしくは dcdiag /s:ns2 /v で、ns2 側の現在のすべての状態で失敗がないかを確認)
 
 
エラーについては、コマンド実行後の直近のイベント生成時間を参照します。
イベントIDが 1722 もしくは 1753 エラーの場合は RPC サーバーにアクセスできない等のエラーによるものなので RPCエラーについては、以下のリンクでも対策を書いています。
 
https://www.nekoprint.jp/cgi-bin/nekonekodiary/archives/10.html 
 

 
理想は、24時間以上経過後に同じコマンドを入力・実行したときの状態で問題がないかを確認します。24時間以内に何度も同じコマンドを入力しても同じエラーなどが表示されるだけだから。
 
 
④複製元のDCである ns3 側でも同様に【 dcdiag /test:dfsrevent /v 】を実行し、失敗していないかを確認する。
 
 
⑤イベント ログの確認
すべての DC においてイベントビューアを開き、アプリケーションとサービス ログ内にある、《Directory Service もしくは ディレクトリ サービス》と《DFS Replication》ログをそれぞれ確認します。
(イベント表示が全くない場合は、SYSVOL_DFSR(SYSVOL) 共有や Netlogon 共有は問題なくできています。共有の確認は net share コマンド で行います。
 
////////////////////////////////////////////////////////// 
《Directory Service もしくは ディレクトリ サービス》
イベントID:1394 Active Directory ドメイン サービス データベースの更新を妨げていたすべての問題が解決しました。 Active Directory ドメイン データベースへの新規更新に成功しています。Net Logon サービスが再開されました。
 
イベントID:1869 Active Directory ドメイン サービスにより、次のサイトでグローバル カタログが検出されました。

グローバル カタログ:
\\ns3.nekoprint.mobi
サイト:
Default-First-Site-Name
 
 
《DFS Replication》SYSVOL_DFSR 共有の場合。
イベントID:1210 DFS レプリケーション サービスは、レプリケーション要求を受信する RPC リスナーを 正常にセットアップしました。 
 
イベントID:1206 DFS レプリケーション サービスは、ドメイン コントローラー ns2.nekoprint.mobi に正常に接続し、 構成オブジェクトにアクセスできました。
 
イベントID:5004 DFS レプリケーション サービスは、レプリケーション グループ Domain System Volume の パートナー NS2 との着信接続を正常に確立しました。
 
 
《ファイル レプリケーション サービス》SYSVOL 共有の場合。
イベントID:13516 ファイル レプリケーション サービスが、これ以上、コンピューター NS2 がドメイン コントローラー になるのを妨げなくなりました。システム ボリュームは正しく初期化されて、 システム ボリュームが SYSVOL として共有される準備が 完了したという通知を Netlogon サービスが受けました。
 
////////////////////////////////////////////////////////// 
上記のイベントが最終的に出ていれば成功です。
 

残留オブジェクトの削除を行う方法

久々にちょっと重い腰を上げてみる(笑)
 
☆ここではコマンドプロンプト(管理者として実行)で【repadmin】を使います。
 
①まずは各サーバーのGUIDを以下のコマンドで抜き出します。
 
【 repadmin /showrepl 】

これでコマンドを入力したサーバーのGUIDと、入力方向の近隣サーバーのGUIDが抜き出せます。
 
②続いて残留オブジェクトをテストモードで削除可能かを確認します。
 
以下のコマンドを使用します。
【 repadmin /removelingeringobjects 】
 
が、少々引数についてなどが複雑なので細かく説明しますと、このコマンドのあとに続けて<残留オブジェクトの削除が必要な問題のある DC>と、<参照DCのGUID>と、<名前付きコンテキスト>と、テストモードの引数を続けて入力します。
 
-------------------------------------------------------
☆環境例
・問題のあるDC Windows Server 2008 R2 = ns2.nekoprint.mobi
・正常動作しているDC Windows Server 2012 R2 = ns3.nekoprint.mobi
 
 参照GUID = 87b1ec13-d9ca-4fc4-9fc9-7e9bcf2133c4
・名前付きコンテキスト = DC=nekoprint,DC=mobi
・テストモード用の引数 = /advisory_mode
 
-------------------------------------------------------
上記を使い例文を書きますと以下のようになります。
※1行として入力・実行します。
作業を行うDCはどちらでもいいのですが、ここでは上記の正常動作しているDC側から操作します。
 
repadmin /removelingeringobjects ns2.nekoprint.mobi 87b1ec13-d9ca-4fc4-9fc9-7e9bcf2133c4 DC=nekoprint,DC=mobi /advisory_mode
 
 
実行した結果、入力したコマンドのすぐ下に
 
「ns3.nekoprint.mobi 上で RemoveLingeringObjects に成功しました。」
 
と出れば成功である。
 
 
③つづいて本番である、残留オブジェクトの削除を行います。
これは上記のコマンドから /ADVISORY_MODE 部分を削除してから実行します。
 
 
repadmin /removelingeringobjects ns2.nekoprint.mobi 87b1ec13-d9ca-4fc4-9fc9-7e9bcf2133c4 DC=nekoprint,DC=mobi
 
 
これも成功したらテストモードと同様に
 
「ns3.nekoprint.mobi 上で RemoveLingeringObjects に成功しました。」
 
と表示されます。
 
 
④イベント ログの確認を行う。
イベントビューアを開き、アプリケーションとサービス ログ内にある、《ディレクトリ サービス》ログを確認します。
 
イベントID:1938、1942、1937 が最終的に出ていれば成功であるが、1943が出ていたらコマンド入力ミスの可能性もあるので、入力内容を確認し再度コマンドの実行を行います。
 
 
 
  
 
 
 
⑤次にレプリケーションを強制的に実行します。
ただし、DCの情報が正しいかを確認してから行うようにすること。
 
 
以下のコマンドを順に入力・実行します。
 
repadmin /replicate ns2.nekoprint.mobi ns3.nekoprint.mobi cn=schema,cn=configuration,dc=nekoprint,dc=mobi /force
 
repadmin /replicate ns2.nekoprint.mobi ns3.nekoprint.mobi DC=DomainDnsZones,DC=nekoprint,DC=mobi /force
 
repadmin /replicate ns2.nekoprint.mobi ns3.nekoprint.mobi DC=ForestDnsZones,DC=nekoprint,DC=mobi /force
 
repadmin /replicate ns2.nekoprint.mobi ns3.nekoprint.mobi cn=configuration,dc=nekoprint,dc=mobi /force
 
 
各コマンドの実行結果、「ns3.nekoprint.mobi から ns2.nekoprint.mobi への同期を完了しました。」と表示されれば成功である。
 
 
 
⑥ここまで行ったら、レプリケーションが正しく出来ているかを確認してみます。
 
以下のコマンドを入力し、実行します。
 
repadmin /showrepl
 
 
問題がなければ、同じ内容で以下のような表示が5つ確認できる。
---------------------------------------------------------
DC=DomainDnsZones,DC=nekoprint,DC=mobi
Default-First-Site-Name\NS2 (RPC 経由)
DSA オブジェクト GUID: e326cfd2-835e-4449-ab07-681840dfab07
yyyy-mm-dd hh:mm:ss の最後の試行は成功しました。
---------------------------------------------------------
 
時々、時間の早いほうがRPC関係のログで失敗していることがあるが、数時間経過後に同じ動作を行えばすべて「yyyy-mm-dd hh:mm:ss の最後の試行は成功しました。」が表示するはずである。
 
 
⑦以下のコマンドを入力・実行し、複製先のレプリケーションの状態を確認します。
 
dcdiag /s:ns2 /test:dfsrevent /v
 
(上記のコマンドで ns2 側のDFSR テストで失敗がないかを確認、もしくは dcdiag /s:ns2 /v で、ns2 側の現在のすべての状態で失敗がないかを確認)
 
 
エラーについては、コマンド実行後の直近のイベント生成時間を参照します。
イベントIDが 1722 もしくは 1753 エラーの場合は RPC サーバーにアクセスできない等のエラーによるものなので RPCエラーについては、以下のリンクにて対策を書いています。
 
https://www.nekoprint.jp/cgi-bin/nekonekodiary/archives/10.html 
 

 
理想は、24時間以上経過後に同じコマンドを入力・実行したときの状態で問題がないかを確認します。24時間以内に何度も同じコマンドを入力しても同じエラーなどが表示されるだけだから。
 
 
⑧複製元のDCである ns3 側でも同様に【 dcdiag /test:dfsrevent /v 】を実行し、失敗していないかを確認する。
 
 
⑨イベント ログの確認
すべての DC においてイベントビューアを開き、アプリケーションとサービス ログ内にある、《ディレクトリ サービス》と《DFS Replication》ログをそれぞれ確認します。
 
////////////////////////////////////////////////////////// 
《ディレクトリ サービス》
イベントID:1394 Active Directory ドメイン サービス データベースの更新を妨げていたすべての問題が解決しました。 Active Directory ドメイン データベースへの新規更新に成功しています。Net Logon サービスが再開されました。
 
イベントID:1869 Active Directory ドメイン サービスにより、次のサイトでグローバル カタログが検出されました。

グローバル カタログ:
\\ns2.nekoprint.mobi
サイト:
Default-First-Site-Name
 
 
《DFS Replication》
イベントID:1210 DFS レプリケーション サービスは、レプリケーション要求を受信する RPC リスナーを 正常にセットアップしました。 
 
イベントID:1206 DFS レプリケーション サービスは、ドメイン コントローラー ns2.nekoprint.mobi に正常に接続し、 構成オブジェクトにアクセスできました。
 
イベントID:5004 DFS レプリケーション サービスは、レプリケーション グループ Domain System Volume の パートナー NS3 との着信接続を正常に確立しました。
 
////////////////////////////////////////////////////////// 
上記のイベントが最終的に出れば成功であるが…。
 

DC間、ドメインメンバーでそれぞれ使用するポート まとめ

◆DC間で使用する最低限の通信ポート
※ Widnows Server 2008 以降
  
ポートを使用するサービス名、送信元プロトコルとポート、宛先プロトコルとポートの順です。
 
DNS 送信元 Any | 宛先 TCP/UDP 53
Kerberos 送信元 Any | 宛先 TCP/UDP 88
NTP 送信元 UDP 123 | 宛先 UDP 123
RPC-受信 送信元 Any | 宛先 TCP 135
RPC-EPMAP  送信元 Any | 宛先 TCP 49152-49158
LDAP 送信元 Any | 宛先 TCP/UDP 389
SMB 送信元 Any | 宛先 TCP 445
DFSR 送信元 Any | 宛先 TCP 5722
 
TCP 5722 は、DFSRを使用している場合に限ります。 
 
 
 
◆ドメインメンバーで使用する最低限のポート
※ Windows 7 以降、宛先はDCのポート番号
  
ポートを使用するサービス名、プロトコル、クライアント側で使用するプロトコルとポート、DC側で使用するプロトコルとポートの順です。
  
PING ICMP
DNS 送信元 Any | 宛先 TCP/UDP 53
Kerberos 送信元 Any | 宛先 TCP/UDP 88
NTP 送信元 UDP 123 | 宛先 UDP 123
RPC受信 送信元 Any | 宛先 TCP 135
RPC-EPMAP 送信元 Any | 宛先 TCP 49152-49158
NetBIOS-ns 送信元 UDP 137 | 宛先 TCP 137
NetBIOS-dgm 送信元 UDP 138 | 宛先 UDP 138
NetBIOS-ssn 送信元 Any | 宛先 TCP 139
LDAP 送信元 Any | 宛先 TCP/UDP 389
SMB 送信元 Any | 宛先 TCP 445
KPasswd 送信元 Any | 宛先 TCP 464
LDAP GC 送信元 Any | 宛先 TCP 3268
☆ LDAP SSL 送信元 Any | 宛先 TCP 636
☆ LDAP GC SSL 送信元 Any | 宛先 TCP 3269
☆ AD DS Web Services 送信元 Any | 宛先 TCP 9389
 
 
☆部分はあまり使うことはないかな笑
 
 
   
------------------
追記。SMB について
------------------
TCP 445 ポートはセキュリティ上、Windows 2003 以前のOSがない限り SMBv2 以降を使うようにし、
Windows Vista 以降のOSでは SMBv1 を使わないようにします。
 
※レジストリ編集箇所(テケトーに書く
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\
 
・Lanmanserver
 -Parameters
  -SMB1 DWORD 0
  -SMB2 DWORD 1
・LanmanWorkstation
 -DependOnService Multi_SZ Bowser/MRxSmb20/NSI
・mrxsmb10  
 -Start DWORD 4
 
 
※ちなみに XP や 2003 に同じレジストリを登録し、
mrxsmb20.sys を System32\Drivers に置いてもムダだった(笑)