Управление репликацией

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

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

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

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

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

Получение информации о состоянии репликации на контроллере домена

Для получения информации о состоянии входящей и исходящей репликации для контроллера в домене Inno Samba используется следующий формат вызова:

samba-tool drs showrepl [<DC>] [options]

Вывод команды содержит информацию о состоянии входящей и исходящей репликации в рамках соглашений между контроллерами домена в лесу AD с точки зрения контроллера домена, на котором выполняется команда, либо указанного удаленного контроллера домена (<DC>).

В случае успешного выполнения репликации в каждом из блоков в разделах INBOUND NEIGHBORS и OUTBOUND NEIGHBORS отображается состояние репликации для следующих контейнеров:

  • DC=Forest_Root_Domain;

  • CN=Configuration,DC=Forest_Root_Domain;

  • CN=Schema,CN=Configuration,DC=Forest_Root_Domain;

  • DC=ForestDnsZones,DC=Forest_Root_Domain;

  • DC=DomainDnsZones,DC=Forest_Root_Domain.

После присоединения контроллера к домену службам синхронизации данных (KCC) требуется до 15 минут для создания требуемых объектов и запуска входящей и исходящей репликации для всех контейнеров.

Информация группируется в четырех разделах:

  • заголовок с GUID локального агента службы каталогов (DSA);

  • раздел INBOUND NEIGHBORS — статус репликации объектов по каждому разделу каталога на текущий или указанный контроллер домена с других контроллеров;

  • раздел OUTBOUND NEIGHBORS — статус репликации объектов по каждому разделу каталога с текущего или указанного контроллера домена на другие контроллеры;

  • раздел KCC CONNECTION OBJECTS — информация о контроллерах домена, службы синхронизации данных (KCC) которых установили соглашения о репликации с текущим или указанным контроллером домена.

    В конце раздела выводится сообщение No NC replicated for Connection!, которое можно игнорировать.

Параметры

Параметры вызова:

  • --json — вывод информации о репликации в формате JSON;

  • --summary — вывод сводной информации о состоянии входящей и исходящей репликации;

  • --pull-summary — вывод сводной информации о состоянии входящей репликации;

  • --notify-summary — вывод сводной информации о состоянии исходящей репликации;

  • --classic — вывод информации о состоянии репликации в стандартном формате;

  • -v|--verbose — вывод детальной информации.

Примеры

Пример получения информации о состоянии входящей и исходящей репликации в стандартном формате:

samba-tool drs showrepl
Default-First-Site-Name\DC2
DSA Options: 0x00000001
DSA object GUID: c14a774f-9732-4ec2-b9fa-2156c95c4e48
DSA invocationId: 7bdb135c-6868-4dd9-9460-33dea4b6b87b

==== INBOUND NEIGHBORS ====

CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com
       Default-First-Site-Name\DC1 via RPC
               DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
               Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
               0 consecutive failure(s).
               Last success @ Sat May 13 02:52:36 2017 CEST

DC=DomainDnsZones,DC=samdom,DC=example,DC=com
       Default-First-Site-Name\DC1 via RPC
               DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
               Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
               0 consecutive failure(s).
               Last success @ Sat May 13 02:52:36 2017 CEST

CN=Configuration,DC=samdom,DC=example,DC=com
       Default-First-Site-Name\DC1 via RPC
               DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
               Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
               0 consecutive failure(s).
               Last success @ Sat May 13 02:52:36 2017 CEST

DC=ForestDnsZones,DC=samdom,DC=example,DC=com
       Default-First-Site-Name\DC1 via RPC
               DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
               Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
               0 consecutive failure(s).
               Last success @ Sat May 13 02:52:36 2017 CEST

DC=samdom,DC=example,DC=com
       Default-First-Site-Name\DC1 via RPC
               DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
               Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
               0 consecutive failure(s).
               Last success @ Sat May 13 02:52:36 2017 CEST

==== OUTBOUND NEIGHBORS ====

CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com
       Default-First-Site-Name\DC1 via RPC
               DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
               Last attempt @ NTTIME(0) was successful
               0 consecutive failure(s).
               Last success @ NTTIME(0)

DC=DomainDnsZones,DC=samdom,DC=example,DC=com
       Default-First-Site-Name\DC1 via RPC
               DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
               Last attempt @ NTTIME(0) was successful
               0 consecutive failure(s).
               Last success @ NTTIME(0)

CN=Configuration,DC=samdom,DC=example,DC=com
       Default-First-Site-Name\DC1 via RPC
               DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
               Last attempt @ NTTIME(0) was successful
               0 consecutive failure(s).
               Last success @ NTTIME(0)

DC=ForestDnsZones,DC=samdom,DC=example,DC=com
       Default-First-Site-Name\DC1 via RPC
               DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
               Last attempt @ NTTIME(0) was successful
               0 consecutive failure(s).
               Last success @ NTTIME(0)

DC=samdom,DC=example,DC=com
       Default-First-Site-Name\DC1 via RPC
               DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
               Last attempt @ NTTIME(0) was successful
               0 consecutive failure(s).
               Last success @ NTTIME(0)

==== KCC CONNECTION OBJECTS ====

Connection --
       Connection name: fb03f58b-1654-4a02-8e11-f0ea120b60cc
       Enabled        : TRUE
       Server DNS name : DC1.samdom.example.com
       Server DN name  : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com
               TransportType: RPC
               options: 0x00000001
Warning: No NC replicated for Connection!

Запуск службы синхронизации данных (KCC)

Для запуска службы Knowledge Consistency Checker (KCC) на текущем или удаленном контроллере домене Inno Samba используется следующий формат вызова:

samba-tool drs kcc [<DC>] [options]

Подкоманда позволяет обновить информацию о подключениях к другим контроллерам домена в рамках соглашений о репликации.

Может использоваться для создания соединений с целью репликации в том случае, если в выводе команды samba-tool drs showrepl отсутствует информация о других контроллерах домена.

Параметры

Для запуска KCC на удаленном контроллере домена его полное доменное имя может быть передано в качестве параметра при запуске подкоманды.

Примеры

Пример принудительного запуска KCC на удаленном контроллере домена:

samba-tool drs kcc DC2.samdom.example.com -U administrator
Password for [administrator@SAMDOM.EXAMPLE.COM]:
Consistency check on DC2.samdom.example.com successful

Выполнение репликации

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

samba-tool drs replicate <destinationDC> <sourceDC> <NC> [options]

Подкоманда выполняет репликацию указанного раздела каталога (<NC>) на указанный контроллер-приемник (<destinationDC>) с указанного контроллера-источника (<sourceDC>).

Если при вызове подкоманды указываются контроллеры домена, между которыми отсутствует соглашение о репликации, данные реплицируются, однако соглашение не создается.

По умолчанию подкоманда реплицирует только операции над объектами, которые не выполнялись на контроллере-приемнике. К таким операциям относятся:

  • создание новых объектов каталога;

  • изменение объектов каталога;

  • удаление объектов каталога.

Для повторной синхронизации данных по всем объектам в разделе каталога при запуске подкоманды используйте параметр --full-sync.

Параметры

Параметры вызова:

  • --add-ref — использовать ADD_REF для добавления к repsTo на источнике;

  • --sync-forced — использовать SYNC_FORCED для принудительного выполнения входящей репликации;

  • --sync-all — использовать SYNC_ALL для выполнения репликации со всех контроллеров;

  • --full-sync — выполнить повторную синхронизацию данных по всем объектам;

  • --local — загрузить изменения напрямую в локальную базу данных (контроллер-приемник игнорируется);

  • --local-online — загрузить изменения в локальную базу данных (контроллер-приемник игнорируется) так, как это происходит в рамках стандартной процедуры репликации;

  • --async-op — использовать для репликации ASYNC_OP;

  • --single-object — реплицировать только данные по указанному объекту вместо репликации всего раздела каталога (используется только вместе с параметром --local).

