今回は、Active Directory におけるドメインコントローラーの操作マスター(FSMO)の種類と各役割について自分なりに整理した内容をまとめておきたいと思います。
操作マスター(FSMO)とは?
操作マスター(FSMO) とは、フォレストやドメインを管理していくうえで特別な役割を担うドメインコントローラーのことを指しており、Flexible Single Master Operation の頭文字をとって FSMO と呼ばれています。
操作マスター(FSMO)の役割として、以下の5つの種類があります。
- スキーママスター
- ドメイン名前付けマスター
- PDC エミュレーター
- RID マスター
- インフラストラクチャマスター
フォレスト/ドメインにおける操作マスターの台数
この5つの操作マスターは、フォレストの単位で管理するものとドメインの単位で管理するものという観点から、環境毎に各操作マスターの役割を持てるドメインコントローラーの数が異なります。
操作マスター | 存在できる数 |
スキーママスター | フォレストで1台の DC のみ |
ドメイン名前付けマスター | フォレストで1台の DC のみ |
PDC エミュレーター | ドメインで1台の DC のみ |
RID マスター | ドメインで1台の DC のみ |
インフラストラクチャマスター | ドメインで1台の DC のみ |
シングルフォレスト/シングルドメインの場合はそこまで意識しなくてもよいかもしれませんが、マルチドメイン環境を構成する場合は各役割とどのドメインコントローラーへ役割をもたせるかの考慮が必要となります。
操作マスター(FSMO)の役割
それでは、各操作マスター(FSMO)の役割について解説していきます。
まずは、それぞれの操作マスターがどんな役割をもっているのかというイメージだけでも覚えておければよいかと思います。
スキーママスター(Schema Master)
スキーマとは、Active Directory の属性データのことになり、スキーママスターとはその領域を管理する役割を指します。属性データとは、Active Directory のオブジェクトでプロパティに存在している “名前” や “メールアドレス” 、”部署名” などの属性を入力するための枠のようなイメージです。
このスキーマ情報は必要に応じて追加することができ、また特定のアプリケーション(Exchange Server など)で利用するものは、連携アプリケーションの構成時に自動的にスキーマ拡張がされたりもします。こういったスキーマ情報の変更には、Schema Adminsの権限が必要となり、Schema Admins グループに所属しているユーザーのみが操作を行うことができます。
スキーマ情報の操作を行う時にスキーママスターで行わなければならないかというとそうではなく、どのドメインコントローラーで操作してもスキーママスターが保持するマスター情報が変更されるといった動作になります。
ドメイン名前付けマスター(Domain Naming Master)
ドメイン名前付けマスターは、フォレストへドメインの追加や削除を管理する役割になります。
フォレストへ新しくドメインを追加する場合や、フォレストからドメインを削除する際にドメイン名前付けマスターの役割を保持するドメインコントローラーの管理の元で行われます。
ドメインの追加/削除はそこまで頻繁にあるものではないのであまり出番はないですが、スキーママスターと同様、フォレスト全体に影響があるものになりますので重要な役割になります。
PDC エミュレーター(PDC Emulator)
PDC(Primary Domain Controller)エミュレーターは、 アカウントの情報(パスワードやロックアウトなど)や、ドメインの時刻同期を管理する役割を担います。
例えば、ドメインコントローラーが複数ある場合、ユーザーのパスワード変更が行われた際にはドメインコントローラー同士でパスワード情報の同期が行われますが、タイミングによっては変更後の情報をもっていないドメインコントローラーで認証を行ってしまうことが考えられます。
そういうことがないように、パスワード変更が行われたらまず PDC エミュレーターの役割を持つドメインコントローラーへ情報が伝達される仕組みになっており、ユーザーがパスワード認証に失敗した場合に PDC エミュレーターへパスワード情報を確認しに行くことで、情報の同期が終わっていなくても認証を行うことができます。
また、Active Directory では、Kerberos 認証の仕組みがドメインに存在するサーバーやクライアントで時刻が一致していることを前提としています。そのため、クライアントはドメインコントローラーへ認証する際に時刻の同期を行い、各ドメインコントローラーは PDC エミュレーターの役割を持つドメインコントローラーを主として時刻を同期してドメイン全体で時刻を一致させる仕組みとなっています。
RID マスター(RID Master)
RID マスターは、Relative ID(相対 ID)というものを管理する役割になります。
Active Directory のオブジェクトが持つ SID というものがありますが、この SID は、“ドメイン SID” + “Relative ID” の組み合わせで構成されており、ドメイン SID はドメインで同一の ID となりますので、RID によってオブジェクトごとにユニークな ID を付与する仕組みとなっています。
RID マスターは、各ドメインコントローラーへ RID プール(RID を付与できる枠)を割り当て、各ドメインコントローラーはオブジェクトを作成する際にはそれぞれ付与されたプールから採番していくイメージになります。
付与された RID プールを使い切ると、再度 RID マスターへ新しい RID プールを要求しますが、この時に RID マスターと通信ができない状態だと RID の割り振りが行えないのでオブジェクトの作成ができなくなります。
インフラストラクチャマスター(InfraStructure Master)
インフラストラクチャマスターは、ドメイン内のユーザー/コンピューターと、グループメンバー情報の紐付けを管理する役割になります。
グループメンバーやメンバーの名前などが変更された場合にインフラストラクチャマスターから他のドメインコントローラー(グローバルカタログサーバー)へマルチマスタレプリケーションによって同期されます。
操作マスター(FSMO)の確認
操作マスター(FSMO)の所有者を確認する方法になります。管理者として起動したコマンドプロンプトもしくは PowerShell にて、以下のコマンドを実行します。
コマンド例
netdom query fsmo
実行例
PS C:\Users\Administrator>netdom query fsmo
スキーマ マスター server01.contoso.com
ドメイン名前付けマスター server01.contoso.com
PDC server01.contoso.com
RID プール マネージャー server01.contoso.com
インフラストラクチャ マスター server01.contoso.com
コマンドは正しく完了しました。
PS C:\Users\Administrator>
各役割の右側にその役割を保持するドメインコントローラーの名前が表示されます。
操作マスター(FSMO)の移行
操作マスター(FSMO)の役割は、Active Directory に最初に立てたドメインコントローラーで保持されますがその後、フォレスト/ドメインの観点で必要に応じて移動させたり、それぞれ役割を分けたりといったことを行います。
操作マスター(FSMO)を他のドメインコントローラーへ移行するには、「Active Directory ドメインと信頼関係」や「Active Directory ユーザーとコンピューター」から一つずつ操作を行うか、Windows PowerShell コマンドを利用してまとめて行うことも可能となります。
操作マスター(FSMO)の移行方法については、別の記事で手順をまとめていますので興味があれば参考にしていただければと思います。