【Active Directory入門 Part9】FSMO(操作マスター)とは?役割の確認・転送・強制移行まで解説

この記事の内容

  • Active Directoryにおける「FSMO(操作マスター)」の5つの役割と2つのカテゴリーを解説します
  • SIDとRIDマスターの関係を実際の属性値を交えて説明します
  • 現在のFSMOロール保有者をdcdiagコマンドで確認する方法を紹介します
  • GUIを使ったFSMOロールの転送手順を説明します
  • DCが障害で消失した場合のntdsutilによる強制移行(seize)の考え方を紹介します

FSMOとは

Active Directoryには「FSMO(Flexible Single Master Operations)」と呼ばれる、操作マスターという非常に重要なロールがあります。通常、Active Directoryはマルチマスター構成であり、どのドメインコントローラーからでも変更を行えます。しかし一部の操作は、整合性を保つために1台のDCが専任で担当する必要があります。それがFSMOの役割です。

FSMOは5種類ありますが、大きく次の2つのカテゴリーに分けられます。

  • フォレストで1台だけ存在する役割
  • ドメインごとに1台存在する役割

フォレストで1台だけ存在するFSMOロール

スキーママスター(Schema Master)

スキーマとは、Active Directoryの属性やクラスを定義する場所です。スキーマの変更は整合性を保った状態で行う必要があるため、フォレスト全体で1台のDCがこの役割を担います。

ドメイン名前付けマスター(Domain Naming Master)

フォレストへのドメインの追加・削除を管理する役割です。複数のドメインが同時に参加・脱退しようとした場合の競合を防ぐため、フォレストで1台がコントロールします。


ドメインごとに1台存在するFSMOロール

RIDマスター(RID Master)

Active Directoryの各オブジェクトにはSID(セキュリティ識別子)が付与されています。SIDはドメイン共通の「ドメインSID」部分と、オブジェクトごとに一意な末尾の番号(RID)で構成されています。

実際に属性を確認すると、objectSidという属性があり、次のような構造になっています。

S-1-5-21-<SID>-<RID>

例えば、Administratorのアカウントは末尾が500、Guestは501というように、RIDは連番で重複なく割り当てられます。Active Directoryはマルチマスターのため、どのDCでもオブジェクトを作成できます。そのため、「次に使えるRIDの範囲はここからここまで」という管理を一元化する役割が必要です。それがRIDマスターです。

PDCエミュレーター(PDC Emulator)

アカウントのパスワードやロックアウト情報を管理するDCです。パスワード変更時などに1箇所で処理し、その情報を他のDCに伝えることで、整合性のある認証が行えます。

名前の由来は、Windows NT時代に存在していた「プライマリードメインコントローラー(PDC)」の動作をエミュレートしているためと考えられています。

インフラストラクチャーマスター(Infrastructure Master)

ドメイン内のユーザーやコンピューターと、グループのメンバー情報のマッピングを保持する役割です。

注意点として、マルチドメイン環境ではインフラストラクチャーマスターとグローバルカタログサーバーの役割を同一のDCに持たせると、レプリケーションに問題が発生する場合があります。マルチドメイン設計時には特に注意が必要なロールです。


現在のFSMOロール保有者を確認する

現在どのDCがFSMOロールを保有しているかは、dcdiagコマンドの詳細オプションで一括確認できます。

dcdiag /v

出力の中に「ロールホルダー」に関するテスト結果が含まれており、各ロールの現在のオーナーが確認できます。出力例は次のようなイメージです。

PRDICD::::DDDDCCCC00001111:DC01

フォレストに最初に作成されたDCが、初期状態ではすべてのFSMOロールを保有します。サブドメインを追加した場合は、そのドメインに最初に作成されたDCがドメインスコープの3役割(RID、PDC、インフラストラクチャー)を保有し、フォレストスコープの2役割(スキーマ、ドメイン名前付け)はルートドメインのDCが保有し続けます。


GUIでFSMOロールを転送する

サーバーをリプレイスする際など、FSMOロールを別のDCに移す(転送する)操作が必要になります。正常に稼働しているDC間での転送はGUIから行えます。

スキーママスターの転送

  1. MMCコンソールを開き、「Active Directoryスキーマ」スナップインを追加します
  2. ツリーのルートを右クリックし、「スキーマ操作マスターに接続する」を選択します
  3. 転送先のDCに接続を変更します
  4. 「操作マスター」をクリックし、「変更」ボタンを押して転送します

転送後、dcdiag /vを再実行するとスキーママスターが新しいDCに切り替わっていることを確認できます。

ドメイン名前付けマスターの転送

  1. 「Active Directoryドメインと信頼関係」を開きます
  2. ルートを右クリックし、「操作マスター」を選択します
  3. 接続先のDCを変更し、「転送」ボタンを押します

RID・PDCエミュレーター・インフラストラクチャーマスターの転送

ドメインスコープの3役割は「Active Directoryユーザーとコンピューター」から操作します。

  1. 対象のドメインに接続した状態でツリーのルートを右クリックし、「操作マスター」を選択します
  2. 「RID」「PDC」「インフラストラクチャー」の3つのタブが表示されます
  3. 転送先のDCに接続を変更し、各タブで「変更」ボタンを押して転送します

DCが消失した場合の強制移行(Seize)

FSMOロールを保有するDCが故障・廃棄されてしまい、オンラインで転送できない場合はntdsutilコマンドを使った強制移行(seize)が必要です。

ntdsutil

ntdsutilを起動後、次の手順でFSMO管理モードに入ります。

nfssftseesdmrrmsovvoueetmrrmiaalicci:noontnntrenneoneenlaccaenttnsciiceooe:nn:ssc::soencqinouzeniecntte<icotnsto>server<DC>

ロール名の指定例は次のとおりです。

ロールseizeコマンド
RIDマスターseize rid master
PDCエミュレーターseize pdc
インフラストラクチャーマスターseize infrastructure master
スキーママスターseize schema master
ドメイン名前付けマスターseize naming master

注意: seizeは転送元のDCが応答できない場合の強制上書き操作です。通常の転送ではtransferコマンドを使用します。seizeはなるべく使わずに済む運用を心がけてください。

Microsoftの公式ドキュメント「Active Directory Domain ServicesのFSMO役割を譲渡または強制移行する」も参照しながら作業することを推奨します。コマンドの詳細は英語版のドキュメントで確認するのが確実です。


まとめ

FSMOは、Active Directoryの整合性を保つために欠かせない5つの特別なロールです。フォレストスコープの「スキーママスター」「ドメイン名前付けマスター」と、ドメインスコープの「RIDマスター」「PDCエミュレーター」「インフラストラクチャーマスター」の役割と違いを理解しておくことが重要です。

サーバーのリプレイスや廃棄を行う際には、対象のDCがFSMOロールを保有していないかを事前にdcdiag /vで必ず確認し、適切に転送してから作業を行うようにしてください。FSMOロールを保有したまま誤ってDCを廃棄してしまうと、Active Directory環境が深刻な状態になる可能性があります。

ntdsutilによる強制移行は最後の手段として知っておくと安心ですが、そのような事態にならないよう、日頃からFSMOの保有状況を把握した運用を心がけましょう。