Примеры

Пример выполнения репликации всех разделов каталога AD между контроллерами DC1 и DC2:

samba-tool drs replicate DC2 DC1 dc=samdom,dc=example,dc=com
Replicate from DC1 to DC2 was successful.

samba-tool drs replicate DC2 DC1 DC=ForestDnsZones,DC=samdom,DC=example,DC=com
Replicate from DC1 to DC2 was successful.

samba-tool drs replicate DC2 DC1 CN=Configuration,DC=samdom,DC=example,DC=com
Replicate from DC1 to DC2 was successful.

samba-tool drs replicate DC2 DC1 DC=DomainDnsZones,DC=samdom,DC=example,DC=com
Replicate from DC1 to DC2 was successful.

samba-tool drs replicate DC2 DC1 CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com
Replicate from DC1 to DC2 was successful.

Управление флагами агента службы каталогов (DSA)

Для запроса или изменения флагов объекта NTDS Settings на контроллере домена Inno Samba используется следующий формат вызова:

samba-tool drs options [<DC>] [options]

Подкоманда позволяет просмотреть или изменить (при использовании параметра --dsa-option) флаги объекта NTDS Settings на текущем или удаленном контроллере домена (<DC>).

Параметры

Параметры вызова:

  • --dsa-option={|-}IS_GC | {|-}DISABLE_INBOUND_REPL | {|-}DISABLE_OUTBOUND_REPL | {|-}DISABLE_NTDSCONN_XLATE — флаг DSA, который требуется снять/установить.

Примеры

Пример запроса флагов DSA для текущего контроллера домена:

samba-tool drs options
Current DSA options: IS_GC

Выполнение первоначальной репликации без присоединения к домену

Для выполнения первоначальной репликации без присоединения сервера к домену Inno Samba используется следующий формат вызова:

samba-tool drs clone-dc-database <dnsdomain> [options]

Подкоманда позволяет эмулировать процесс репликации для указанного домена (<dnsdomain>) без присоединения к нему и внесения каких-либо изменений. Может использоваться для целей тестирования и отладки.

Параметры

Параметры вызова:

  • --server=SERVER — полное доменное имя или IP-адрес контроллер домена AD для присоединения;

  • --targetdir=TARGETDIR — каталог для сохранения данных, получаемых при присоединении;

  • -q|--quiet — тихий режим (отключает вывод диагностических сообщений во время работы подкоманды);

  • --include-secrets — также реплицировать секретные данные домена;

  • --backend-store=BACKENDSTORE — тип базы данных каталога; возможные значения: tdb | mdb; значение по умолчанию — tdb;

  • --backend-store-size=SIZE — максимальный размер файлов базы данных каталога; поддерживается только для баз данных LMDB (--backend-store=mdb); значение по умолчанию — 8 ГБ.

Примеры

Пример выполнения репликации без присоединения к домену:

mkdir /tmp/example
samba-tool drs clone-dc-database SAMDOM.EXAMPLE.COM --include-secrets --targetdir=/tmp/example --server=DC1.samdom.example.com -U administrator

Получение информации о задержках при репликации

Для получения информации о задержка при репликации в домене Inno Samba используется следующий формат вызова:

samba-tool drs uptodateness [options]

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

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URI LDAP-сервера; может содержать указание на протокол, имя хоста и номер порта;

  • -p PARTITION|--partition=PARTITION — раздел каталога, для которого требуется вывести значения задержки при репликации;

  • --json — вывод данных в формате JSON;

  • --maximum — вывод только максимальных значений задержки при репликации;

  • --median — вывод только медианных значений задержки при репликации;

  • --full — вывод полных данных о задержках при репликации.

Примеры

Пример получения информации о задержках при репликации:

samba-tool drs uptodateness
DOMAIN          maximum: 207  median: 18.0  failure: 10
CONFIGURATION   maximum: 468  median: 29.0  failure: 10
SCHEMA          maximum: 318  median: 27.0  failure: 10
DNSDOMAIN       maximum: 56  median: 3.0  failure: 10
DNSFOREST       maximum: 378  median: 36.0  failure: 10

