Active Directory ドメイン サービスとは、組織でシステム管理者が、組織内のユーザーやリソースを管理するためのサービスです。Active Directory ドメイン サービスに関する仕組みの概要については、以下の記事で紹介しています。
Active Directory ドメイン サービスとは、組織でシステム管理者が、組織内のユーザーやリソースを管理するためのサービスです。 Active Directory は Windows 2000 Server から標準で導入されてお[…]
Active Directory ドメイン サービスの機能において管理している単位をドメインと呼びます。ドメインを管理するコンピューターのことをドメイン コントローラーと呼びます。コンピューターに “Active Directory ドメイン サービス” の役割をインストールして、ドメイン コントローラーにすると(=昇格するという表現を使います)、ドメイン内の情報を管理できるようになります。
ドメイン コントローラーが管理する各データは、主に AD データベースと SYSVOL の 2 つで管理されています。
今回は、ドメイン コントローラーが管理するデータ構造について紹介します。
ドメイン コントローラーのデータ構成
Windows Server OS に “Active Directory ドメイン サービス” の役割をインストールして、ドメイン コントローラーに昇格すると、その端末でドメイン内のリソースを管理できるようになります。ドメイン コントローラーに昇格すると、以下の 2 つのデータ保存領域が自動生成され、ドメイン内のリソースに関するデータを保持します。
- AD データベース
- SYSVOL
AD データベースと SYSVOL の各データ保存領域にて、管理されるドメインのデータは異なります。
Windows Server OS がワークグループの時は、ローカル ユーザーやグループの情報を保持しています。ただし、端末をドメイン コントローラーへ昇格させた後は、ローカル データベースは削除され、これまでローカルで管理していたローカル ユーザーや グループも存在しなくなります。
その代わりに、AD データベースが作成され、その中にドメイン ユーザーやその他のオブジェクトが生成されるという動作になります。ドメイン コントローラーへログオンする時は、ドメイン コントローラーにはローカル ユーザーは存在しないため、昇格後にはドメイン ユーザーでログオンするという動作になります。(※注:最初の 1 台目のドメイン コントローラーの昇格においては、ローカル ユーザーとグループと同じ名前をもつドメイン ユーザーとグループが自動で作成された上で、ローカル データベースが削除されます)
AD データベースと SYSVOL
ドメイン コントローラーには “AD データベース” と “SYSVOL” という 2 つのデータを保管する領域が作成され、各データではそれぞれ以下のようなデータを管理しております。
ドメイン コントローラーに昇格すると、既定で C:\Windows\NTDS というフォルダに AD データベース (ntds.dit) が作成されます。この AD データベース上に、ドメイン ユーザーやグループ、コンピューター アカウントなど、ドメインの管理に必要な各種オブジェクトの情報が管理されています。また、同じフォルダ(C:\Windows\NTDS) に、AD データベースのログファイルも保存されます。
また、ドメイン コントローラーに昇格した時に、既定で C:\Windows\SYSVOL というフォルダに、SYSVOL(Domain System Volume の略)が作成されます。SYSVOL には、グループ ポリシーと呼ばれる、ドメインに参加している各コンピューター端末にシステム設定を配布する設定情報に関するデータが管理されています。この SYSVOL フォルダは共有フォルダとして公開されており、ドメインに参加している各コンピューター端末は \\<ドメイン名>\SYSVOL の共有パスにアクセスすることにより、設定を参照して自身の端末に設定を反映します。
Windows OS では、ローカルのシステム設定を行える、ローカル グループ ポリシー(LGPO)が存在します。LGPO はあくまで、そのコンピューター端末のみの設定を変更するためのポリシーとなり、ポリシーの保存場所は C:\Windows\System32\SYSVOL となります。こちらは、ドメイン グループ ポリシーとは別物となり、Windows Server OS の端末をドメイン コントローラーに昇格したとしても、その端末の個別のシステム設定を行うポリシーとして残り続けます。
ドメイン コントローラー間のデータ複製について
ドメイン コントローラーはドメインを管理する大切な役割を担っているサーバーであるため、ドメイン内に複数のドメイン コントローラーを構築して冗長性をもたせることができます。もし、何らかの障害によって一部のドメイン コントローラーが利用不可な状態となってしまったとしても、ドメインとしての機能を維持することが可能です。
ドメイン コントローラーはドメインを管理するコンピューターであるため、複数台のドメイン コントローラーが構築されているドメイン環境において、全てのドメイン コントローラーにおいて、同じデータを保持している状態である必要があります。
そのため、ドメイン コントローラーの間では AD データベース、SYSVOL のそれぞれのデータを複製し、全てのドメイン コントローラーが同じデータを保持しておけるように、ドメイン コントローラー間でデータを複製しております。ドメイン コントローラーで管理するデータ(AD データベース/SYSVOL)の複製の仕組みは「マルチマスター レプリケーション」で行われます。
AD データベースのパーティション
AD データベースでは「パーティション」と呼ばれる単位で、データの格納領域が区切られています。AD データベースをパーティションで区切って、管理するデータを分けている理由は、データの複製範囲を分けるためです。
AD データベースには以下のようなパーティションが存在していますが、各パーティションの複製範囲はそれぞれ異なります。
パーティション名 | 複製範囲 |
ドメイン パーティション |
ドメイン内のすべてのドメイン コントローラー |
構成パーティション |
フォレスト内のすべてのドメイン コントローラー |
スキーマ パーティション | フォレスト内のすべてのドメイン コントローラー |
アプリケーション パーティション | アプリケーション パーティションを利用するアプリケーションの実装に依存 |
グローバル カタログ |
グローバル カタログの役割をもったドメイン コントローラー |
上記の通り、ドメイン内のドメイン コントローラーでしかデータを複製しないパーティションもあれば、ドメインが異なっていたとしても、フォレスト内の全てのドメイン コントローラーでデータを複製するパーティションもあります。これは、ドメイン固有の情報であれば、ドメイン内でのみ情報を共有していれば問題なく、逆に、フォレスト全体で共有しておいた方がよい情報は、フォレスト単位で情報を共有する方がよいためです。つまり、AD で管理されるデータの性質によって、そのデータが管理されるパーティションが異なってきます。
ドメイン パーティション
構成パーティション
スキーマ パーティション
アプリケーション パーティション
パーティション名 | 複製範囲 |
ForestDnsZones | フォレスト内の DNS が構築された全てのドメイン コントローラー |
DomainDnsZones |
ドメイン内の DNS が構築された全てのドメイン コントローラー |
フォレスト ルート ドメインが構築されたタイミングにて、ForestDnsZones のパーティションに _msdcs.<フォレスト ルート ドメイン名> という名前のゾーンが作成されます。また、DomainDnsZones のパーティションに、ドメイン名の名前のゾーンが作成されます。
グローバル カタログ
グローバル カタログの情報は、グローバル カタログの役割をもつ同じドメインのドメイン コントローラー間で複製されます。
補足:グローバル カタログとは?
各ドメイン コントローラーが保持するパーティション
contoso.com の DC |
構成パーティション スキーマ パーティション contoso.com のドメイン パーティション |
contoso.com の DC / GC |
構成パーティション スキーマ パーティション contoso.com のドメイン パーティション sub.contoso.com のドメイン パーティションの一部 child.contoso.com のドメイン パーティションの一部 |
contoso.com の DC / DNS |
構成パーティション スキーマ パーティション contoso.com のドメイン パーティション ForestDnsZones のアプリケーション パーティション contoso.com の DomainDnsZones のアプリケーション パーティション |
contoso.com の DC / GC / DNS |
構成パーティション スキーマ パーティション contoso.com のドメイン パーティション sub.contoso.com のドメイン パーティションの一部 child.contoso.com のドメイン パーティションの一部 ForestDnsZones のアプリケーション パーティション contoso.com の DomainDnsZones のアプリケーション パーティション |
sub.contoso.com の DC |
構成パーティション スキーマ パーティション sub.contoso.com のドメイン パーティション |
sub.contoso.com の DC / GC |
構成パーティション スキーマ パーティション sub.contoso.com のドメイン パーティション contoso.com のドメイン パーティションの一部 child.contoso.com のドメイン パーティションの一部 |
sub.contoso.com の DC / DNS |
構成パーティション スキーマ パーティション sub.contoso.com のドメイン パーティション ForestDnsZones のアプリケーション パーティション sub.contoso.com の DomainDnsZones のアプリケーション パーティション |
sub.contoso.com の DC / GC / DNS |
構成パーティション スキーマ パーティション sub.contoso.com のドメイン パーティション contoso.com のドメイン パーティションの一部 child.contoso.com のドメイン パーティションの一部 ForestDnsZones のアプリケーション パーティション sub.contoso.com の DomainDnsZones のアプリケーション パーティション |
child.contoso.com の DC |
構成パーティション スキーマ パーティション child.contoso.com のドメイン パーティション |
child.contoso.com の DC / GC |
構成パーティション スキーマ パーティション child.contoso.com のドメイン パーティション contoso.com のドメイン パーティションの一部 sub.contoso.com のドメイン パーティションの一部 |
child.contoso.com の DC / DNS |
構成パーティション スキーマ パーティション child.contoso.com のドメイン パーティション ForestDnsZones のアプリケーション パーティション child.contoso.com の DomainDnsZones のアプリケーション パーティション |
child.contoso.com の DC / GC / DNS |
構成パーティション スキーマ パーティション child.contoso.com のドメイン パーティション contoso.com のドメイン パーティションの一部 sub.contoso.com のドメイン パーティションの一部 ForestDnsZones のアプリケーション パーティション child.contoso.com の DomainDnsZones のアプリケーション パーティション |