Управление выдачей относительных идентификаторов
В этой статье объясняется изменение роли главного FSMO RID, включая новые функции выдачи и мониторинга в мастере RID, а также способы анализа и устранения неполадок выдачи RID.
Дополнительные сведения см. в блоге AskDS.
Управление выдачей относительных идентификаторов
По умолчанию емкость домена составляет приблизительно один миллиард субъектов безопасности, таких как пользователи, группы и компьютеры. Естественно, не существует доменов с таким количеством активно используемых объектов. Однако служба поддержки Майкрософт сталкивалась с указанными ниже ситуациями.
С помощью программного обеспечения для подготовки или сценариев администрирования случайно создавалось большое количество пользователей, групп и компьютеров.
Делегированные пользователи создавали множество неиспользуемых групп безопасности и групп рассылки.
Выполнялось понижение роли или восстановление множества контроллеров домена; очищался большой объем метаданных.
Выполнялось восстановление лесов.
Часто выполнялась операция InvalidateRidPool.
Параметр реестра, отвечающий за размер блока RID, увеличивался некорректно.
Во всех этих ситуациях используются лишние идентификаторы RID, причем часто по ошибке. Через много лет в некоторых средах идентификаторы RID заканчивались, из-за чего приходилось выполнять миграцию в новый домен или восстанавливать лес.
В Windows Server 2012 решаются проблемы, связанные с выделением идентификаторов RID, которые стали актуальны только тогда, когда среды Active Directory достигли определенного возраста. К ним относятся более эффективное ведение журнала событий, более подходящие ограничения и возможность в чрезвычайных ситуациях увеличить общий размер глобального пространства RID для домена.
Периодические предупреждения об использовании
В Windows Server 2012 реализовано отслеживание событий, связанных с глобальным пространством RID, которое позволяет своевременно получать предупреждения при достижении основных контрольных точек. Модель рассчитывает десятипроцентный уровень использования глобального пула и регистрирует в журнале событие при его достижении. Затем рассчитывается десятипроцентный уровень использования оставшегося пространства и цикл продолжается. По мере исчерпания глобального пространства RID события будут регистрироваться все чаще, так как каждый последующий десятипроцентный уровень будет достигаться быстрее (однако частота событий журнала ограничена одной записью в час). В журнал системных событий в каждом контроллере домена записывается событие предупреждения Directory-Services-SAM с кодом 16658.
Предположим, что 30-разрядное глобальное пространство RID по умолчанию— первые журналы событий при выделении пула, содержащего 107 374 182nd RID. Скорость регистрации событий увеличивается, пока не будет достигнута последняя контрольная точка на уровне 100 000 идентификаторов. Пр этом всего будет зарегистрировано 110 событий. При использовании 31-разрядного глобального пространства RID без блокировки цикл аналогичен: первое событие наступает при выделении 214 748 365 идентификаторов, а всего регистрируется 117 событий.
Внимание
Это непредвиденная ситуация: немедленно проанализируйте процессы создания пользователей, компьютеров и групп в домене. Создание более 100 миллионов объектов доменных служб Active Directory — это необычное явление.
События, связанные с недействительностью пула RID
Появились новые события, связанные с отменой локального пула RID контроллера домена. Они имеют информационный характер и вполне ожидаемы, особенно в связи с новыми функциональными возможностями виртуальных контроллеров пула. Подробные сведения о каждом событии см. в приведенном ниже списке событий.
Ограничение размера блока RID
Как правило, по запросу контроллера домена идентификаторы RID выделяются блоками по 500 идентификаторов. Это значение по умолчанию можно переопределить с помощью следующего параметра реестра REG_DWORD в контроллере домена:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\RID Values
RID Block Size
До выпуска Windows Server 2012 максимальное значение этого параметра было ограничено только его типом DWORD (максимальное значение для которого составляет 0xffffffff, или 4 294 967 295). Это значение значительно больше общего размера глобального пространства RID. Иногда администраторы по ошибке или незнанию настраивали такие значения для размера блока RID, которые приводили к быстрому исчерпанию глобального пространства RID.
В Windows Server 2012 этот параметр реестра не может быть выше 15 000 десятичных знаков (0x3A98 шестнадцатеричным). Это позволяет предотвратить непреднамеренное выделение большого количества идентификаторов RID.
Если задано значение выше 15 000, значение обрабатывается как 15 000, а событие контроллера домена регистрирует событие 16653 в журнале событий служб каталогов при каждой перезагрузке, пока значение не будет исправлено.
Разблокировка размера глобального пространства RID
До Windows Server 2012 глобальное пространство RID было ограничено 230 (или 1 073 741 823) общих идентификаторов. При достижении этого предела создание новых идентификаторов безопасности было возможным только после миграции домена или восстановления леса, то есть в любом случае требовало аварийного восстановления. Начиная с Windows Server 2012, 231-разрядная версия может быть разблокирована, чтобы увеличить глобальный пул до 2 147 483 648 идентификаторов.
AD DS сохраняет этот параметр в специальном скрытом атрибуте с именем SidCompatibilityVersion в контексте RootDSE всех контроллеров домена. Этот атрибут недоступен для чтения с помощью ADSIEdit, LDP или других средств. Чтобы узнать, увеличилось ли глобальное пространство RID, найдите в журнале системных событий событие предупреждения с кодом 16655 от Directory-Services-SAM или используйте следующую команду Dcdiag:
Dcdiag.exe /TEST:RidManager /v | find /i "Available RID Pool for the Domain"
Если глобальный пул RID увеличен, то его доступный размер должен составлять 2 147 483 647 вместо 1 073 741 823 (значение по умолчанию). Например:
Предупреждение
Эта разблокировка предназначена только для предотвращения выхода из RIDS и будет использоваться только в сочетании с применением потолочных ограничений RID (см. следующий раздел). Не используйте его превентивно в средах, в которых остаются миллионы идентификаторов RID и которые имеют невысокий темп роста, так как идентификаторы безопасности, созданные на основе разблокированного пула RID, могут вызывать проблемы с совместимостью приложений.
Операцию снятия ограничения нельзя отменить или откатить, кроме как полным восстановлением леса из более ранних резервных копий.
Важные предостережения
Контроллеры домена Windows Server 2003 и Windows Server 2008 не могут выдавать идентификаторы, если глобальный пул RID разблокирован 31-разрядный. Контроллеры домена Windows Server 2008 R2 могут использовать 31-разрядные идентификаторы, но только если они установлены 2642658 исправлений базы знаний. Неподдерживаемые контроллеры домена без установленного исправления рассматривают разблокированный глобальный пул RID как исчерпанный.
Эта функция не применяется каким-либо функциональным уровнем домена; Обратите внимание, что в домене существуют только контроллеры домена Windows Server 2008 R2 или только Windows Server 2012.
Реализация разблокированного глобального пространства RID
Чтобы разблокировать пул RID на 31-йбит после получения оповещения о потолке RID (см. ниже), выполните следующие действия.
Убедитесь в том, что роль хозяина RID выполняется на контроллере домена с ОС Windows Server 2012. Если это не так, перенесите эту роль в контроллер домена Windows Server 2012.
Запустите программу LDP.exe.
Выберите меню "Подключение" и выберите "Подключиться" для главного узла RID Windows Server 2012 через порт 389, а затем выберите "Привязка в качестве администратора домена".
Выберите меню "Обзор" и выберите "Изменить".
Убедитесь, что DN пуст.
В поле "Изменить атрибут записи" введите:
SidCompatibilityVersion
В значениях введите:
1
Убедитесь, что в операции выбран параметр "Добавить" и нажмите клавишу ВВОД. Это обновляет список записей.
Выберите параметры синхронизации и расширенных параметров, а затем нажмите кнопку "Выполнить".
В случае успешного выполнения в окне выходных данных LDP появятся следующие результаты:
***Call Modify... ldap_modify_ext_s(Id, '(null)',[1] attrs, SvrCtrls, ClntCtrls); modified "".
Проверьте, увеличился ли глобальный пул RID, проверив наличие информационного события Directory-Services-SAM с кодом 16655 в журнале системных событий контроллера домена.
Принудительная установка верхнего порога RID
С целью обеспечения защиты и оповещения администраторов в Windows Server 2012 введен искусственный верхний порог для глобального пространства RID на уровне десяти (10) процентов от оставшегося количества идентификаторов RID. Когда до этого искусственного порога остается один (1) процент, контроллеры домена, запрашивающие пулы RID, записывают событие предупреждения Directory-Services-SAM с кодом 16656 в свои журналы системных событий. При достижении десятипроцентного потолка в главном FSMO RID он записывает событие Directory-Services-SAM 16657 в журнал событий системы и не будет выделять дополнительные пулы RID до переопределения потолка. Поэтому администратор вынужден оценить состояние хозяина RID в домене и устранить избыточное выделение RID, если таковое имеется. Это также позволяет защитить домены от полного исчерпания пространства RID.
Пороговое значение жестко запрограммировано на уровне десяти процентов от оставшегося доступного пространства RID. То есть порог считается достигнутым, когда хозяин RID выделяет такое количество идентификаторов RID, которое соответствует 90 процентам глобального пространства RID.
Для доменов по умолчанию первая точка триггера составляет 230-1 * 0,90 = 966 367 640 (или 107 374 183 РИД).
Для доменов с разблокируемым 31-разрядным пространством RID точка триггера составляет 231-1 * 0,90 = 1 932 735 282 RID (или 214 748 365 ИДЕНТИФИКАТОРов).
При активации главный объект RID задает атрибут Active Directory msDS-RIDPoolAllocationEnabled (общее имя ms-DS-RID-Pool-Allocation-Enabled) значение FALSE для объекта:
CN=RID Manager$, CN=System,DC=<domain>
Это приводит к записи в журнал события с кодом 16657 и прекращению выдачи блоков RID всем контроллерам домена. Контроллеры домена продолжают использовать все оставшиеся пулы RID, которые уже выданы им.
Чтобы снять блокировку и разрешить дальнейшее выделение пулов RID, установите значение атрибута равным TRUE. При следующем выделении RID хозяином RID атрибут вернется к значению по умолчанию NOT SET. После этого пороговое значение больше применяться не будет и в конечном итоге глобальное пространство RID будет исчерпано, из-за чего потребуется восстановление леса или миграция домена.
Снятие блокировки при достижении верхнего порога
Чтобы снять блокировку при достижении искусственного верхнего порога, выполните указанные ниже действия.
Убедитесь в том, что роль хозяина RID выполняется на контроллере домена с ОС Windows Server 2012. Если это не так, перенесите эту роль в контроллер домена Windows Server 2012.
Запустите программу LDP.exe.
Выберите меню "Подключение" и выберите "Подключиться" для главного узла RID Windows Server 2012 через порт 389, а затем выберите "Привязка в качестве администратора домена".
Выберите меню "Вид" и выберите "Дерево", а затем для базового DN выберите собственный контекст именования домена master RID. Нажмите OK.
В области навигации выполните детализацию в контейнере CN=System и выберите объект CN=RID Manager$ . Щелкните его правой кнопкой мыши и нажмите кнопку "Изменить".
В поле "Изменить атрибут записи" введите:
MsDS-RidPoolAllocationEnabled
В поле "Значения" введите (в верхнем регистре):
TRUE
Выберите "Заменить в операции" и нажмите клавишу ВВОД. Это обновляет список записей.
Включите синхронные и расширенные параметры, а затем нажмите кнопку "Выполнить":
В случае успешного выполнения в окне выходных данных LDP появятся следующие результаты:
***Call Modify... ldap_modify_ext_s(ld, 'CN=RID Manager$,CN=System,DC=<domain>',[1] attrs, SvrCtrls, ClntCtrls); Modified "CN=RID Manager$,CN=System,DC=<domain>".
Другие исправления, касающиеся относительных идентификаторов
В предыдущих версиях операционной системы Windows Server при отсутствии атрибута rIDSetReferences происходила утечка пула RID. Чтобы устранить эту проблему на контроллерах домена под управлением Windows Server 2008 R2, установите исправление из базы знаний 2618669.
Неустраненные неполадки, связанные с относительными идентификаторами
При сбоях создания учетных записей происходит утечка идентификаторов RID. Если создать учетную запись не удалось, идентификатор RID все равно используется. Типичным примером является создание пользователя с паролем, который не соответствует сложности.
Исправления, касающиеся относительных идентификаторов в предыдущих версиях Windows Server
Все описанные выше исправления и изменения реализованы в исправлениях, выпущенных для Windows Server 2008 R2. В настоящее время новые исправления для Windows Server 2008 не планируются к выпуску.
Устранение неполадок с выдачой RID
Общие сведения об устранении неполадок
Устранение неполадок с выдачей RID требует логического линейного подхода. Если вы не отслеживаете журналы событий тщательно для предупреждений и ошибок, инициируемых RID, ваши первые признаки проблемы, скорее всего, будут неудачными при создании учетных записей. Самым важным при устранении неполадок с выдачей RID является понимание того, когда тот или иной симптом является ожидаемым, а когда нет. Многие проблемы с выдачей RID могут затрагивать только один контроллер домена и не имеют отношения к улучшению компонентов. Эта простая схема ниже помогает сделать эти решения более понятными:
Параметры устранения неполадок
Параметры ведения журнала
Все записи, связанные с выдачей RID, регистрируются в журнале системных событий, а источником их является Directory-Services-SAM. По умолчанию ведение журнала включено, и для него настроена максимальная степень подробности. Если в журнале нет записей, которые связанны с изменениями в компонентах, реализованными в Windows Server 2012, проблемы следует решать как классические (то есть до выпуска Windows Server 2012) неполадки с выдачей RID, возникавшие в Windows 2008 R2 или более ранних версиях.
Служебные программы и команды для устранения неполадок
Для устранения неполадок, объяснения которым нет в упомянутых выше журналах, в особенности проблем выдачи RID в предыдущих версиях ОС, используйте в качестве отправной точки средства из следующего списка:
Dcdiag.exe
Repadmin.exe
Network Monitor 3.4
Общая методика устранения неполадок, связанных с конфигурацией контроллеров домена
Вызвана ли ошибка очевидной проблемой с разрешениями или доступностью контроллера домена?
Пытаетесь ли вы создать субъект безопасности, не имея необходимых разрешений? Проверьте в выходных данных наличие ошибок отказа в доступе.
Доступен ли контроллер домена? Изучите полученную ошибку либо сообщения о доступности LDAP или контроллеров домена.
Упоминаются ли в полученном сообщении об ошибке относительные идентификаторы и достаточно ли это сообщение конкретно, чтобы его можно было использовать в качестве инструкции? Если да, то следуйте этой инструкции.
Возвращается ли ошибка специально упоминать идентификаторы RID, но в противном случае не является непредвиденной? Например, "Windows не может создать объект, так как служба каталогов не смогла выделить относительный идентификатор".
Изучите журнал событий системы на контроллере домена для событий прежних версий (до Windows Server 2012) RID, подробно описанных в запросе пула RID (16642, 16643, 16644, 16645, 16656).
Изучите системное событие контроллера домена и master RID для новых событий блокировки, описанных ниже (16655, 16656, 16657).
Проверьте работоспособность репликации Active Directory с помощью Repadmin.exe и доступности master RID с помощью Dcdiag.exe /test:ridmanager /v. Включите запись двухстороннего сетевого мониторинга между контроллером домена и хозяином RID, если этих проверок оказалось недостаточно.
Диагностика определенных проблем
В журнале системных событий контроллера домена Windows Server 2012 регистрируются указанные ниже новые сообщения. Системы автоматического отслеживания работоспособности Active Directory, такие как System Center Operations Manager, должны вести наблюдение за этими событиями, так как все они важны, а некоторые являются признаком серьезных проблем с доменом.
ИД события | 16653 |
---|---|
Исходный код | Directory-Services-SAM |
Важность | Предупреждение |
Сообщение | Размер пула для идентификаторов учетных записей (относительных идентификаторов (RID)), настроенный администратором, превышает поддерживаемое максимальное значение. Если контроллер домена является хозяином RID, будет использоваться максимальное значение %1. Дополнительные сведения см. в разделе "Ограничение размера блока RID". |
Примечания и решение | Максимальное значение размера блока RID теперь составляет 15 000 в десятичной системе (3A98 в шестнадцатеричной). Контроллер домена не может запрашивать более 15 000 ИДЕНТИФИКАТОРов. Это событие регистрируется при каждой загрузке, пока не будет задано значение, не превышающее максимальное. |
ИД события | 16654 |
---|---|
Исходный код | Directory-Services-SAM |
Важность | Информационный |
Сообщение | Пул идентификаторов учетных записей (относительных идентификаторов (RID)) сделан недействительным. Такое может произойти в следующих ожидаемых случаях: 1. Контроллер домена восстанавливается из резервной копии. 2. Контроллер домена, работающий на виртуальной машине, восстанавливается из моментального снимка. 3. Администратор вручную признал пул недействительным. Дополнительные сведения см. в разделе https://go.microsoft.com/fwlink/?LinkId=226247. |
Примечания и решение | Если это событие является непредвиденным, свяжитесь со всеми администраторами домена и выясните, кто из них выполнил действие. Журнал событий служб каталогов также содержит дополнительную информацию о том, когда было выполнено одно из этих действий. |
ИД события | 16655 |
---|---|
Исходный код | Directory-Services-SAM |
Важность | Информационный |
Сообщение | Глобальный максимум идентификаторов учетных записей (относительных идентификаторов) был увеличен до %1. |
Примечания и решение | Если это событие является непредвиденным, свяжитесь со всеми администраторами домена и выясните, кто из них выполнил действие. Это событие отмечает увеличение общего размера пула RID за пределами по умолчанию 230и не произойдет автоматически; только по административным действиям. |
ИД события | 16656 |
---|---|
Исходный код | Directory-Services-SAM |
Важность | Предупреждение |
Сообщение | Глобальный максимум идентификаторов учетных записей (относительных идентификаторов) был увеличен до %1. |
Примечания и решение | Требуется действие! Для этого контроллера домена выделен пул идентификаторов учетных записей (относительных идентификаторов). Значение пула указывает на то, что этот домен использовал существенную часть всех доступных идентификаторов учетных записей. Механизм защиты активируется, когда домен достигает следующего порогового значения общих доступных идентификаторов учетных записей, оставшихся: %1. Он предотвращает создание учетных записей до тех пор, пока администратор вручную не включит выделение идентификаторов учетных записей на контроллере домена с ролью "RID-мастер". Дополнительные сведения см. в разделе https://go.microsoft.com/fwlink/?LinkId=228610. |
ИД события | 16657 |
---|---|
Исходный код | Directory-Services-SAM |
Важность | Ошибка |
Сообщение | Требуется действие! Этот домен использовал существенную часть всех доступных идентификаторов учетных записей (относительных идентификаторов). Механизм защиты активирован, так как оставшиеся общие доступные идентификаторы учетных записей меньше: X% [аргумент искусственного потолка]. Он предотвращает создание учетных записей до тех пор, пока администратор вручную не включит выделение идентификаторов учетных записей на контроллере домена с ролью "RID-мастер". Крайне важно, чтобы некоторые диагностика выполнялись перед повторной активацией создания учетной записи, чтобы гарантировать, что этот домен не использует идентификаторы учетных записей с ненормально высоким уровнем. Любые обнаруженные проблемы необходимо устранить до повторного включения создания учетных записей. Если не исправить причины использования идентификаторов учетных записей со слишком большой скоростью, идентификаторы учетных записей в домене могут быть исчерпаны, после чего создание учетных записей в этом домене будет безвозвратно отключено. Дополнительные сведения см. в разделе https://go.microsoft.com/fwlink/?LinkId=228610. |
Примечания и решение | Свяжитесь со всеми администраторами домена и сообщите им о том, что дальнейшее создание субъектов безопасности в этом домене невозможно до тех пор, пока эта блокировка не будет переопределена. Дополнительные сведения о переопределении защиты и, возможно, увеличении общего пула RID см. в статье Global RID Space Size Unlock. |
ИД события | 16658 |
---|---|
Исходный код | Directory-Services-SAM |
Важность | Предупреждение |
Сообщение | Это событие представляет собой периодическое обновление общего количества оставшихся доступными идентификаторов учетных записей (относительных идентификаторов). Количество оставшихся идентификаторов учетных записей составляет примерно: %1. Идентификаторы учетных записей используются в качестве созданных учетных записей, когда они не будут созданы новые учетные записи в домене. Дополнительные сведения см. в разделе https://go.microsoft.com/fwlink/?LinkId=228745. |
Примечания и решение | Свяжитесь со всеми администраторами домена и сообщите им о том, что использование RID превысило контрольную точку. Определите, является ли это событие ожидаемым, изучив закономерности создания субъектов безопасности. Наступление этого события является крайне маловероятным, так как оно означает, что выделено по крайней мере 100 миллионов идентификаторов RID. |