Настройка создания избыточных межсайтовых репликационных соединений
Эллес поддерживает автоматическое создание избыточных (резервных) межсайтовых соединений для отказоустойчивой репликации без необходимости изменять топологию вручную.
Общие сведения
Автоматическое создание избыточных межсайтовых соединений повышает отказоустойчивость репликации в топологиях типа hub-and-spoke («звезда» или «колесо со спицами»), обеспечивая резервные пути для репликации при сбое основных bridgehead-серверов.
Эта функциональность реализуется сервисом построения топологии репликации (Knowledge Consistency Checker, KCC). При установке определенных флагов KCC автоматически создает входящие резервные соединения от bridgehead-серверов других сайтов к локальному bridgehead-серверу (или контроллеру домена RODC) без вмешательства администратора.
Включение механизма создания избыточных соединений
Для включения механизма необходимо одновременно установить два флага в атрибуте options объекта nTDSSiteSettings:
-
NTDSSETTINGS_OPT_IS_REDUNDANT_SERVER_TOPOLOGY_ENABLED(0x00000400, сокращенно — RSE) — включает создание избыточных соединений; -
NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED(0x00000008, сокращенно — DSD) — отключает проверку устаревания топологии, что обеспечивает стабильность резервных соединений.
Результирующее значение options должно быть равно 0x00000408 (1032 в десятичной системе).
При одновременной установке флагов RSE и DSD сервис KCC анализирует конфигурацию сайтов и создает входящие избыточные соединения (nTDSConnection):
-
со значением
0x00000240в атрибутеmS-DS-ReplicatesNCReason, формируемым установкой двух флагов:-
NTDSCONN_KCC_REDUNDANT_SERVER_TOPOLOGY(0x00000200, сокращенно — RS) — указывает, что соединение создано как резервное; -
NTDSCONN_KCC_INTERSITE_TOPOLOGY(0x00000040, сокращенно — IS) — подтверждает, что соединение является межсайтовым;
-
-
со значением
0x00000005в атрибутеoptions, формируемым установкой двух флагов:-
IS_GENERATED(0x00000001, сокращенно — IG) — указывает, что соединение создано автоматически сервисом KCC, а не вручную администратором; -
NTDSCONN_OPT_OVERRIDE_NOTIFY_DEFAULT(0x00000004, сокращенно — OND) — указывает, что соединение игнорирует глобальное поведение уведомлений репликации и использует свое собственное.
-
Правила создания избыточных соединений
Избыточные соединения создаются в соответствии со следующими правилами:
-
когда и как создается избыточное соединение:
-
избыточные соединения создаются только между bridgehead-серверами и между bridgehead-серверами и контроллерами домена RODC — обычные контроллеры домена (RWDC), не назначенные в качестве bridgehead, не участвуют в их формировании;
-
избыточные соединения создаются только в сайтах с установленным флагом RSE — они являются входящими соединениями на RWDC c ролью bridgehead или RODC в этом сайте; флаг RSE на стороне отправителя не влияет на создание соединений;
-
для каждого RWDC с ролью bridgehead в сайте с установленным флагом RSE создается отдельное входящее избыточное соединение от bridgehead-сервера сайта-партнера, но только если в целевом сайте еще не существует двух или более входящих соединений от этого партнера;
Рис. 1. Влияние флага RSE на топологию межсайтовой репликации -
-
когда избыточное соединение не создается:
-
если у сайта с установленным флагом RSE уже существует более одного входящего соединения от сайта-партнера, избыточное соединение от такого сайта-партнера не создается;
-
если в каждом из взаимодействующих сайтов только один bridgehead-сервер, избыточное соединение не создается;
-
избыточные соединения не создаются, если в целевом сайте (с флагом RSE) отсутствуют RWDC с ролью bridgehead, даже если в нем присутствуют RODC;
Рис. 2. Отсутствие избыточного межсайтового соединения при установленном флаге RSE -
-
если в сайте с установленным флагом RSE присутствуют контроллеры домена RODC, для каждого из них создается отдельное входящее соединение от bridgehead-сервера сайта-партнера;
Рис. 3. Создание избыточных межсайтовых соединений с сайтом с контроллерами домена RODC -
избыточные соединения сохраняются при снятии флага RSE — сервис KCC не удаляет ранее созданные избыточные соединения, но снимает флаг
RS(0x00000200, "Redundant Site") в атрибутеmS-DS-ReplicatesNCReason, оставляя установленным только флагIS(0x00000040, "Intra-Site") — это означает, что соединение остается в топологии, но больше не помечается как резервное (избыточное).
Управление флагом RSE
Флаг RSE управляется через атрибут options объекта nTDSSiteSettings в LDAP-хранилище конфигурации домена.
Для его настройки могут использоваться утилиты ldbmodify, ldapmodify и аналогичные.
Установка флага
Для включения избыточной топологии необходимо задать значение 0x00000408 (1032), соответствующее комбинации установленных флагов RSE и DSD, в объекте nTDSSiteSettings каждого сайта, участвующего в репликации.
Формат вызова утилиты ldbmodify для установки значения:
ldbmodify -H ldap://<имя_контроллера_домена> <<EOF dn: CN=NTDS Site Settings,CN=<имя_сайта>,CN=Sites,CN=Configuration,DC=<имя_домена> changetype: modify add: options options: 1032 EOF
Флаг должен быть установлен на обоих сайтах, если требуется создание избыточных соединений в обоих направлениях. Если установлен только на одном — избыточное соединение создается только в этом сайте.
Проверка текущего состояния флага
Для проверки значения флага options используйте утилиты ldbsearch, ldapsearch и аналогичные.
Формат вызова утилиты ldbsearch для получения значения флага:
ldbsearch -H ldap://<имя_контроллера_домена> -s base -b 'CN=NTDS Site Settings,CN=<Имя_сайта>,CN=Sites,CN=Configuration,DC=<имя_домена>' options
При установке флагов RSE и DSD в выводе должна содержаться строка:
options: 1032
Если флаги не установлены, атрибут отсутствует или содержит значение 0.
Запуск перестроения топологии репликации
После изменения options необходимо запустить перестроение топологии репликации сервисом KCC на всех контроллерах домена:
samba-tool drs kcc
Для синхронизации изменений между сайтами выполните:
samba-tool drs syncall CN=Configuration,DC=<имя_домена> \
--all-sites \
--push
Проверка наличия избыточных соединений
После установки флагов и запуска сервиса KCC проверьте наличие избыточных соединений:
samba-tool sites connection list
Избыточные соединения отображаются в списке как обычные межсайтовые соединения. Их идентификация требует детального анализа. Для этого используйте команду:
sudo samba-tool drs showrepl <имя_контроллера_домена>
В выводе в разделе ==== KCC CONNECTION OBJECTS ==== проанализируйте значения атрибутов соединений:
-
Options: 0x00000005означает, что для соединения установлены флаги IG (0x00000001)и OND (0x00000004); -
Reason: 0x00000240указывает на избыточное соединение, для которого установлены флаги RS (0x00000200)иIS(0x00000040); -
Reason: 0x00000040означает, что флаг RS для соединения снят (как следствие снятия флага RSE); соединение остается в топологии.