Настройка создания избыточных межсайтовых репликационных соединений
«Эллес» поддерживает автоматическое создание избыточных (резервных) межсайтовых соединений для отказоустойчивой репликации без необходимости изменять топологию вручную.
Механизм создания избыточных межсайтовых репликационных соединений в «Эллес»
Автоматическое создание избыточных межсайтовых соединений повышает отказоустойчивость репликации в топологиях типа 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); соединение остается в топологии.
Обновлено: