Active Directory のサイトとは
AD には管理対象を示す「ドメイン」とは別に、『サイト』という概念があります。
サイトとは、物理的な拠点を示します。拠点内は一般に高速の LAN で構成され、拠点間は低速のWANで接続されます。Active Directory では、低速 NW のひっ迫を避けるために「ドメイン (管理対象範囲)」を複数の「サイト」に分割します。
例えば 2 台のドメインコントローラが低速回線の WAN を跨ぐ場合、サイトを分割するとメリットがあります。
初期設定では 1 つのドメインに対し『Default-First-Site-Name』という 1 つのサイトがあらかじめ存在しており、全ての DC (ドメインコントローラ) およびドメイン参加コンピュータはこのサイトに所属することになります。(シングルサイト構成)
例えばドメインコントローラ 2 台構成で、ドメイン参加 PC がログオンする際のシーケンスを考えます。
PC はまず DNS サーバに対して、自身のドメイン [ example.com ] の SRV レコードのクエリを投げ、DNS サーバからは両方のドメインコントローラの IP アドレスが返ってきます。受け取った PC はラウンドロビンでどちらか一方の IP に接続し、認証要求します。つまり、DNS ラウンドロビンにより負荷分散されます。
一方、例えば 192.168.0.0/16 を『Second-Site-Name』として新たなサイトとして定義し、マルチサイト構成にすると、192.168.0.0/16 内のコンピュータは 192.168.0.0/16 内のドメインコントローラを優先して接続しに行くようになります。
サイト間レプリケーション
一方、サイトはレプリケーションの間隔にも影響します。
同一サイト内のドメインコントローラは片方でユーザアカウントや DNS レコードの変更が有った場合、15 秒間隔で反映されますが、サイト間のドメインコントローラはレプリケーション (設定変更の反映) に時間が掛かります。
具体的に言うと、サイト間のレプリケーション間隔はデフォルトで 3 時間です。
設定変更により最短で 15 分まで短縮可能です。
なお、Active Directory で複製されるデータは大きくは以下の2つです。
- NTDS・・・ドメインのユーザアカウントやコンピュータアカウント、AD 統合ゾーン等の情報を格納。デフォルトの格納先は C:\Windows\NTDS フォルダ。
- SYSVOL・・・グループポリシーやログオンスクリプト等の情報を格納。デフォルトの格納先は C:\Windows\SYSVOL フォルダ。
ドメインコントローラ間のレプリケーションは DFS という Windows 標準のファイル複製サービスにより行われます。
サイト間レプリケーション間隔の変更
サイト間のレプリケーション間隔の変更は管理ツールの「Active Directory サイトとサービス」から行います。
以下はサイト間のレプリケーション間隔を 15 分に変更する例です。
「スタート」⇒「Windows管理ツール」⇒「Active Directory サイトとサービス」をクリック。表示された画面の左ペインの「IP」をクリックし、中央ペインの「DEFAULTIPSITELINK」を右クリックし、「プロパティ」をクリック。
「レプリケートの間隔(P)」を 15 に変更し「OK」をクリック。
レプリケーションの状態確認と強制実行
レプリケーションが行われたかどうかを確認するコマンドは repadmin /showrepl です。最後の実行時刻が表示されます。
C:\Users\Administrator> repadmin /showrepl
Repadmin: フル DC localhost に対してコマンド /showrepl を実行しています
Default-First-Site-Name\FILE1
DSA オプション: IS_GC
サイト オプション: (none)
DSA オブジェクト GUID: e67a2397-97db-4a8a-9b13-eda1f74d3e91
DSA 起動 ID: e67a2397-97db-4a8a-9b13-eda1f74d3e91
==== 入力方向の近隣サーバー======================================
DC=example,DC=com
Default-First-Site-Name\AD2 (RPC 経由)
DSA オブジェクト GUID: 9e8eeb71-d114-4473-85c6-19428b34b376
2020-08-02 20:05:50 の最後の試行は成功しました。
CN=Configuration,DC=example,DC=com
Default-First-Site-Name\AD2 (RPC 経由)
DSA オブジェクト GUID: 9e8eeb71-d114-4473-85c6-19428b34b376
2020-08-02 20:13:47 の最後の試行は成功しました。
CN=Schema,CN=Configuration,DC=example,DC=com
Default-First-Site-Name\AD2 (RPC 経由)
DSA オブジェクト GUID: 9e8eeb71-d114-4473-85c6-19428b34b376
2020-08-02 20:01:00 の最後の試行は成功しました。
DC=DomainDnsZones,DC=example,DC=com
Default-First-Site-Name\AD2 (RPC 経由)
DSA オブジェクト GUID: 9e8eeb71-d114-4473-85c6-19428b34b376
2020-08-02 20:10:44 の最後の試行は成功しました。
DC=ForestDnsZones,DC=example,DC=com
Default-First-Site-Name\AD2 (RPC 経由)
DSA オブジェクト GUID: 9e8eeb71-d114-4473-85c6-19428b34b376
2020-08-02 20:10:47 の最後の試行は成功しました。
C:\Users\Administrator>
また、複製(同期)を強制実行するコマンドは repadmin /syncall です。
C:\Users\Administrator> repadmin /syncall
コールバック メッセージ: 次のレプリケーションが進行中です:
レプリケーション元: 9e8eeb71-d114-4473-85c6-19428b34b376._msdcs.example.com
レプリケーション先: e67a2397-97db-4a8a-9b13-eda1f74d3e91._msdcs.example.com
コールバック メッセージ: 次のレプリケーションが完了しました:
レプリケーション元: 9e8eeb71-d114-4473-85c6-19428b34b376._msdcs.example.com
レプリケーション先: e67a2397-97db-4a8a-9b13-eda1f74d3e91._msdcs.example.com
コールバック メッセージ: SyncAll が完了しました。
SyncAll はエラーなしで終了しました。
C:\Users\Administrator>
なお、デフォルトでは自身のサイトのみにしか同期されませんので注意が必要です。
他のサイトにも即時に同期したい場合は以下コマンドがよく使われます。
C:\Users\Administrator> repadmin /syncall /AeP
/AeP は /syncall と一緒に使うオプションです。
/A は全ての LDAP 階層を対象とするオプション、/e は全てのサイトへ同期するオプション、/P はプッシュで同期するオプションです。
これらのオプションは repadmin /syncall /? で確認できます。
サイト設計の注意点
冒頭で説明した通り、また、今までの例に見た通り、『サイト』は WAN 帯域の節約に寄与します。
ですが例えばデータセンタと拠点に 1 台ずつドメインコントローラを置いたとして、パスワード変更はデータセンタ内の Web サーバ経由でデータセンタのドメインコントローラを変更し、PC の認証は拠点内のドメインコントローラで実施する、というパターンだと、パスワード変更の反映まで時間が掛かってしまい、その間は認証エラーとなってしまいます。
最近は NW 高速化も一段と進んでおりますので、WAN 回線が 100 Mbps 等の十分な帯域が取れるときはシングルサイトでも十分でしょう。
repadmin のオプション (ヘルプ)
repadmin のオプションと repadmin /syncall のオプションを以下に示します。
まずは repadmin のオプション。
C:\Users\Administrator> repadmin /?
使用法: repadmin <コマンド> <引数> [/u:{ドメイン\ユーザー}]
[/pw:{パスワード|*}][/retry[:<再試行回数>]
[:<遅延>]][/csv]
次のコマンドは、ヘルプを表示するために使用します。
/? repadmin で使用できるコマンドの一覧とその説明を
表示します。
/help /? に同じ
/?:<コマンド> <コマンド> に指定したコマンドに使用できる引数の一覧、
構文、および例を表示します。
/help:<コマンド> /?:<コマンド> に同じ
/experthelp 知識のあるユーザー専用のコマンドの一覧を表示します。
/listhelp DSA_NAME、DSA_LIST、NCNAME、および OBJ_LIST の文字列に使用できる
構文のバリエーションを表示します。
/oldhelp 現在まだ使用できるが、Microsoft のサポート対象とならない、
推奨されないコマンドの一覧を表示します。
指定できるコマンド (詳細なヘルプを表示するには /?<コマンド> を使用):
/kcc ターゲット ドメイン コントローラーに KCC を強制し、入力方向の
レプリケーション トポロジが即時に再計算されるようにします。
/prp 管理者はこのコマンドを使用して RODC のパスワード レプリケーション
ポリシーを表示または変更できます。
/queue DC がソース レプリケーション パートナーと同期するために
発行する必要がある入力方向のレプリケーション要求を表示します。
/replicate ソース ドメイン コントローラーから宛先 DC へ、指定した
ディレクトリ パーティションの即時レプリケーションをトリガーします。
/replsingleobj 共通のディレクトリ パーティションがある 2 つのドメイン
コントローラー間で単一のオブジェクトをレプリケートします。
/replsummary replsummary を実行することで、レプリケーションの状態と関連
するフォレストの状態を簡単および簡潔に要約できます。
/rodcpwdrepl ソース (ハブ DC) から 1 つ以上の読み取り専用 DC に対し、
指定したユーザーのパスワードのレプリケーションをトリガーします。
/showattr オブジェクトの属性を表示します。
/showobjmeta Active Directory 内に保存されている指定したオブジェクトの
レプリケーション メタデータを表示します。対象となるのは属性 ID、
バージョン番号、発信元またはローカルの更新シーケンス番号
(USN)、発信元サーバーの GUID、および日付とタイムスタンプです。
/showrepl 指定したドメイン コントローラーが Active Directory パーティション
の入力方向へのレプリケーションを最後に試行したときのレプリケーシ
ョン状態を表示します。
/showutdvec Active Directory のターゲット DC のコピーによって、それ自体
または推移性パートナーに対してコミット済みと表示される、コミット
済み更新シーケンス番号 (USN) のうち最大の番号を表示します。
/syncall 指定したドメイン コントローラーをすべてのレプリケーション
パートナーと同期します。
サポートされている追加のパラメーター:
/u: Active Directory で操作を実行するアクセス許可
があるドメインとユーザー名を円記号で区切って指定します
{ドメイン\ユーザー}。UPN ログオンはサポートされません。
/pw: /u パラメーターに入力したユーザー名のパスワードを
指定します。
/retry このパラメーターを指定すると、最初の試行が次のいずれかのエラーで
失敗した場合、 repadmin が繰り返し実行され、ターゲット DC への
バインドが試行されます。
1722 / 0x6ba : "RPC サーバーを利用できません。"
1753 / 0x6d9 : "エンドポイント マッパーから使用できるエンドポイント
はこれ以上ありません。"
/csv /showrepl と一緒に使用し、結果の値をコンマ区切り形式で
出力します。/csvhelp を参照してください。
注意: コマンドの多くは "宛先またはターゲットの DSA_LIST"、
"ソース DSA_NAME" (必要な場合)、そして NC またはオブジェクト DN
(必要な場合) の順にパラメーターを取得します。
(または ) はディレクトリ サービス エージェントの
バインド文字列です。これは、Active Directory ドメイン サービスではドメイ
ン コントローラーのネットワーク ラベル (DNS、NetBios、または IP アドレス)
です。Active Directory ライトウェイト ディレクトリ サービスでは、AD LDS
サーバーのネットワーク ラベルの後に、コロンと AD LDS インスタンスの
LDAP ポートを付加します。
例 (AD DS): dc-01
dc-01.microsoft.com
例 (AD LDS): ad-am-01:2000
ad-am-01.microsoft.com:2000
<名前付けコンテキスト> は NC のルートの識別名です。
例: DC=My-Domain,DC=Microsoft,DC=Com
注意: 各国の文字または Unicode 文字のテキスト (名前付けコンテキストや
サーバー名など) は、正しいフォントと言語サポートが読み込まれている場合に
のみ正しく表示されます。
C:\Users\Administrator>
続いて repadmin /syncall /? のオプション。
C:\Users\Administrator> repadmin /syncall /?
DsReplicaSyncAll コマンド ラインのインターフェイスです。
repadmin /SyncAll [/adehijpPsS] <宛先 DSA> [<名前付けコンテキスト>]
/a: サーバーのいずれかが利用不可能な場合は中止する
/A: <宛先 DSA> の NC すべてについて /SyncAll を実行する
(<名前付けコンテキスト> を無視する)
/d: (GUID DNS ではなく) メッセージの DN でサーバーを識別する
/e: エンタープライズ、クロス サイト (既定: ホーム サイトのみ)
/h: このヘルプ画面を表示する
/i: 無限に繰り返す
/I: サーバーのペアそれぞれについて、同期する代わりに showreps を実行する
/j: 隣接したサーバーのみ同期する
/p: メッセージの後にユーザーによる中止に備えて一時停止する
/P: 変更をホーム サーバーから外へプッシュする (既定: プル)
/q: 無人モード: コールバック メッセージを表示しない
/Q: 無人モード: 致命的なエラーのみ表示する
/s: 同期しない (トポロジを解析してメッセージを生成)
/S: 初めのサーバー応答チェックをスキップする
(サーバーがすべて利用可能であると想定)
<名前付けコンテキスト> を省略すると、DsReplicaSyncAll には既定で構成 NC が
指定されます。
C:\Users\Administrator>
コメント