この特集のトップページへ

Directory design 2... 複製トラフィックから見たドメイン設計
sankaku.gif ドメインは複製処理の境界

 ドメインの境界を決めるときには,複製におけるネットワークトラフィックも十分に考慮しなければならない。同じドメインに属するドメインコントローラ同士は,相手がどんなに遠く離れた場所に設置されているとしても(たとえば1台が日本でもう1台がアメリカにあったとしても)必ずディレクトリを完全に複製する。逆に,相手がどんな近くにあったとしても,ドメインが異なれば一部の情報しか複製しない。

 Active Directoryにおいて複製される情報について理解するためには,「ネーミングコンテキスト(NC)」について理解しなければならない。ネーミングコンテキストとは,ディレクトリファイル(NTDS.DIT)のなかに格納されている情報の固まりであり,複製の単位である。

Fig.7 ネーミングコンテキスト
fig07.gif

 ディレクトリファイルのなかに格納されているネーミングコンテキストには,(1) スキーマネーミングコンテキスト,(2) 構成ネーミングコンテキスト,(3) ドメインネーミングコンテキスト,の3つがある。

  スキーマネーミングコンテキスト
 Active Directoryに作成するオブジェクトの定義である。1つのフォレスト内で共有される。
 
  構成ネーミングコンテキスト
 フォレスト内に,何というドメインと何というサイトがあり,どのコンピュータがドメインコントローラで,どんなサービスを利用できるのか,といったActive Directoryドメインの構成情報である。1つのフォレスト内で共有される。
 
  ドメインネーミングコンテキスト
 ユーザー,グループ,コンピュータ,OUに代表されるドメインに固有のオブジェクトと,それらが保持する属性値である。1つのドメイン内で共有される。
 

 これらのネーミングコンテキストのなかには,フォレスト全体で共有されるもの(スキーマネーミングコンテキストと構成ネーミングコンテキスト)とドメインのなかだけで共有されるもの(ドメインネーミングコンテキスト)という2種類があるので,フォレスト内に存在する複数のドメインの各ドメインコントローラが完全に同じ情報を持つことはない。

 たとえば,オブジェクトや属性はドメインごとに管理されるので,ドメインネーミングコンテキストはほかのドメインのドメインコントローラに複製されることはない。逆に,フォレスト内にどのようなドメインがあって,いくつのサイトに分かれているかなどの構成情報がフォレスト全体で共有されていなければ,管理者もユーザーもオブジェクトの位置を特定できなくなり,運用上の問題が生じてしまう。

 さらに,Active Directoryのスキーマは必要に応じて拡張できるが、スキーマの情報がフォレスト内で共有されていないと,ドメインごとに登録されているユーザーの属性がまったく異なるという事態も発生し得る。このような事態に陥ると,ある条件でディレクトリ全体からユーザーを検索しようと思っても,特定のドメインのユーザーしか検索されないことになる。しかし実際には,フォレスト全体でスキーマを共有するので,そのような問題は起こらない。たとえば,全社的に社員番号でユーザーアカウントを管理したいものとしよう。既存のユーザーオブジェクトには,社員番号という属性は存在しない。そこで,スキーマを拡張し,社員番号という属性をユーザーオブジェクトに追加したとする。すると,スキーマネーミングコンテキストはフォレスト全体で共有されるため,社員番号という属性をフォレスト内のユーザーオブジェクトで利用できるようになる。

 このように,ドメインが同じであるか否かによって,複製されるデータの量も変わってくる。つまり,同じドメイン内にあるドメインコントローラのあいだでは,3つのネーミングコンテキストのすべてが完全に複製され,すべてのドメインコントローラがマスタサーバーとなる(マルチマスタ)。これに対して,別のドメインにあるドメインコントローラとのあいだでは,構成ネーミングコンテキストとスキーマネーミングコンテキストだけが複製される。蛇足であるが,「完全に複製される」といっても,ディレクトリ全体が複製されるのはドメインにドメインコントローラを追加したときのみであり,それ以降は個々のオブジェクトや属性を単位として複製される。

Fig.8 同一ドメインと異なるドメインの複製
fig08.gif

 ところで,ドメインネーミングコンテキストはフォレスト内のドメイン間で共有されないので,ここで1つの問題が生じる。この状態では,フォレスト全体から特定のオブジェクトを検索することができないのである(どうしても実現したいとなったら,検索したいオブジェクトがあるたびに,フォレスト内の各ドメインに総当たりで検索を試みなければならない。いうまでもないが,このような方法では効率が悪すぎる)。

 そこで必要になるのが,グローバルカタログサーバーである。グローバルカタログとは,ディレクトリ全体に対するインデックスの役割を果たすディレクトリのサブセットであり,グローバルカタログを提供する特殊なドメインコントローラを「グローバルカタログサーバー」と呼ぶ。デフォルトでは,ルートドメインの最初のドメインコントローラがグローバルカタログサーバーとなる。グローバルカタログサーバーには,サーバー自身が属するドメインの完全な複製と,フォレスト内の部分的複製(フォレスト内の全オブジェクトの情報と属性の一部)が格納されている。つまり,グローバルカタログサーバーだけは,構成ネーミングコンテキストやスキーマネーミングコンテキストともに,各ドメインのオブジェクトとその属性の情報を複製しているのである。

Fig.9 ドメインの情報とグローバルカタログ
fig09.gif
prevpg.gif Directory design 12/18 nextpg.gif