Администрирование ролей FSMO

Пакет inno-samba поддерживает назначение контроллерам домена ролей FSMO и предоставляет инструменты для работы с ними.

Общие сведения

Для большинства объектов в службе каталогов изменения могут выполняться на любом контроллере домена, хранящем реплику раздела каталога, к которому относится изменяемый объект. Внесенные изменения распространяются на остальные контроллеры домена в процессе репликации. Конфликты, возникающие при одновременном изменении одного и того же объекта на разных контроллерах домена, разрешаются в пользу последнего по времени изменения. При этом остальные изменения игнорируются или обрабатываются вручную.

Эта стратегия не подходит для некоторых групп объектов. В этом случае для исключения возможности возникновения конфликтов операции по изменению данных сначала выполняются на одном специально выделенном для этого контроллере домена, а затем реплицируются на все остальные контроллеры в пределах домена или леса.

Для управления такими операциями используется механизм ролей FSMO (Flexible Single Master Operation), обеспечивающих уникальность исполнителя.

Роль FSMO — набор объектов, которые в каждый конкретный момент времени могут изменяться только в рамках одной реплики раздела каталога. Контроллер домена, на котором находится такая реплика, является владельцем данной роли FSMO.

В реплике роль FSMO представлена отдельным объектом, который через атрибут fSMORoleOwner ссылается на процесс агента службы каталогов (Directory Service Agent, DSA), работающий на сервере — владельце роли.

При получении запроса на изменение объекта, относящегося к области действия определенной роли FSMO, контроллер домена, не имеющий требуемой роли, перенаправляет запрос на контроллер домена, указанный в атрибуте fSMORoleOwner объекта FSMO роли в реплике соответствующего раздела каталога.

В службе каталогов используются следующие роли FSMO:

Дополнительно создается роль владельца инфраструктуры для каждого раздела приложений, а также следующие роли для работы с зонами DNS:

  • владелец зон DNS леса (Forest DNS Zone Master) — один на лес (размещение в службе каталогов: CN=Infrastructure,DC=ForestDnsZones,DC=<корневой домен леса>,DC=<домен верхнего уровня>);

  • владелец зон DNS домена (Domain DNS Zone Master) — один на домен (размещение в службе каталогов: CN=Infrastructure,DC=DomainDnsZones,DC=<корневой домен леса>,DC=<домен верхнего уровня>).

Владелец схемы (Schema Master)

Контроллер домена с ролью Schema Master обрабатывает изменения, вносимые в схему каталога на уровне леса. Изменения могут вноситься только на этом контроллере, после чего они реплицируются на остальные контроллеры домена.

Таким образом, контроллер домена с ролью Schema Master должен быть доступен при внесении изменений в схему каталога.

Владелец доменных имен (Domain Naming Master)

Контроллер домена с ролью Domain Naming Master обрабатывает изменения, вносимые в пространство доменных имен на уровне леса каталога, включая добавление в лес и удаление из него доменов, установление доверия с внешними каталогами, добавление в каталог и удаление из него разделов приложений. Изменения могут вноситься только на этом контроллере, после чего они реплицируются на остальные контроллеры домена.

Таким образом, контроллер домена с ролью Domain Naming Master должен быть доступен при установлении доверительных отношений с внешними каталогами, а также добавлении в лес и удалении из него доменов и разделов приложений.

Эмулятор первичного (основного) контроллера домена (PDC Emulator)

Контроллер домена с ролью PDC Emulator выполняет следующие функции:

  • сервер точного времени;

    Для аутентификации по протоколу Kerberos требуется точная синхронизация времени. Все клиенты в домене синхронизируют свое время с временем контроллера домена с ролью PDC Emulator.

    При наличии нескольких доменов сервер с ролью PDC Emulator каждого домена синхронизирует свое время с временем сервера с ролью PDC Emulator в корневом домене леса AD, который в свою очередь настраивается для получения времени из внешнего источника.

  • приоритетная репликация результатов операций по смене пароля, выполняемых на других контроллерах в домене;

    Если сервер с ролью PDC Emulator недоступен, данные о смене паролей реплицируются на все контроллеры в домене, но для этого требуется больше времени.

  • обработка блокировок учетных записей;

    На сервер с ролью PDC Emulator передается информация о неудачных попытках аутентификации со всех контроллеров в домене перед отображением соответствующих сообщений пользователям. Сервер выполняет блокировку учетных записей в соответствии с настроенными в домене политиками.

  • внесение изменений в групповые политики в домене.

