Как известно, доменные службы Active Directory – это центральное хранилище всех объектов и соответствующих им атрибутов в организации. База данных Active Directory имеет иерархическую структуру, и она способна вмещать миллионы объектов. По умолчанию в домене Active Directory все контроллеры доменов являются равноправными, то есть все контроллеры домена, кроме контроллеров домена только для чтения RODC могут записывать изменения в базу данных и реплицировать все эти изменения на другие контроллеры домена. Такая топология называется репликацией с множеством равноправных участников (Multimaster), которая хорошо работает для большинства операций, но определённые операции все же должны выполняться на отдельном уполномоченном сервере. В Active Directory, контролеры домена, которые выполняют особую роль, называются мастерами, или хозяевами операций. По сути, другие контроллеры домена также могут выполнять эту роль, но она назначается лишь одному контроллеру домена. На такие контроллеры домена добавляется гибкая роль FXMO (Flexible Single-Master Operations), которая произносится как fizz-mo. Некий ограниченный набор операций нельзя выполнять в различных местах одновременно, а можно лишь на одном контроллере в домене или лесу. Использование операций с единственным мастером предотвращает возникновение конфликтных ситуаций в тех случаях, когда мастер операции отключен. Мастер роли FSMO должен быть доступен в то время, когда на уровне домена или леса выполняются зависящие от него действия. Доменные службы Active Directory содержат пять ролей мастеров операций, которые могут быть определены во время установки контроллера домена Active Directory. Для всего леса определены две роли: мастер именования доменов и мастер схемы, а в каждом домене предусмотрены три роли: мастер относительного идентификатора RID, мастер инфраструктуры, а также эмулятор главного контроллера домена PDC. Стоит обратить внимание на то, что в каждом лесе может быть только одна из ролей леса мастеров операций. Причем, когда устанавливается первый контроллер домена Active Directory в лесе, ему будут добавлены все пять ролей, а при создании нового домена в существующем лесу, новому контроллеру домена присваиваются три роли уровня домена. Количество ролей FSMO в лесу и число потенциальных владельцев этих ролей можно рассчитать по формуле «(количество доменов * 3) + 2».
Например, если у вас есть лес Active Directory с тремя доменами, где есть дочерний и внучатый домен, то такой лес будет содержать 11 ролей FSMO, то есть: одного мастера схемы, одного мастера именования доменов, три эмулятора PDC (для основного, дочернего и внучатого домена по одной роли), три хозяина RID для каждого домена, а также три мастера инфраструктуры для каждого домена.
По умолчанию, мастер установки контроллера домена Active Directory выполняет первоначальное размещение ролей на контроллерах домена. Для доменов, которые содержат небольшое количество контроллеров домена, такое решение является оптимальным вариантом. Но в том случае, если ваша организация насчитывает большое количество контроллеров доменов, вам предстоит спроектировать оптимальное размещение мастеров операций среди контроллеров домена в вашей организации. В этой статье будут рассмотрены все пять ролей FSMO.
Роль мастера схемы
Контроллер домена, выполняющий роль мастера схемы, отвечает за внесение всех изменений в схему леса и является единственным контроллером домена, который располагает разрешением записи в схему каталогов. Все остальные контроллеры домена содержат только реплики схемы с правом только для чтения. Схема определяет каждый класс и атрибут, который может храниться в доменных службах Active Directory. Все объекты являются экземплярами класса, и, прежде чем создавать какой-либо объект, следует определить его класс. Для каждого леса существует лишь одна схема, и она реплицируется на каждый контроллер домена в лесе. Установки приложений, которые модифицируют схему и ручную модификацию схемы желательно выполнять на контроллере домена, который управляет данной ролью. Для внесения изменений администратор должен подключиться к мастеру схемы и должен входить в группу безопасности «Администраторы схемы». При попытке модификации схемы не на контроллере домена, выполняющем роль мастера схемы, действие обычно завершается отказом и вам нужно после внесения изменений в схеме переслать их на контроллер домена с ролью мастера схемы. После того как изменения в схему будут внесены, обновление схемы реплицируется на остальные контроллеры домена.
Роль мастера схемы присваивается первому контроллеру домена, который устанавливается в лесу и эту роль желательно размещать вместе с ролью мастера именования доменов на одном контроллере домена. Несмотря на рекомендации, вы можете в любое время переместить эту роль на любой контроллер домена при помощи оснастки «Схема Active Directory» или посредством утилиты командной строки Ntdsutil. Идентифицируется мастер схемы значением атрибута fSMORoleOwner корневого объекта раздела схемы.
Роль мастера именования доменов
Контроллер домена, который содержит роль мастера именования доменов, используется для управления добавлением и удалением всех разделов и иерархии леса. Мастер именования доменов должен быть доступен при добавлении или удалении домена, иначе при выполнении соответствующей операции возникнут ошибки. Контроллер домена с ролью мастера именования доменов в большинстве случаев предназначен для выполнения следующих четырех операций:
Добавление и удаление доменов. Вы имеете право добавлять новый домен только на контроллере домена, который содержит роль именования доменов. Во время использования мастера установки Active Directory, в процессе создания или удаления дочернего домена мастер установки обращается к мастеру именования доменов и запрашивает добавление или удаление. Мастер именования доменов обеспечивает уникальность доменных имен. В том случае, если мастер именования доменов будет недоступен, вы не сможете добавлять или удалять домены в лесе;
Добавление и удаление объектов перекрестных ссылок. Во время создания первого контроллера домена в новом лесу создаются разделы каталога схемы, конфигурации и домена. В это время, для каждого раздела каталогов в контейнере Partitions раздела конфигурации (CN=partitions,CN=configuration,DC=forestRootDomain) создается объект перекрестных ссылок (класс crossRef). При создании каждого последующего домена или раздела каталога приложений, инициируется создание объекта перекрестных ссылок в контейнере Partitions. Помимо автоматического процесса создания объектов перекрестных ссылок, вы можете создать такие объекты вручную. Объект перекрестных ссылок определяет имена сервера, и расположение каждого раздела каталога в лесу. Для создания новых объектов перекрестных ссылок используются запросы LDAP. В том случае, если мастер именования доменов недоступен, вы не сможете добавлять или удалять объекты перекрестных ссылок;
Добавление и удаление разделов каталогов приложений. Разделами каталогов приложений называются специальные разделы, которые вы можете создавать на контроллерах домена Windows Server 2003, Windows Server 2008 или Windows Server 2008 R2 для обеспечения хранилища динамических данных приложений LDAP. В лесу Windows Server 2000 не доменные данные ограничиваются конфигурацией и данными схемы, которые реплицируются на все контроллеры домена в лесу. В лесу Windows Server 2003/2008 и 2008R2, разделы каталога приложений обеспечивают хранение на контроллере домена специфических данных приложений, которые могут быть воспроизведены на любом контроллере домена в лесу. Если контроллер домена, управляющий ролью именования доменов недоступен, вы не сможете добавлять или удалять разделы каталогов в лесу;
Подтверждение инструкций переименования доменов. При использовании утилиты Rendom.exe, которая предназначена для переименования доменов, для того чтобы переименовать домен, утилита должна иметь доступ к мастеру именования доменов. Помимо вышеперечисленных возможностей, мастер именования доменов также отвечает за подтверждение инструкций переименования доменов. При запуске указанного средства, на контроллере домена с ролью мастера именования доменов, в атрибут msDS-UpdateScript объекта контейнера Partitions (CN=partitions,CN=configuration,DC=forestRootDomain) раздела каталогов Configuration записывается XML-сценарий, содержащий инструкции переименования доменов. Стоит помнить, что контейнер Partitions можно обновлять только на контроллере домена, который содержит роль мастера именования доменов. В дополнение к значению атрибута msDS-UpdateScript, утилита Rendom.exe записывает новое DNS-имя каждого переименованного домена в атрибут msDS-DnsRootAlias объекта перекрестной ссылки (класс crossRef), соответствующего этому домену. Опять же, поскольку объект перекрестной ссылки хранится в контейнере Partitrions, данный объект может обновляться только на контроллере домена с ролью мастера именования доменов. Измененные данные атрибутов msDS-UpdateScript и msDS-DnsRootAlias реплицируются на все контролеры домена в лесу.
По умолчанию, роль мастера именования доменов получает первый контроллер домена в новом лесу, но вы в любой момент можете переместить данную роль при помощи оснастки «Active Directory – домены и доверие» или утилиты командной строки Ntdsutil.exe. Не стоит забывать о том, что рекомендуется расположить на одном контроллере домена роли мастера схемы и мастера именования доменов. Контроллер домена, которому присвоена роль мастера именования доменов, должен одновременно являться сервером глобального каталога. В противном случае некоторые операции могут завершиться неудачно. Идентифицируется мастер схемы значением атрибута fSMORoleOwner в контейнере Partitions.
Роль мастера RID
Мастер относительных идентификаторов (RID) – это роль мастера операций для домена, которая используется для управления пулом идентификаторов RID с целью генерирования идентификаторов безопасности (SID) для таких принципалов безопасности как пользователи, группы и компьютеры. Идентификатор SID принципала безопасности должен быть уникальным для всего домена, поэтому каждому принципалу безопасности присваивается уникальный идентификатор безопасности SID, который содержит идентификатор домена и относительный идентификатор RID, который является уникальным для каждого принципала безопасности. Во всех идентификаторах SID присутствуют четыре различных элемента. Например, элементы идентификатора S-1-5-Y1-Y2-Y3-Y4 предоставлены в следующей таблице:
Элемент идентификатора SID
Описание
S1
Указывает ревизию SID. В настоящее время для SID используется только одна ревизия
5
Указывает центр выдачи принципала безопасности. Значение 5 всегда указывается для доменов Windows NT, Windows 2000, Windows 2003, Windows 2008 и Windows 2008 R2.
Y1-Y2-Y3
Часть идентификатора SID домена. Для принципалов безопасности, созданных в домене этот элемент идентификатора идентичен
Y4
Относительный идентификатор (RID) для домена, который представляет имя пользователя или группы. Этот элемент генерируется из пула RID на контроллере домена во время создания объекта
Так как принципалы безопасности может создавать любой контроллер домена, необходим механизм, гарантирующий уникальность SID-идентификаторов, генерируемых контроллером домена и поэтому мастер RID следит за тем, чтобы два контроллера домена не назначали одинаковые идентификаторы RID. Мастер RID присваивает блок относительных идентификаторов RID, которые называются пулом RID, каждому контроллеру в домене. Другими словами, мастер операций RID отвечает за поддержку пула относительных идентификаторов для использования контроллеров домена в домене и предоставления групп относительных идентификаторов для каждого контроллера домена. Когда к домену добавляется новый контроллер домена, мастер RID назначает этому контроллеру домена пул из 500 относительных запросов RID. Каждый раз, когда на контроллере домена создается новый принципал безопасности, для присвоения идентификатора новому объекту, контроллер домена назначает относительный идентификатор из своего пула. Когда число относительных идентификаторов RID в этом RID-пуле на любом контроллере домена опускается ниже 100, мастер RID выполняет запрос еще одного блока RID. Выполнив запрос, мастер RID назначает контроллеру домена еще один пул из 500 относительных идентификаторов RID.
На самом деле мастер RID не ведет счет номеров пула, а обслуживает высшее значение последнего выделенного диапазона. При получении нового запроса, увеличивается значение нового пула на единицу и 499 новых значений. После этого два значения отправляются запрашиваемому контроллеру домена для использования новых относительных идентификаторов RID. Если локальный пул RID контроллера домена пуст или мастер RID в течение некоторого времени недоступен, процесс создания учетных записей на некоторых контроллерах домена может прерваться и в журнале событий этого контроллера домена будет записано событие с кодом 16645. Этот код ошибки указывает на то, что присвоен максимальный идентификатор учетной записи из выделенных на контроллер домена и контроллер домена не смог получить новый пул идентификаторов от мастера RID. Таким же образом, при добавлении нового объекта в домен будет создано событие с кодом 16650, указывающее на то, что объект не может быть создан, так как служба каталогов не смогла выделить относительный идентификатор. Механизм запрашивания нового блока идентификаторов RID предназначен для предотвращения таких прерываний, поскольку запрос выполняется перед исчерпыванием всех доступных RID идентификаторов в пуле. Чтобы включить процесс создания учетных записей заново, нужно либо подключить к сети контролер домена, который управляет ролью мастера RID, либо переместить эту роль еще на один контроллер домена.
Миграция объектов Active Directory из одного домена в другой также требует наличия мастера RID. Вы можете перемещать объект из одного домена в другой только в случае доступности мастера RID. Мастер RID при миграции объекта предотвращает создание двух объектов в разных доменах с одним и тем же идентификатором. По умолчанию, роль мастера RID получает первый контроллер домена, установленный в лесе. Вы можете в любое время переместить эту роль при помощи оснастки «Active Directory – пользователи и компьютеры» или средствами утилиты Ntdsutil.exe. Мастер RID идентифицируется значением атрибута fSMORoleOwner в объекте класса rIDManager в разделе Domain.
Роль эмулятора PDC
Эмулятор PDC (главного контроллера домена – Primary Domain Controller) выполняет функции основного контроллера домена для обеспечения совместимости с операционными системами ниже Windows 2000. Во времена контроллеров домена Windows NT 4.0 изменения в каталог могли вносить лишь главные контроллера домена PDC. Прежние инструменты, клиенты и утилиты, поддерживающие Windows NT 4.0, не рассчитаны на то, что все контроллеры домена Active Directory могут выполнять запись в каталог, и поэтому требуют подключения к PDC. Контроллер домена с ролью PDC-эмулятора регистрирует себя как главный контроллер домена PRC, чтобы низкоуровневые приложения могли локализовать пишущий контроллер домена. Несмотря на то, что в наше время сервера и клиентские компьютеры с операционными системами ниже Windows 2000 встретить практически невозможно, эмулятор PDC все еще остается важнейшей ролью мастеров операций. Эмулятор PDC выполняет следующие важные функции:
Участие в репликации обновлений паролей домена. При изменении или сбросе пароля пользователя, контроллер домена, вносящий изменения, реплицирует это изменение на PDC-эмулятор посредством срочной репликации. Эта репликация гарантирует, что контролеры домена быстро узнают измененный пароль. В том случае, если пользователь пытается войти в систему сразу после изменения пароля, контроллер домена, отвечающий на этот запрос, может еще не знать новый пароль. Перед тем как отклонить попытку входа, этот контроллер домена направляет запрос проверки подлинности на PDC-эмулятор, который проверяет корректность нового пароля и указывает контроллеру домена принять запрос входа. Это означает, что каждый раз при вводе пользователем неправильного пароля проверка подлинности направляется на PDC-эмулятор для получения окончательного заключения;
Управление обновлениями групповой политики в домене. Как вы знаете, для управления большинства настройками в конфигурации компьютеров и пользователей вашей организации применяются групповые политики. В том случае, если объект групповой политики модифицируется на двух контроллерах домена приблизительно в одинаковое время, то впоследствии, могут возникать конфликты между двумя версиями, которые не разрешаются при репликации объектов групповых политик. Во избежание таких конфликтов, PDC-эмулятор действует следующим образом: при открытии объекта групповой политики, оснастка редактора управления групповой политики привязывается к контроллеру домена, выполняющего роль PDC и все изменения объектов GPO по умолчанию вносятся на PDC-эмулятор;
Выполнение функции центрального браузера домена. Для обнаружения сетевых ресурсов клиенты используют Active Directory. При открытии окна «Сеть» в операционной системе отображается список рабочих групп и доменов. После того как пользователь откроет указанную рабочую группу или домен он сможет увидеть список компьютеров. Эти списки генерируются посредством службы обозревателя, и в каждом сетевом сегменте ведущий обозреватель создает список просмотра с рабочими группами, доменами и серверами данного сегмента. После чего центральный обозреватель объединяет списки всех ведущих обозревателей для того, чтобы клиентские машины могли просмотреть весь список просмотра;
Обеспечение главного источника времени домена. Так как службы Active Directory, Kerberos, DFS-R и служба репликации файлов FRS используют штампы времени, во всех системах домена необходима синхронизация времени. PDC-эмулятор в корневом домене леса служит ведущим источником времени всего леса. Остальные контроллеры домена синхронизируют время с PDC-эмулятором, а клиентские компьютеры – со своими контроллерами доменов. Гарантию за соответствие времени несет иерархическая служба синхронизации, которая реализована в службе Win32Time.
По умолчанию, роль мастера эмулятора PDC получает первый контроллер домена, установленный в лесе. Вы можете в любое время переместить эту роль при помощи оснастки «Active Directory – пользователи и компьютеры» или средствами утилиты Ntdsutil.exe. Мастер эмулятора PDC идентифицируется значением атрибута fSMORoleOwner в объекте класса rIDManager в корневом объекте раздела Domain.
Роль мастера инфраструктуры
В организациях, основанных на множестве доменов, объекты в одних доменах часто ссылаются на объекты в других. Мастер инфраструктуры подобен устройству, которое отслеживает членов группы из доменов. Мастер инфраструктуры отвечает за обновление ссылок «группа - пользователь» между доменами, тем самым обеспечивая отражение изменений имен объектов в информации о членствах в группах, локализованных в домене. Мастер инфраструктуры поддерживает обновляемый список таких ссылок, а затем реплицирует эту информацию на все контроллеры в домене. В том случае, если мастер инфраструктуры недоступен, ссылки «группа - пользователь» между доменами не будут обновляться. Периодически мастер инфраструктуры сканирует учетные записи домена и проверяет членство в группах. Если учетная запись пользователя перемещается на новый домен, мастер инфраструктуры идентифицирует новый домен учетной записи пользователя и соответствующим образом обновляет группы.
Стоит обратить внимание на то, что роль мастера инфраструктуры не должна выполняться контролером домена, который является сервером глобального каталога. В противном случае мастер инфраструктуры не будет обновлять сведения об объектах, так как он не содержит ссылок на объекты, которые не хранит. Это обусловливается тем, что сервер глобального каталога хранит частичные реплики всех объектов в лесу. В результате междоменные объектные ссылки в этом домене обновляться не будут, а в журнале событий данного контроллера домена появится соответствующее предупреждение. По умолчанию, роль мастера инфраструктуры получает первый контроллер домена, установленный в лесе. Вы можете в любое время переместить эту роль при помощи оснастки «Active Directory – пользователи и компьютеры» или средствами утилиты Ntdsutil.exe. Мастер инфраструктуры идентифицируется значением атрибута fSMORoleOwner в контейнере Infrastructure в разделе Domain.
Размещение и перемещение ролей мастеров операций
Как уже было указано выше, при создании первого контроллера домена корневого домена леса, на этот контроллер домена добавляются все пять ролей мастеров операций. По мере добавления контроллеров домена вы можете переносить роли хозяев операций на другие контроллеры домена для балансировки нагрузки среди контроллеров домена и оптимизации размещения отдельных мастеров операций. Для того чтобы определиться с размещением ролей мастеров операций, вам следует руководствоваться следующими рекомендациями:
Размещайте роли мастера RID и PDC-эмулятора на одном контроллере домена. Совместное размещение этих ролей мастеров операций обусловлено соображениями балансировки нагрузки. Поскольку эти роли прямые партнеры по репликации, разместив эти роли на отдельных контроллерах домена, вам придется для этих двух систем устанавливать быстрое подключение и в Active Directory для них создавать явные объекты. Помимо этого, если у вас в организации присутствуют сервера, играющие роли резервных мастеров операций, на таких серверах эти роли также обязаны быть прямыми партнерами;
Размещайте роли мастеров схемы и именования доменов на одном контроллере домена. Как правило, роли мастера схемы и мастера именования доменов рекомендуется размещать на одном контроллере домена, который служит сервером глобального каталога. Роль мастера именования доменов, должна одновременно являться сервером глобального каталога, потому что при добавлении нового домена, мастер должен гарантировать, что в лесу нет объекта с тем же именем, что и у нового добавляемого домена. В связи с тем, что эти роли используются реже всего, вы должны проследить за тем, что контроллер домена, который ими управляет, максимально защищен;
Роль мастера инфраструктуры должна размещаться на контроллере домена, который не служит сервером глобального каталога. Обычно мастер инфраструктуры должен разворачиваться на контроллере домена, который не служит сервером глобального каталога, но имеет объект прямого подключения к одному из глобальных каталогов в лесу. Так как сервер глобального каталога хранит частичные реплики всех объектов в лесу, хозяин инфраструктуры, размещенный на сервере глобального каталога, не будет выполнять обновления, потому что он не содержит ссылок на объекты, которые не хранит. Но если лес состоит из единственного домена, то роль мастера бездействует и его можно разместить на любом контроллере домена, независимо от того, является ли этот контроллер домена сервером глобального каталога.
Чаще всего перенос ролей мастеров операций осуществляется по мере добавления контроллеров домена для распределения нагрузки, исключения возможных точек сбоя и повышения производительности. Также целесообразно перемещать роли мастеров операций в том случае, если вы планируете отключать контроллер домена от сети, который выполняет роль мастера операций. Также, если вы выводите контроллер домена, выполняющий роль мастера операций из эксплуатации, мастер установки попробует перенести роли в автоматическом режиме. При переносе роли мастера операций текущий и новый мастер отключаются от сети. Переносится маркер и новый мастер операций немедленно выполняет перенесенную роль, а прежний мастер моментально перестает ее выполнять. Переносится роль мастера операций обычно следующим методом: открывается административный инструмент, определяющий текущего мастера, после этого нужно подключиться к контроллеру домена, на который будет перенесена роль и затем роль переносится на контроллер домена, к которому вы подключены.