Управление функциональным уровнем
Для работы с функциональным уровнем с помощью утилиты samba-tool используется подкоманда level. Также доступны подкоманды для подготовки к повышению функционального уровня (functionalprep) и обновления схемы каталога (schemaupgrade).
Вызовы подкоманд, создающие локальные базы данных на контроллере домена, должны выполняться с привилегиями локального суперпользователя (root/sudo). Вызовы подкоманд, вносящие изменения в существующие базы данных на контроллере домена, должны выполняться с использованием опции -H | --URL= и указанием учетных данных пользователя с достаточными полномочиями на уровне домена или леса (см. описание требуемых полномочий в описаниях подкоманд).
|
Общие сведения
Функциональные уровни леса и домена определяют набор доступных функциональных возможностей. Каждому функциональному уровню соответствует определенная версия схемы каталога.
Общее правило соответствия функциональных уровней: функциональный уровень леса =< функциональный уровень любого домена в лесу =< минимальный функциональный уровень, поддерживаемый контроллерами в домене.
Эллес обеспечивает автоматическое задание функционального уровня, включая, если необходимо, обновление схемы каталога, при добавлении нового контроллера домена и предоставляет инструменты для изменения функционального уровня в процессе эксплуатации.
Функциональный уровень
При добавлении нового контроллера домена Эллес в лес (операция добавления контроллера домена в существующий домен либо развертывания нового домена в новом или существующем лесу) проверяется условие: минимальный функциональный уровень, поддерживаемый контроллером домена =< текущий функциональный уровень домена =< максимальный функциональный уровень, поддерживаемый контроллером домена.
Если условие выполняется, функциональный уровень, определяющий режим работы нового контроллера домена, устанавливается равным функциональному уровню домена, в который он добавляется. Если условие не выполняется, операция добавления контроллера заканчивается ошибкой с выводом соответствующего диагностического сообщения.
При добавлении контроллера Эллес в домен или развертывании домена в новом или существующем лесу информация о максимальном функциональном уровне, который может поддерживать контроллер домена, фиксируется в атрибуте msDS-Behavior-Version объекта nTDSDSA (CN=NTDS Settings) в разделе Configuration и в атрибуте domainControllerFunctionality объекта RootDSE.
|
Начиная с версии 1.17.0 параметр Если параметр задан в файле smb.conf, он игнорируется. |
Пример получения значения атрибута msDS-Behavior-Version на контроллере домена Эллес с помощью утилиты ldbsearch:
ldbsearch -H /app/inno-samba/private/sam.ldb -b "CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com" -s base msDS-Behavior-Version ... msDS-Behavior-Version: 7
Максимальный функциональный уровень, который может поддерживать контроллер домена Эллес, является фиксированной величиной и определяется функциональностью конкретной версии Эллес. В текущей версии Эллес он соответствует функциональному уровню Windows Server 2016.
В Табл. 1 приводятся возможные значения атрибута msDS-Behavior-Version и соответствующие им версии операционной системы Windows Server и информация о поддержке контроллерами домена Эллес.
| Значение атрибута | Версия ОС Windows Server | Поддержка в Эллес |
|---|---|---|
|
Windows Server 2000 |
– |
|
Windows Server 2003 |
– |
|
Windows Server 2008 |
– |
|
Windows Server 2008 R2 |
+ |
|
Windows Server 2012 |
+ |
|
Windows Server 2012 R2 |
+ |
|
Windows Server 2016 |
+ |
|
Windows Server 2025 |
– |
Версия схемы каталога
При добавлении контроллера домена Эллес в лес (операция добавления контроллера домена в существующий домен либо развертывания нового домена в новом или существующем лесу) проверяется соответствие текущей версии схемы каталога леса и максимальной версии схемы каталога в составе Эллес.
Если текущая версия схемы леса ниже максимальной версии схемы, поставляемой в составе добавляемого контроллера домена Эллес, в процессе развертывания нового контроллера инициируется обновление схемы леса. Перед выполнением операции проверяется доступность сервера с FSMO-ролью Schema Master и наличие у пользователя, от имени которого была запрошена операция, прав администратора схемы (членство в группе Schema Admins), а также запрашивается подтверждение.
Текущая версия Эллес поставляется со схемой версии 88.
Версия схемы каталога фиксируется в атрибуте objectVersion объекта Schema в разделе Configuration.
Пример получения значения атрибута objectVersion на контроллере домена Эллес с помощью утилиты ldbsearch:
ldbsearch -H /app/inno-samba/private/sam.ldb -b "CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com" -s base objectVersion ... objectVersion: 88
В Табл. 2 приводятся возможные значения атрибута objectVersion, соответствующие им версии операционной системы Windows Server и информация о версии, поставляемой в составе Эллес.
| Значение атрибута | Версия ОС Windows Server | Версия в Эллес |
|---|---|---|
|
Windows Server 2003 RTM, Windows 2003 SP1, Windows 2003 SP2 |
— |
|
Windows Server 2003 R2 |
– |
|
Windows Server 2008 RTM |
– |
|
Windows Server 2008 R2 |
+ |
|
Windows Server 2012 |
+ |
|
Windows Server 2012 R2 |
+ |
|
Windows Server 2016 |
+ |
|
Windows Server 2019/2022 |
+ |
|
Windows Server 2025 |
– |
Получение информации о текущем функциональном уровне
Для получения информации о текущем функциональном уровне (режиме работы) домена и леса используется следующий формат вызова:
samba-tool domain level show [options]
Подкоманда возвращает информацию о текущих функциональных уровнях домена и леса, а также о минимальном функциональном уровне, поддерживаемом контроллерами в домене.
В процессе работы подкоманда проверяет выполнение условия: функциональный уровень леса =< функциональный уровень домена =< минимальный из максимальных функциональных уровней, поддерживаемых контроллерами в домене.
Если условие выполняется, выводится информация о функциональных уровнях. В противном случае подкоманда возвращает ошибку с соответствующим диагностическим сообщением.
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта.
Примеры
Пример вывода информации о текущем функциональном уровне домена и леса:
samba-tool domain level show Domain and forest function level for domain 'DC=samdom,DC=example,DC=com' Forest function level: (Windows) 2016 Domain function level: (Windows) 2016 Lowest function level of a DC: (Windows) 2016
Изменение функционального уровня
Для изменения функционального уровня (режима работы) домена используется следующий формат вызова:
samba-tool domain level set [options]
Подкоманда изменяет функциональный уровень домена в соответствии с переданным значением обязательного параметра --level.
В процессе работы подкоманда проверяет выполнение условия: функциональный уровень леса =< функциональный уровень домена =< минимальный из максимальных функциональных уровней, поддерживаемых контроллерами в домене.
Если условие выполняется, выдается запрос подтверждения операции. В случае подтверждения запрошенное изменение применяется. Если условие не выполняется, подкоманда возвращает ошибку с соответствующим диагностическим сообщением.
Также проверяется соответствие указанного функционального уровня версии схемы каталога. Если версия схемы не соответствует требуемой, подкоманда возвращает ошибку с соответствующим диагностическим сообщением. В этом случае необходимо вручную обновить схему до требуемой версии с помощью подкоманды samba-tool domain schemaupgrade.
Подкоманда должна вызываться от имени пользователя, включенного в группу Domain Admins.
Чтобы результаты операции фиксировались в логах, необходимо использовать опцию -H URL|--URL=URL.
|
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
--level=DOMAIN_LEVEL(обязательный) — функциональный уровень домена; возможные значения:2008_R2 | 2012 | 2012_R2 | 2016; -
--omit-confirmation— не запрашивать подтверждение выполнения операции.
Примеры
Пример изменения функционального уровня домена:
-
На контроллере домена Эллес вызовите подкоманду:
samba-tool domain level set --level=2012_R2 ... Change domain functional level to 2012_R2? [y/N]
-
В ответ на запрос введите
y, чтобы подтвердить выполнение операции. В случае успешного завершения подкоманда возвращает сообщение:Domain function level changed!
Повышение функционального уровня
Для повышения функционального уровня (режима работы) домена используется следующий формат вызова:
samba-tool domain level raise [options]
Подкоманда повышает функциональные уровни домена и леса в соответствии с переданными значениями параметров --forest-level и/или --domain-level.
В процессе работы подкоманда проверяет выполнение условия: функциональный уровень леса =< функциональный уровень домена =< минимальный из максимальных функциональных уровней, поддерживаемых контроллерами в домене.
Если условие выполняется, запрошенные изменения применяются. Если условие не выполняется, подкоманда возвращает ошибку с соответствующим диагностическим сообщением.
Также проверяется соответствие указанных функциональных уровней версии схемы каталога. Если версия схемы не соответствует требуемой, подкоманда возвращает ошибку с соответствующим диагностическим сообщением. В этом случае необходимо вручную обновить схему до требуемой версии с помощью подкоманды samba-tool domain schemaupgrade.
Подкоманда должна вызываться:
-
для повышения функционального уровня домена — от имени пользователя, включенного в группу
Domain Admins; -
для повышения функционального уровня леса — от имени пользователя, включенного в группу
Enterprise Admins.
Чтобы результаты операции фиксировались в логах, необходимо использовать опцию -H URL|--URL=URL.
|
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
--domain-level=DOMAIN_LEVEL— функциональный уровень домена; возможные значения:2008_R2 | 2012 | 2012_R2 | 2016;Если параметр не передается, должен быть задан параметр
--forest-level. -
--forest-level=FOREST_LEVEL— функциональный уровень леса; возможные значения:2008_R2 | 2012 | 2012_R2 | 2016.Если параметр не передается, должен быть задан параметр
--domain-level.
Обновление схемы каталога
Схема каталога на всех контроллерах домена (леса) должна быть одинаковой (одной версии). При добавлении в домен (лес) с более старой версией схемы нового контроллера домена с более новой версии на всех контроллерах домена (леса) происходит обновление схемы до новой версии.
Для обновления схемы каталога вручную используется следующий формат вызова:
samba-tool domain schemaupgrade [options]
Подкоманда обновляет схему каталога в соответствии с переданным значением параметра --schema или --ldf-file на контроллере домена, на котором она вызывается. После этого результаты обновления схемы и требуемые для этого подготовительные изменения распространяются на остальные контроллеры в домене через механизм репликации.
Подкоманда должна вызываться от имени пользователя, включенного в группу Schema Admins, на сервере с FSMO-ролью Schema Master.
Параметры
Параметры вызова:
-
--schema=SCHEMA— целевая версия схемы каталога; возможные значения:2012 | 2012_R2 | 2016 | 2019; значение по умолчанию —2019(версия схемы каталога 88); -
--ldf-file=LDF_FILE— обновление схемы в указанных LDF-файлах (adprep/.ldf); -
--base-dir=BASE_DIR— расположение LDF-файлов; значение по умолчанию —&{SETUPDIR}/adprep; -
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
-v|--verbose— вывод подробной информации во время работы подкоманды; -
-q|--quiet— отключение вывода диагностических сообщений во время работы подкоманды.
Подготовка к изменению функционального уровня
Для корректной работы домена или леса с использованием новой версии схемы каталога может потребоваться создание некоторого количества новых объектов.
Для этого используется следующий формат вызова:
samba-tool domain functionalprep [options]
Подкоманда выполняет подготовку к повышению функционального уровня в соответствии с переданными значениями параметров на контроллере домена, на котором она вызывается. После этого результаты подготовки и требуемые для этого изменения распространяются на остальные контроллеры в домене через механизм репликации.
Подкоманда должна вызываться:
-
для подготовки к повышению функционального уровня домена — от имени пользователя, включенного в группу
Domain Admins, на сервере с FSMO-ролью Infrastructure Master; -
для подготовки к повышению функционального уровня леса — от имени пользователя, включенного в группу
Schema Admins, на сервере с FSMO-ролью Schema Master.
Параметры
Параметры вызова:
-
--function-level— целевой функциональный уровень; возможные значения:2008_R2 | 2012 | 2012_R2 | 2016; значение по умолчанию —2016; -
--forest-prep— выполнить подготовку на уровне леса; по умолчанию подготовка выполняется и на уровне домена, и на уровне леса; -
--domain-prep— выполнить подготовку на уровне домена; по умолчанию подготовка выполняется и на уровне домена, и на уровне леса; -
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
-v|--verbose— вывод подробной информации во время работы подкоманды; -
-q|--quiet— отключение вывода диагностических сообщений во время работы подкоманды.