Если контроллер домена с данной ролью используется клиентами для синхронизации времени, его доступность является обязательным условием корректной работы Kerberos. Если для синхронизации времени клиенты используют другой источник, временное отсутствие сервера с ролью PDC Emulator в домене не является критическим.

Для определения в домене сервера с ролью PDC Emulator используйте следующую команду:

host -t SRV _ldap._tcp.pdc._msdcs.<domain>

Владелец относительных идентификаторов (RID Master)

Владелец роли RID Master выполняет следующие функции:

  • выделяет пулы относительных идентификаторов (RID) в ответ на запросы контроллеров домена;

  • обеспечивает перемещение объектов в домен и из него.

Всем объектам безопасности (например, учетным записям компьютеров и пользователей, группам) присваиваются идентификаторы безопасности (SID), состоящие из двух частей:

  • идентификатор безопасности (SID) домена, который является одинаковым для всех объектов внутри домена;

  • относительный идентификатор (RID), который является уникальным внутри домена.

В следующем примере цифры 1121 — это относительный идентификатор (RID) объекта внутри домена:

  • SID домена: S-1-5-21-3134998938-619743855-3616620706;

  • SID объекта (учетной записи пользователя или компьютера, группы и т. п.) внутри домена: S-1-5-21-3134998938-619743855-3616620706-1121.

За каждым контроллером домена закрепляется определенный пул относительных идентификаторов (RID), которые могут присваиваться объектам безопасности при их создании внутри домена. Пул составляет 500 уникальных относительных идентификаторов.

При использовании пула на 50% контроллер домена обращается к владельцу роли RID Master с запросом на выделение нового диапазона относительных идентификаторов.

Контроллер домена с ролью RID Master должен быть доступен в следующих случаях:

  • добавление нового контроллера домена для выделения ему пула относительных идентификаторов (RID);

  • обновление пулов на существующих контроллерах домена.

При недоступности сервера с ролью RID Master новые объекты безопасности создаются до момента исчерпания существующих локальных пулов RID. При полном исчерпании пулов создание новых объектов становится невозможным.

Также в этом случае в домен не могут добавляться новые контроллеры.

Владелец инфраструктуры домена (Infrastructure Master)

Контроллер домена с ролью Infrastructure Master обрабатывает изменения, вносимые в идентификаторы безопасности (SID) объектов и DN-имена в междоменных ссылках на объекты (например, когда пользователь из одного домена добавляется в группу безопасности в другом домене).

Данная роль существует даже в лесу с одним доменом.

Контроллер домена с ролью Infrastructure Master должен быть доступен при внесении изменений в междоменные ссылки на объекты.

Владелец зон DNS леса (Forest DNS Zone Master)

Контроллер домена с ролью Forest DNS Zone Master координирует выполнение операций по добавлению и удалению записей уровня леса на DNS-серверах, обеспечивающих работу зоны DNS верхнего уровня. Данные записи содержат имена серверов глобального каталога.

Владелец зон DNS домена (Domain DNS Zone Master)

Контроллер домена с ролью Domain DNS Zone Master координирует выполнение операций по добавлению и удалению зон DNS на контроллерах домена, выполняющих функции DNS-серверов на уровне домена.

Рекомендации по передаче и захвату ролей FSMO

Передачу роли FSMO рекомендуется выполнять в следующих ситуациях и при соблюдении следующих условий:

  • Текущий владелец роли сохраняет работоспособность, и новый владелец роли может получить к нему доступ по сети.

  • Необходимо сместить контроллер домена, являющийся владельцем роли FSMO, с помощью операции demote и назначить роль другому контроллеру домена в лесу.

    Перед смещением требуется передать все роли FSMO от смещаемого сервера другим работающим контроллерам домена.

  • Для проведения работ по плановому обслуживанию необходимо на время отключить от сети контроллер домена, являющийся владельцем ролей FSMO. При этом в этот период планируется проводить в домене или лесу операции, которые требуют, чтобы владелец соответствующей роли был доступен.

    В этом случае необходимо передать роли FSMO другим контроллерам домена, которые будут продолжать работу. Чаще всего это касается роли эмулятора PDC. Реже — роли владельца RID, роли владельца доменных имен и роли владельца схемы.