Получение информации о поддерживаемых расширениях DRS

Для получения информации о расширениях протокола Directory Replication Service (DRS) Remote Protocol, поддерживаемых контроллером в домене Inno Samba, используется следующий формат вызова:

samba-tool drs bind [<DC>] [options]

Подкоманда выводит список расширений в соответствии со спецификацией протокола Directory Replication Service (DRS) Remote Protocol с указанием статуса поддержки (Yes/No) на текущем или указанном удаленном (<DC>) контроллере домена.

Параметры

Для получения информации для удаленного контроллера домена его полное доменное имя может быть передано в качестве параметра при запуске подкоманды.

Примеры

Пример получения информации о расширениях протокола Directory Replication Service (DRS) Remote Protocol, поддерживаемых контроллером домена:

samba-tool drs bind
Bind to DC1.samdom.example.com succeeded.
Extensions supported:
  DRSUAPI_SUPPORTED_EXTENSION_BASE                            : Yes (DRS_EXT_BASE)
  DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION               : Yes (DRS_EXT_ASYNCREPL)
  DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI                       : Yes (DRS_EXT_REMOVEAPI)
  DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2                      : Yes (DRS_EXT_MOVEREQ_V2)
  DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS                 : No  (DRS_EXT_GETCHG_DEFLATE)
  DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1                       : Yes (DRS_EXT_DCINFO_V1)
  DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION        : Yes (DRS_EXT_RESTORE_USN_OPTIMIZATION)
  DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY                        : No  (DRS_EXT_ADDENTRY)
  DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE                     : Yes (DRS_EXT_KCC_EXECUTE)
  DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2                     : Yes (DRS_EXT_ADDENTRY_V2)
  DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION        : Yes (DRS_EXT_LINKED_VALUE_REPLICATION)
  DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2                       : Yes (DRS_EXT_DCINFO_V2)
  DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD    : Yes (DRS_EXT_INSTANCE_TYPE_NOT_REQ_ON_MOD)
  DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND                     : Yes (DRS_EXT_CRYPTO_BIND)
  DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO                   : Yes (DRS_EXT_GET_REPL_INFO)
  DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION               : Yes (DRS_EXT_STRONG_ENCRYPTION)
  DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01                      : Yes (DRS_EXT_DCINFO_VFFFFFFFF)
  DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP           : Yes (DRS_EXT_TRANSITIVE_MEMBERSHIP)
  DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY                 : Yes (DRS_EXT_ADD_SID_HISTORY)
  DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3                      : Yes (DRS_EXT_POST_BETA3)
  DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5                    : Yes (DRS_EXT_GETCHGREQ_V5)
  DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2                : Yes (DRS_EXT_GETMEMBERSHIPS2)
  DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6                    : Yes (DRS_EXT_GETCHGREQ_V6)
  DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS                   : Yes (DRS_EXT_NONDOMAIN_NCS)
  DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8                    : Yes (DRS_EXT_GETCHGREQ_V8)
  DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5                  : Yes (DRS_EXT_GETCHGREPLY_V5)
  DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6                  : Yes (DRS_EXT_GETCHGREPLY_V6)
  DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3                : Yes (DRS_EXT_WHISTLER_BETA3)
  DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7                  : Yes (DRS_EXT_WHISTLER_BETA3)
  DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT                   : Yes (DRS_EXT_WHISTLER_BETA3)
  DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS                 : No  (DRS_EXT_W2K3_DEFLATE)
  DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10                   : Yes (DRS_EXT_GETCHGREQ_V10)
  DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2                  : No  (DRS_EXT_RESERVED_FOR_WIN2K_OR_DOTNET_PART2)
  DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3                  : No  (DRS_EXT_RESERVED_FOR_WIN2K_OR_DOTNET_PART3)