{{category Microsoft Windows}} :: アウトライン: {{outline}} !!! FSMO !! 概要 Flexible Single Master Operation。FSMO自体はDCが受け持つ役割。 FSMOを引き受けたDCは操作マスタ。 Active Directoryではマルチマスタが可能だが、何も考えないでマルチマスタ可能にしてしまうと、当然のことながらAD内の情報に矛盾が生じたりして混乱してしまう。 そこで、マルチマスタに見せかける仕組みが裏で必要になる。「見せかける」というのは、実際には特定の1台のDC上でしか変更(または変更管理)が行われていないにもかかわらず、複数のDCから変更ができているように見せかける、ということである。 この「特定の1台のDC」が、FSMOの役割を持ったDCである。 FSMOは5種類ある。 !! 種類 ! スキーママスタ * Ntdsutil上の名前:schema master * 範囲:フォレスト AD内のオブジェクト定義であるスキーマを管理する、フォレストでただ1台のDC。スキーマを管理できるのは、Schema Adminsに所属するユーザーのみ。 変更可能なスキーマ原本はスキーママスタ上にのみ存在し、それ以外のDCはこのスキーマ原本の読み取り専用コピーを持つのみ。 この役割のみは、真にマルチマスタではない。スキーママスタ以外の他のFSMOは、マルチマスタが実現されているかのように「見せかける」ための仕掛け。 ! ドメイン名前付けマスタ * Ntdsutil上の名前:naming master * 範囲:フォレスト ドメインとアプリケーションパーティションを追加・削除を制御する。ADにドメインやアプリケーションパーティションを追加・削除するためには、ドメイン名前付けマスタと通信できる必要がある。 アプリケーションパーティションは、DNSなど特定のDCのみにレプリケートされるADデータベースのパーティション。 ! PDCエミュレータ * Ntdsutil上の名前:PDC * 範囲:ドメイン MSのKBなどではNTドメインとの混在の際に必要、と書いてあるが、実際にはADドメインにおいてPDCエミュレーション以外の重要な役割を担っているという。 オブジェクトのパスワード情報を管理する、ロックアウト情報を保持する。 グループポリシーオブジェクトの管理を行う。 マルチマスタードメインを実現するために、各DC上で行われたこれらの変更は、すぐに(ほぼリアルタイムに)PDCエミュレータに送信される。 個別のDC上で行われた変更が、ドメイン内にレプリケートされて行き渡るには時間がかかるが、各DCはPDCエミュレータに問い合わせることで、最新の情報を得ることができる。 また、ドメイン内の時刻同期のマスターサーバをしている。 ! RIDマスタ * Ntdsutil上の名前:RID master * 範囲:ドメイン ADドメイン内の各一意なオブジェクトインスタンス(セキュリティプリンシパル)のSIDを構成するRIDを管理する。 具体的には、一塊のRIDを各DCに配布する。DCはRIDを使い切ったら、RIDマスタにもう一塊を要求する。 RIDマスタは重複しないRIDを作成してDCに配布する役割を持つ。 ! インフラストラクチャマスタ * Ntdsutil上の名前:infrastructure master * 範囲:ドメイン ファントムオブジェクトというADの低レベルなデータベースオブジェクトの情報アップデートを担当する。 その目的は、他のドメインに存在するオブジェクトの存否情報とDN情報をアップデートし、自ドメインのDCに提供することである。 ファントムオブジェクトは、ADの内部でしか使用されず、ユーザーの目に触れることはない。元々は、「削除されたが、別の場所から参照されている」オブジェクトを表すために作成されるもの。ファントムは通常のオブジェクト属性を失っているが、DN、SID、GUIDなど最低限の情報だけを保持している。 この「軽い」性質を利用して、ファントムは「別のドメインに所属するオブジェクトの存否を確認し、SIDとDNを紐づける」ためにも使われる。他のドメインのオブジェクト情報を参照するとき、最初はそのドメインのDCに問い合わせをして情報を取得せざるを得ない。 しかしその際にそのオブジェクトのファントムを作成しておく。後でそのオブジェクトの情報を再参照するときには、他のドメインのDCに再問い合わせをするのではなく、ファントムを参照すれば効率がよくなる。 グローバルカタログサーバーが最新のファントム情報を保持している。インフラストラクチャマスタはGCにアクセスしてこの最新のファントム情報をアップデートし、ドメイン内のDCに提供する。これにより、別のドメインのオブジェクトの最新の存否情報やDN情報もタイムラグなく表示できる(以上、KB248047より)。 これでわかるとおり、インフラストラクチャマスタはマルチドメイン環境でしかその役割を果たさない(シングルドメインではファントムが作成されても、それは自ドメイン内の削除済みオブジェクトのファントムなので、情報を得るために自ドメインのADデータベースを参照すればよいだけ)。 マルチドメイン環境では、グローバルカタログとインフラストラクチャマスタを同居させると、インフラストラクチャマスタの情報は常にグローバルカタログと一致してしまう。 そのため、ドメイン内にアップデートを通知しなくなってしまうという(GCとの差を見てアップデート動作を行うため)。 マルチドメイン環境では、GCとインフラストラクチャマスタを別にすべし、というのはそういう理由からのようだ。 また、ファントムの最新情報はGCに保持されているということは、すべてのDCをGCにしてしまえばよい。そうすれば各DCは自分のGC上にある最新のファントム情報を参照できるので、マルチドメイン環境であってもインフラストラクチャマスタの役割は必要ない。GCとインフラストラクチャマスタの同居問題に気をつかう必要はなくなる、ということになる(KB197132)。 これはフォレストが小さくて、GCに格納される情報がそれほど大きくない場合には有効だろう。 !!! Active Directory統合DNS !! スタブゾーン スタブゾーンと委任の違いは。 * 委任は前方参照ゾーンにNSレコードとそのエントリのAレコードを手動で登録するだけ。 * スタブゾーンはゾーンなので、専用のゾーンを作成する。また、委任先のマスターサーバーから最新のNSレコード&そのAレコード情報を自動で受け取ることができる。 いずれも、子ゾーンを分割する目的で使用できる。 !!! セキュアチャネル !! 概要 DCと、ドメイン参加PCが通信するための、暗号化されたTCPセッション。 PCがドメインに参加すると、DCにはコンピューターアカウントが作成される。参加PCとDC側のコンピューターアカウントに、セキュアチャネル用の共通パスワードが保持される。 デフォルトでは、30日ごとに参加PC側からDCに対して、コンピューターアカウントパスワードの変更・同期が行われる。 参加PCは、参加後のDCとのやり取りをすべてセキュアチャネルを通して行う。 つまり、認証もそもそもセキュアチャネル上で行われる。 参加PCは起動するとすぐに、DCに対してコンピューターアカウント認証を行う。これがつまり、「ドメインに参加している」ということになる。 !! コンピューターアカウントのパスワード期限切れ都市伝説 :: 伝説 ::: この30日のコンピューターアカウントパスワードの期限内にDCに接続しなかった参加PCは、パスワードの同期が取れなくなり、ドメインに参加出来なくなる、という都市伝説がある。実際には概要にあるとおり、参加PC側から要求されない限りコンピューターアカウントパスワードが更新されることは無いため、「長期間DCに接続していなかった」だけで同期が取れなくなることは無い。セキュアチャネルが確立出来なくなる理由は、「何らかの理由により」DC上とPC上のコンピューターアカウントパスワードの同期が取れなくなった場合であるが、その原因はイレギュラーな要因でしかない。長期間ネットに接続しない、というのは通常運用の中でありうる事態なので、そのようなことでドメインから締め出されてしまうことは無い。よくあるのは、PCまたはDCをバックアップから復旧したときだそう。 :: セキュアチャネルの復旧方法 :::復旧方法としては、一般的にDC上で「Active Directoryユーザーとコンピュータ」を開いてコンピューターアカウントパスワードをリセットする、というもの。しかしこれも、「DCとPCにはエラーは無く、何らかの理由によりパスワードが同期していない」場合にのみ有効。そもそもPC上で、レジストリ(LSAシークレット領域)に保存されているパスワードデータが破損していたり等、エラーによって引き起こされている場合は、PCをドメインに参加しなおす等の根本的な対策が必要となる。 !!! Active Directoryデータベース !! Active Directoryデータベース Extensible Storage Engine(ESE)というJetデータベースの改良版が使われている。AD以外ではExchange Serverに使用されているという。 :: Ntds.dit :::Active Directoryデータベースファイルの本体。 :: Edb*.log :::トランザクションログファイル。 :: Edb.chk :::チェックポイントファイル。 :: EDBRes00001.log、EDBRes00002.log :::トランザクションログファイルのための予約ファイル。 !! SYSVOLフォルダ DC上にはSYSVOLという共有フォルダが作成される。ここにはログオンスクリプトを置いたり、グループポリシーの設定ファイルが格納されたりする。 同一ドメイン内のDCは、SYSVOLフォルダをレプリケーションで同期し合っている。 !!! 役割 !! RODC :: 条件 * フォレストの機能レベルは2003以上でなければならない。 * RODC自身はWindows Server 2008でなければならない。 * RODCのレプリケート元のDCはWindows Server 2008でなければならない。 * フォレスト内にServer 2008以外のDCがある場合、adprep /rodcprep の実行を1回だけ行う必要がある。 !!! ツール !! Adprep.exe 以下、Technetの記事(http://technet.microsoft.com/ja-jp/library/dd464018(WS.10).aspx)より。 Adprep.exeは、各Windows ServerバージョンのインストールCDに含まれている、Active Directory準備ツール。 これは、以下のような場面でのみ使用するものだという。 + 既存のドメインコントローラーよりも新しいWindows Serverバージョンのドメインコントローラーを追加するとき。 + 既存のドメインコントローラーを新しいWindows Serverバージョンにアップグレードするケースで、1 が未実行のとき。 + DCにServer 2008以外が含まれているフォレストで、初めてRODCを追加するとき。 :: adprep /forestprep ::: フォレスト全体で1回だけ、スキーママスター上で実行する。 ::: 必要な権限は、Schema Admins または Enterprise Admins または スキーマ マスターをホストするドメインの Domain Admins。 :: adprep /domainprep /gpprep ::: 各ドメインごとに1回ずつ、インフラストラクチャマスター上で実行する。 ::: 必要な権限は各ドメインの Domain Admins。 :: adprep /rodcprep ::: フォレスト全体で1回だけ。任意のDC上で実行可能だが、フォレストのドメイン名前付け操作マスターと、各インフラストラクチャ操作マスターにアクセスできる必要がある。 ::: 必要な権限は Enterprise Admins。 Adprepは以下のようなことを行う。 * Active Directory スキーマの更新 * セキュリティ記述子の更新 * Active Directory オブジェクトおよび SYSVOL 共有フォルダー内のファイルに対するアクセス制御リスト (ACL) の変更 * 新規オブジェクトの作成 (必要な場合) * 新規コンテナーの作成 (必要な場合