Захват роли FSMO рекомендуется выполнять в следующих ситуациях и при соблюдении следующих условий:

  • В работе текущего владельца роли FSMO возникли проблемы, делающие невозможным успешное выполнение операций, предусмотренных данной ролью, а передать роль в штатном режиме другому контроллеру домена невозможно.

    В этом случае рекомендуется придерживаться следующей последовательности действий:

    1. Выясните, какие роли оказываются недоступны и какое влияние это может оказать на работу леса.

    2. Попытайтесь восстановить работу контроллера домена и вернуть его в сеть.

      При этом ни в коем случае не восстанавливайте контроллер из резервной копии, если в домене есть другие работающие контроллеры.

    3. Если восстановить работу контроллера домена невозможно, выполните захват закрепленных за ним ролей с передачей их работающим контроллерам и сместите вышедший из строя сервер с роли контроллера домена.

  • Требуется принудительно сместить вышедший из строя контроллер домена с помощью операции demote.

    Перед смещением требуется выполнить захват всех ролей FSMO смещаемого сервера на работающих контроллерах домена.

Следует помнить, что после передачи или захвата роли новый владелец не начинает выполнять свои функции, пока не получит копию раздела каталога, к которому относится роль, в рамках цикла входящей репликации. Это требование обусловлено тем, что новый владелец роли должен работать с актуальными данными. Также это помогает ограничить объем возможных ошибок теми изменениями, репликация которых с прежнего владельца роли на другие контроллеры домена не была завершена к моменту его выхода из строя или отключения от сети.

Оптимальным кандидатом для передачи роли является контроллер домена, соответствующий следующим критериям:

  • располагается в том же домене, что и прежний владелец роли;

  • имеет максимально актуальную доступную для записи копию раздела каталога, с которым работает роль.

Например, если требуется передать роль владельца схемы, оптимальным кандидатом при выборе нового владельца является контроллер домена, который находится в корневом домене леса в пределах того же сайта, что и текущей владелец.

Операции

Для администрирования ролей FSMO в домене Эллес с помощью утилиты samba-tool используется группа подкоманд fsmo.

При выполнении операций с помощью группы подкоманд fsmo рекомендуется указывать набор ключей -H (URI LDAP-сервера) и --use-kerberos=required.

В этом случае для успешного выполнения подкоманды:

  • либо пользователь должен работать на сервере под доменной учетной записью;

  • либо предварительно требуется запросить билет Kerberos с помощью стандартной команды kinit.

Просмотр списка текущих владельцев ролей FSMO

Операция просмотра списка владельцев ролей FSMO доступна всем пользователям.

Для просмотра списка с помощью утилиты samba-tool выполните следующую команду на любом контроллере домена:

samba-tool fsmo show
InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com
RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com
DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com
SchemaMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com
DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com
ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com

Передача роли FSMO

Операция передачи роли FSMO доступна пользователям со следующими полномочиями:

  • передача ролей уровня леса — администраторы леса (члены группы Enterprise Admins);

  • передача ролей уровня домена — администраторы домена (члены группы Domain Admins);

  • передача роли владельца схемы каталога — администраторы схемы (члены группы Schema Admins).

Для передачи роли FSMO от одного контроллера домена другому выполните следующие действия:

  1. Выполните вход на контроллер домена, которому должна быть передана роль.

  2. Выполните передачу роли с помощью следующей команды:

    samba-tool fsmo transfer --role=<role>
    FSMO transfer of '<role>' role successful

    Параметр --role может принимать следующие значения:

  3. Убедитесь, что роль передана с помощью следующей команды:

    samba-tool fsmo show

Захват роли FSMO

Операция захвата роли FSMO доступна пользователям со следующими полномочиями:

  • захват ролей уровня леса — администраторы леса (члены группы Enterprise Admins);

  • захват ролей уровня домена — администраторы домена (члены группы Domain Admins);

  • захват роли владельца схемы каталога — администраторы схемы (члены группы Schema Admins).

Для передачи роли FSMO с возможностью принудительного ее захвата выполните следующие действия:

  1. Выполните вход на контроллер домена, которому должна быть принудительно передана роль.

  2. Выполните передачу роли с помощью следующей команды:

    samba-tool fsmo seize --role=<role>
    Attempting transfer...
    Transfer unsuccessful, seizing...
    FSMO seize of '<role>' role successful

    Подкоманда может принимать следующие параметры:

  3. Убедитесь, что роль передана с помощью следующей команды:

    samba-tool fsmo show
  4. Обеспечьте невозможность подключения прежнего владельца роли к сети.

Обязательным условием успешного выполнения команды передачи или захвата ролей domaindns и forestdns является прохождение аутентификации.