Сравнение БД 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, задающие адрес корневого объекта в каталоге, с которого должен начинаться поиск, а также диапазон поиска — с помощью параметра --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-имен;

  • -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'

Пример сравнения БД LDAP на контроллерах в разных доменах:

samba-tool ldapcmp ldap://DC1.samdom1.example.com ldap://DC2.samdom2.example.com --two -UAdministrator --username2=Administrator