Сравнение БД LDAP на контроллерах домена
Для проверки статуса репликации LDAP может проводиться сравнение БД LDAP на контроллерах одного домена или двух разных доменов с помощью подкоманды samba-tool ldapcmp.
Общие сведения
Подкоманда сравнивает состав и значения атрибутов объектов каталога в БД LDAP двух контроллеров в одном домене либо в двух различных доменах. Сравнение может проводиться как по всему каталогу, так и по отдельным его разделам.
При поиске в процессе сравнения не обрабатываются скрытые атрибуты, а также нереплицируемые атрибуты (с установленным флагом FLAG_ATTR_NOT_REPLICATED), значения которых всегда различаются у объектов на разных контроллерах домена.
Сравнение БД LDAP может использоваться, например, для проверки корректности репликации после присоединения контроллера к домену, диагностики различных проблем в работе контроллера домена, перед смещением сервера с роли контроллера домена и т. д.
Формат вызова
Для сравнения БД LDAP на контроллерах в одном домене или двух разных доменах Эллес используется следующий формат вызова:
samba-tool ldapcmp <URL1> <URL2> (domain|configuration|schema|dnsdomain|dnsforest) [options]
При вызове подкоманды указываются:
-
URL БД LDAP первого контроллера домена в стандартном формате
ldap://<имя или IP-адрес хоста>; -
URL БД LDAP второго контроллера домена в стандартном формате
ldap://<имя или IP-адрес хоста>; -
список разделов каталога (через пробел) для сравнения:
-
domain; -
configuration; -
schema; -
dnsdomain; -
dnsforest.
-
По умолчанию сравниваются все разделы каталога (за исключением нереплицируемых атрибутов).
Для каждого домена может быть передан свой набор реквизитов для доступа с помощью параметров -U|--username/--password и --username2/--password2.
Для изменения области поиска могут использоваться параметры (см. более подробное описание в подразделе «Параметры»):
-
--baseи--base2для задания адреса корневого объекта в каталоге, с которого должен начинаться поиск; -
--cmp-before=DATEи--cmp-after=DATEдля задания границ временного диапазона выборки объектов для сравнения;При использовании данных параметров следует учитывать следующие ограничения и особенности:
-
корректная работа с временными границами сравниваемого диапазона возможна при функциональном уровне домена и леса Windows Server 2008 R2 и выше;
-
чтобы при задании временных границ для сравнения в выборку попадали объекты, удаленные на первом контроллере домена, должен использоваться параметр
--search-deleted; -
объекты для сравнения выбираются по DN-имени, а не по GUID; таким образом, в сравнение могут попасть два разных объекта с совпадающими DN.
-
-
--ignore-attributes=FILENAMEи--force-cmp-attributes=FILENAMEдля загрузки файлов со списками атрибутов, которые должны быть исключены из выборки или включены в нее; -
--scope— диапазон поиска.
Список атрибутов (через запятую), которые должны быть исключены из сравнения, может быть передан в параметре --filter.
Параметры
Общие параметры вызова:
-
-w|--two— признак того, что контроллеры находятся в разных доменах; -
--sd— сравнение только атрибутов, содержащих дескрипторы безопасности объектов каталога (nTSecurityDescriptor); -
--sort-aces— сортировка записей ACE в атрибутахnTSecurityDescriptorперед сравнением; -
--view=VIEW— режим отображения результатов сравнения атрибутовnTSecurityDescriptor; возможные значения:-
section— отображаются различия, связанные с отсутствием или несовпадением записей ACE; различия, связанные с несовпадением порядка следования записей, не отображаются, если совпадают значения записей и их количество (значение по умолчанию); -
collision— отображаются различия, связанные с отсутствием или несовпадением записей ACE, а также с несовпадением порядка следования записей, даже если совпадают значения записей и их количество;
-
-
--base=BASE— адрес корневого объекта в каталоге, с которого должен начинаться поиск в БД LDAP на первом контроллере домена; -
--base2=BASE2— адрес корневого объекта в каталоге, с которого должен начинаться поиск в БД LDAP на втором контроллере домена; -
--scope=SCOPE— диапазон поиска; возможные значения:-
SUB— при указании данной опции процесс поиска опускается вниз по иерархии от указанного DN (либо, если DN не указан, базового DN домена) до самого нижнего уровня в информационном дереве каталога; -
ONE— при указании данной опции процесс поиска опускается на один уровень от указанного DN (либо, если DN не указан, базового DN домена); -
BASE— при указании данной опции поиск ведется только для указанного DN (либо, если DN не указан, базового DN домена);
-
-
--filter=FILTER— список игнорируемых атрибутов (через запятую); -
--skip-missing-dn— пропуск отсутствующих DN-имен; -
--cmp-before=DATE— верхняя граница временного диапазона выборки объектов для сравнения в одном из следующих форматов:-
дата и время:
"%Y-%m-%d %H:%M:%S";Например:
--cmp-before="2024-08-21 12:17:45"
-
дата:
"%Y-%m-%d";Например:
--cmp-before="2024-08-21"
-
временной сдвиг влево относительно текущего момента времени:
"%d [d|day|days|h|hrs|hour|hours|m|min|mins|minute|minutes]".Например:
--cmp-before="12 hours" --cmp-before="1 d 6 h 10 m" --cmp-before="1 day 1 hour 10 minutes"
При задании данного параметра при сравнении будут обрабатываться только объекты, которые были изменены на первом контроллере домена (
URL1) до указанной временной границы. -
-
--cmp-after=DATE— нижняя граница временного диапазона выборки объектов для сравнения в одном из следующих форматов:-
дата и время:
"%Y-%m-%d %H:%M:%S";Например:
--cmp-after="2024-08-21 12:17:45"
-
дата:
"%Y-%m-%d";Например:
--cmp-after="2024-08-21"
-
временной сдвиг влево относительно текущего момента времени:
"%d [d|day|days|h|hrs|hour|hours|m|min|mins|minute|minutes]".Например:
--cmp-after="12 hours" --cmp-after="1 d 6 h 10 m" --cmp-after="1 day 1 hour 10 minutes"
При задании данного параметра при сравнении будут обрабатываться только объекты, которые были изменены на первом контроллере домена (
URL1) после указанной временной границы. -
-
--ignore-attributes=FILENAME— имя текстового файла со списком атрибутов (по одному атрибуту на каждой строке), которые должны быть исключены из сравнения (включены в фильтруемый набор атрибутов); -
--force-cmp-attributes=FILENAME— имя текстового файла со списком атрибутов (по одному атрибуту на каждой строке), которые должны быть включены в сравнение (исключены из фильтруемого набора атрибутов); -
--search-deleted— включение в выборку объектов, которые были удалены на первом контроллере домена, при задании границ временного диапазона; -
-v|--verbose— вывод детальной информации; -
-q|--quiet— тихий режим (отключает вывод диагностических сообщений во время работы подкоманды).
Дополнительные параметры доступа:
-
--simple-bind-dn2=DN2— DN-имя для использования при простом удаленном подключении к БД LDAP на втором контроллере домена; -
--username2=USERNAME2— имя пользователя для доступа к БД LDAP на втором контроллере домена; -
--password2=PASSWORD2— пароль пользователя для доступа к БД LDAP на втором контроллере домена; -
--workgroup2=WORKGROUP2— значениеWORKGROUPдля доступа к БД LDAP на втором контроллере домена; -
--no-pass2— отсутствие необходимости запрашивать пароль для доступа к БД LDAP на втором контроллере домена; -
--use-kerberos2=desired|required|off— необходимость аутентификации с использованием Kerberos при получении доступа к БД LDAP на втором контроллере домена.
Примеры
Пример сравнения БД LDAP на двух контроллерах в одном домене:
samba-tool ldapcmp ldap://DC1 ldap://DC2 -UAdministrator
Пример сравнения отдельного раздела в БД LDAP на двух контроллерах в одном домене:
samba-tool ldapcmp ldap://DC1 ldap://DC2 configuration -UAdministrator
Пример сравнения с указанием игнорируемого атрибута:
samba-tool ldapcmp ldap://DC1 ldap://DC2 --filter=instanceType -UAdministrator
Пример сравнения атрибутов с указанием корневого DN:
samba-tool ldapcmp ldap://DC1 ldap://DC2 -UAdministrator \
--base='CN=FirstName SecondName,OU=OrgUnit,DC=samdom,DC=example,DC=com' \
--base2='CN=FirstName SecondName,OU=OrgUnit,DC=samdom,DC=example,DC=com'
Пример сравнения с указанием файла со списком атрибутов, которые должны быть исключены из обработки:
samba-tool ldapcmp ldap://DC1 ldap://DC2 -UAdministrator \
--ignore-attributes=attributes-to-ignore.txt
Примеры сравнения с указанием границ временного диапазона для выборки объектов:
-
с указанием даты и времени:
samba-tool ldapcmp ldap://DC1 ldap://DC2 -UAdministrator \ --cmp-before="2024-08-21 12:17:45" -
с указанием даты:
samba-tool ldapcmp ldap://DC1 ldap://DC2 -UAdministrator \ --cmp-before="2024-08-21" -
с указанием временного сдвига влево относительно текущего момента:
samba-tool ldapcmp ldap://DC1 ldap://DC2 -UAdministrator \ --cmp-after="1 day 1 hour 10 minutes"
Пример сравнения БД LDAP на контроллерах в разных доменах:
samba-tool ldapcmp ldap://DC1.samdom1.example.com ldap://DC2.samdom2.example.com --two -UAdministrator --username2=Administrator --password2=Passw0rd