ActiveDirectory FSMOとは

どうも、Miyaです。

今回は、ActiveDirectoryの操作マスタ(FSMO)を解説します。

ドメインコントローラ(以下DC)は冗長化のために同ドメインに数台配置するのが基本なのですが、全て同じ動きをします。
なぜかというと、DCはマルチマスタという相互レプリケーションを採用しているからです。
すなわち、どのDCからでも編集作業をしても、その情報が他のすべてのDCにレプリケーションされるんです。

但し、一つの特定のDCだけをターゲットにして実行できるタスクがいくつかあり、総称して操作マスタ(FSMO)と呼ばれています。

FSMOは以下のように分類されます。

  • フォレストの操作マスタ
    • ドメイン名前付けマスタ
    • スキーママスタ
  • ドメインの操作マスタ
    • RIDマスタ
    • インフラストラクチャマスタ
    • PDCエミュレーターマスタ

これらの5つの役割があり、任命された特定のDCが仕事をするわけです。

スポンサーリンク:

フォレストの操作マスタ

まずは、フォレストの操作マスタをご紹介します。
フォレストの操作マスタは、文字通りフォレスト内の特定のDC1台だけが持てる役割です。

ドメイン名前付けマスタ

フォレスト内のドメインの追加または削除を行うときに、またはドメイン名を変更するときに問い合わせる必要があるDCです。
つまり、フォレスト全体でドメインを管理する管理者さんが一人必要というわけです。
ドメイン名前付けマスタ

スキーママスタ

スキーママスタとは、スキーマに対する全ての変更を管理するドメインコントローラです。

スキーマとは、言い換えると属性値です。
ユーザなどのオブジェクトを作成する時、ユーザクラスを元にユーザオブジェクトが生成されます。
DCの[ツール]→[ADSIエディター]を起動します。
[ADSIエディター]を右クリック→[接続]をクリックします。
[規定の名前付けコンテキストを選択する]から[スキーマ]を選択して、[OK]をクリックします。
操作マスタ

すると、DCで取り扱っているオブジェクトに対するスキーマの定義を覗くことができます。
例えば、Microsoftの製品でメールを司るExchange様がいますが、彼をインストールする時には、ユーザオブジェクトにいくつかの属性値を追加する必要があるため、スキーマ拡張をしてもらう必要があります。
FSMO

なお、スキーマはフォレスト内の全DCで同一の内容になります。
そのため、一つのDCでスキーマ拡張を行った場合、それらの情報は他DCにも行われます。

ドメインの操作マスタ

次に、ドメインの操作マスタについてご紹介します。
ドメインの操作マスタは、文字通りドメイン内の特定のDC1台だけが持てる役割です。

RIDマスタ

RIDマスタとは、ドメイン内の各DCにSIDを配る役割を持っています。SIDとは?
ユーザなどのオブジェクトを生成する時に、必ずそのオブジェクトに対するSIDと呼ばれる一意な値を割り当てる必要があります。
このSIDを事前に、かたまりで配ってくれるのがRIDマスタです。
ちなみに、RIDが配布するSIDの数は500個と決まっており、各DCは配られたSIDからオブジェクトに割り当てていくのですが、SIDの数が足りなくなってしまった場合にRIDマスタに「SIDなくなったんで下さい」と要求を投げるような仕組みなっています。

つまり、こいつがいないとオブジェクトが生成できないという(´_ゝ`)笑

インフラストラクチャマスタ

とあるドメインのグループに別のドメインのメンバーが含まれている場合、ドメイン間のオブジェクトを参照する役割を担っています。

例えば、contoso\adminが、contoso\Group1のメンバであるadatum/user01オブジェクトをダブルクリックして、[セキュリティ]タブを開いたとしましょう。
その時に、リストされるSIDを検索し、それを名前に変換し、一覧を表示するのですが、マルチドメインフォレストの場合には、インフラストラクチャマスタが他のドメインのSIDを検索します。

また、インフラストラクチャマスタにはもう一つ重要な役割を担っています。(こっちの役割の方が目にすること多いと思います。)
それは、オブジェクトの変更を、他のDCに伝達する役割です。
例えば、管理者が、とあるDCでContoso\User01オブジェクトのとある属性値を変更したとしましょう。
同じドメインの他のDCは古い情報になってしまいますよね。
この時、整合性を持たせるために、インフラストラクチャマスタが他のDCに変更を伝達してくれます。

PDCエミュレーターマスタ

PDCエミュレーターマスタの役割を保持するDCはタイムソースとなります。
ADの認証ではKerberosが使われており、5分以上のズレがあると認証に失敗します。


Kerberos認証では、チケットの認証以外にも時刻同期も認証の要素としています。
チケットの中身にはクライアントの送信時刻が含まれており、チケットを受け付けるサーバとチケットの中身の送信時刻に5分以上のズレがあれば、認証できないような仕組みになっています。
ですので、基本的には時刻同期サーバ(NTP)を統一しておくこと推奨します。
これ結構トラブルの元なので、頭の片隅に入れておいた方がいいです( ´Д`)y━・~~笑
Windows Server 2016 Active Directoryの構築 Kerberosプロトコルによる認証フロー

そのため、各DCのNTPをPDCエミュレータマスタを保持するDCに統一しておきましょうって話です。
なお、フォレストルートドメインは外部の原子時計によるタイムソースと同期するように設定します。

また、PDCエミュレーターマスタは、緊急のパスワード変更を受信するDCでもあります。
ユーザが、とあるDCでパスワードを変更したとします。
この時、パスワードの変更情報はPDCエミュレーターマスタを保持するDCに即座に送信されます。
これは、パスワード変更後に、更新情報をまだ受信していないDCに認証を試みた場合、PDCエミュレータマスタを保持するDCに最新の変更を確認する動きがあるからです。

またまた、PDCエミュレータマスタはGPOの編集する時にも使用されます。
いや、どんなけ仕事するねん(´_ゝ`)笑
GPOを編集する時は、実はPDCエミュレータに格納されているGPOのコピーを編集することになります。

どうでしたか?DCを複数配置するときには、これらの役割を分散させることが推奨されています。
また、配置するとしても、スペックなどを考慮して配置することが必要です。
TechnetにもFSMOの配置の計画について記述されていますので、ご参考にして下さい⇒Planning Operations Master Role Placement
それでは、良いWindows Server ライフをっ♪

スポンサーリンク