Настройка репликации active directory windows server 2012

Обновлено: 03.07.2024

Наконец-то собрался переписать свои заметки по теме из черновика в тетрадке в электронный формат. Изложить постарался максимально кратко и ёмко.

1. Основные сведения

Все данные Active Directory хранятся в специализированной базе данных на движке ESENT. Физически она представляет собой файл NTDS.DIT. Все изменения в AD производятся на конкретном контроллере домена и вносятся в его NTDS.DIT и лишь потом эти изменения передаются на остальные контроллеры домена.

Логически база данных состоит из четырёх разделов:

Следует иметь ввиду, что связи, созданные вручную, сервисом KCC не управляются, то есть восстанавливать им замену, в случае недоступности одного из партнёров по репликации, сервис не будет.

Можно не ждать 15 минут, и инициировать создание связей силами KCC принудительно:

На каждом контроллере домена ведётся учёт количества изменений с помощью счётчика highestCommittedUSN. Создание/изменение объекта включает в себя создание/изменение нескольких атрибутов, каждое из которых увеличивает highestCommittedUSN на 1. Каждый атрибут, помимо прочих, имеет параметры:

Посмотреть атрибуты и значения их параметров объекта можно командой repadmin /showmeta. Например:

В случае конфликтов:

Репликация всегда происходит в режиме Pull (вытягивание), поскольку каждый контроллер единолично отвечает за целостность своей базы данных.

Принудительный запуск репликации:

repadmin /replicate <serverTo> <serverFrom> <раздел AD в формате RDN>

Через 15 секунд после внесения изменений, контроллер домена оповещает своих партнёров о необходимости репликации. Если партнёров несколько, то каждому следующему оповещение отправляется с 3-секундной задержкой.

Изменение пароля пользователя и блокировка учётной записи инициируют репликацию без 15-секундной задержки.

Кроме того, репликация происходит по расписанию каждый час. На случай, если во время инициирования репликации по изменению, целевой контроллер был недоступен или был занят дефрагментацией базы.
2.2 Межсайтовая репликация

Такой бриджинг настраивается также автоматически пресловутой службой KCC. Можно отключить (галочка в свойствах протокола-транспорта в оснастке Active Directory Sites and Services). К сожалению, автоматизация включается/отключается только полностью для всех сайтов. Однако, можно создать вручную только для нужных, предварительно отключив автоматику.

Если контроллеры домена в промежуточном сайте вновь вернулись в работу, то и автоматические и созданные вручную мосты перестают использоваться и репликация идёт своим естественным путём.

В качестве отправной точки для диагностики, неплохой идеей будет использовать анализ логов Directory Services на проблемном контроллере домена.

Также поможет dcdiag /test:connectivity, а ещё nslookup, как средство проверки правильной работы DNS.

Как вы знаете, службы Active Directory Domain Services (AD DS) устанавливаются на сервере, который называется контроллер домена (DC). В активный каталог домена AD можно добавить десятки дополнительных контроллеров для балансировки нагрузки, отказоустойчивости, уменьшения нагрузки на WAN каналы и т.д. Все контроллеры домена должны содержать одинаковую базу учетных записей пользователей, учетных записей компьютеров, групп и других объектов LDAP каталога.

Для корректной работы всем контроллерам домена необходимо синхронизироваться и копировать информацию между собой. Когда вы добавляете новый контроллер домена в существующий домен, контроллеры домена должны автоматически синхронизировать данные между собой. Если новый контроллер домена и существующий DC находятся в одном сайте, они могут легко реплицировать данные между собой. Если новый DC находится на удаленном сайте, то автоматическая репликация не так эффективна. Поскольку репликация будет идти через медленные (WAN каналы), которые как правило стоят дорого и скорость передачи данных по ним не велика.

В этой статье мы покажем, как добавить дополнительный контроллер домена в существующий домен Active Directory (Установка домена AD на примере Windows 2016).

Добавление дополнительного контроллера домена в существующий домен AD

Прежде всего, нам нужно установить роль Active Directory Domain Services на сервере, который будет новым DC.

Установка роли ADDS

Прежде всего, откройте консоль Server Manager. Когда откроется Server Manager, нажмите «Add roles and features», чтобы открыть консоль установки ролей сервера.

Add roles and features - Windows Server

Пропустите страницу «Before you Begin». Выберите «Role-based or featured-based installation» нажмите кнопку «Next». На странице «Server Selection» снова нажмите кнопку «Next».

Выберите роль Active Directory Domain Services. В открывшемся окне нажмите кнопку «Add Features», чтобы добавить необходимые инструменты управления Active Directory Management Tools.

установка роли роль Active Directory Domain Services

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

Настройка дополнительного контроллера домена

Теперь в мастере установки ролей нажмите ссылку «Promote this server to a domain controller».

Мастер повышения до DC Promote this server to a domain controller

добавить новый dc - Add a domain controller to an existing domain

На странице Domain Controller Options, можно выбрать, что нужно установить роль DNS-сервера на вашем DC. Также выберите роль Global Catalog. Введите пароль администратора для режима DSRM и подтвердите его, затем нажмите кнопку «Next».

роль глобального каталога и пароль dsrm режима

выбор источника начальной репликации для DC

На страницах «Paths and Review options» нам ничего не придется настраивать, пропустите их, нажав кнопку «Next». На странице «Prerequisite», если вы видите какую-либо ошибку, проверьте и выполните все указанные требования, затем нажмите кнопку «Install».

Запустите установку дополнительного контроллера домена

Настройка репликации между новым и имеющимся контроллером домена

В «Server Manager» выберите вкладку «Tools» затем пункт «Active directory sites and services».

консоль управления сайтами AD - Active directory sites and services

В левой панели разверните вкладку Sites -> Default-First-Site-Name -> Servers. Оба новых DC находятся в одном сайте AD (это подразумевает, что они находятся в одной подсети, либо сетях, соединенных высокоскоростным каналом связи). Затем выберите имя текущего сервера, на котором вы сейчас работаете, затем нажмите «NTDS Settings». В моем случае DC01 является корневым контроллером домена, в данный момент консоль запущена на DC02, который будет дополнительным контроллером домена.

NTDS Settings

Щелкните правой кнопкой мыши по элементу с именем «automatically generated». Нажмите «Replicate now». Появится предупреждение о запуске репликации между корневым контроллером домена и новым контроллером домена.

Replicate now - запуск немедленной репликации

Сделайте то же самое для DC01. Разверните вкладку DC01 и нажмите «NTDS Settings». Щелкните правой кнопкой мыши на «automatically generated», затем нажмите «Replicate now». Оба сервера реплицируются друг с другом, и все содержимое DC01 будет скопировано в DC02.

запуск репликации

Итак, мы закончили! Вы успешно добавили новый DC и принудительно запустили репликацию между двумя контроллерами домена.

В этой статьe мы разобрали как развернуть контроллер домена на базе Windows Server 2012 R2. Теперь наша задача развернуть дополнительный контроллер домена, который будет подстраховкой в случае если основной выйдет из строя.

Итак мы имеем в работе:

  • Основной контроллер домена Windows Server 2012 R2 (DC1, jakonda.local, 192.168.0.2) с развернутыми службами AD DS, DNS, DHCP.
  • Развернуть дополнительный контроллер домена на базе Windows Server 2012 R2, выполнить предварительную настройку системы.
  • Поднять на дополнительном контроллере роли AD DS, DNS, DHCP.
  • Настроить репликацию данных.
  • Выполнить настройку работы DHCP сервера совместно с основным контроллером домена.

Проделываться все действия будут на виртуальной машине.

Установка Windows Server 2012 R2 и подготовительная настройка системы

Устанавливаем Windows Server 2012 R2 Standart with GUI. После установки системы обязательно:

  • Устанавливаем все имеющиеся обновления на текущий момент.
  • Выставляем корректную временную зону (+03:00 Moscow, St. Petersburg, Volgograd).
  • Изменяем имя системы на (прим. DC2).
  • Указываем в системе статический IP-адрес (в моем случае это будет 192.168.0.3), в качестве предпочитаемого DNS сервера указываем адрес DNS сервера на основном контроллере домена DC1 (192.168.0.2) и в качестве альтернативного DNS сервера указываем адрес который мы присвоили на текущем сервере DC2 (192.168.0.3).


  • Вводим систему в имеющийся домен jakonda.local.

На этом подготовка системы завершена, можно приступать к развертыванию необходимых ролей.

Поднимаем роли AD DS + DNS + DHCP на дополнительном контроллере домена

Переходим во вкладку DNS, в поле Search вбиваем IP-адрес нашего дополнительного сервера (в моем случае 192.168.0.3), сервер должен появится в списке найденных, выделяем его и нажимаем кнопку переместить (>). Нажимаем ОК.

После добавления сервера, если перейти в All Servers, то мы увидим что у нас там теперь два сервера. Теперь можно из основного сервера добавлять, настраивать роли на другом сервере.


Добавляем новую роль на дополнительном сервере DC2. Переходим Server Manager — Manage — Add Roles and Features.

Выбираем первый пункт Role-based or feature-based installation (Базовая установка ролей и компонентов).Нажимаем Next.



Выбираем Select a server from the server pool и выбираем сервер из списка, т.к. мы настраиваем дополнительный сервер, то выделяем dc2.jakonda.local и нажимаем Next.

Далее все как и в статье по развертыванию контроллера домена:

  • Отмечаем галочкой роль Active Directory Domain Services, в подтверждающем запросе добавления роли и компонентов, необходимых для установки AD нажимаем Add Features.
  • В выборе установки дополнительных компонентов, ничего не выбираем.
  • На завершающих этапах установки нажимаем Next и Install.

По завершении установки роли AD DS в Server Manager нажимаем на значок Флажка с восклицательным знаком и выбираем Promote this server to a domain controller (Повысить этот сервер до контроллера домена). Запустится мастер конфигурирования AD DS для сервера DC2.

Т.к. мы разворачиваем дополнительный контроллер домена, то нужно добавить его в уже существующий домен. Выбираем Add a domain controller to an existing domain. Автоматические подставится название текущего домена (jakonda.local) и какую доменную учетную запись использовать при выполнении данной операции. Нажимаем Next.


Проверяем установлены ли галочки (Domain Name System (DNS) Server, Global Catalog (GC)), в пункте Site name оставляем значение Default-First-Site-Name и задаем пароль для восстановления служб каталогов. Нажимаем Next.


Предупреждение о том что не может быть создано делегирование разворачиваемого DNS сервера, игнорируем. Нажимаем Next.

В дополнительных опциях в пункте Replicate from (Репликация из) выбираем основной контроллер домена DC1.jakonda.local. Это мы указываем дополнительному контроллеру домена откуда производить репликацию даннных AD, DNS. Нажимаем Next.


Пути к каталогам оставляем по-умолчанию, далее просматриваем сводную информацию по конфигурации AD DS. Нажимаем Next.

Если проверка выполнена успешно, то нажимаем Install.

После того пройдет установка, если зайти на DC2, то увидим что роли AD, DNS подняты, произведена репликация из DC1.



Так же можно с помощью командной строки принудительно запустить процесс репликации, с помощью утилиты repadmin:

image

Осознание того, что я попал в импортозамес пришло не сразу. Только когда из вышестоящей организации свежие поставки ПК стали стабильно приезжать с дистрибутивом «Альт Линукс» на борту, я заподозрил неладное.

Однако в процессе прохождения по стадиям принятия неизбежного я втянулся и даже немного начал получать удовольствие от процесса. А в какой-то момент подумал, что такими темпами рано или поздно мне придётся расставаться с решениями по организации службы каталогов от Microsoft и двигаться в сторону чего-то более экзотичного. Поэтому, чтобы заранее подготовиться к неизбежному, и по возможности выловить побольше подводных камней, было решено развернуть тестовый стенд, включающий в себя:

  • DC1 — Windows Server 2012R2
  • DC2 — Альт Сервер 8.2
  • File Server — Windows Server 2012R2
  • PC1 — Windows 7
  • PC2 — Альт Рабочая станция 8.2

Задачи стенда:

  1. Развернуть домен на базе w2k12r2. Создать минимальный набор групповых политик (аналогично использующимся в рабочей инфраструктуре), включая политику переноса рабочих папок пользователей (Загрузки/Документы/Рабочий стол). В конечном итоге хочется, чтобы при смене пользователем рабочего места с Windows на Linux и обратно он имел комфортный доступ к своим рабочим документам.
  2. Ввод Samba DC вторым контроллером. Проверка репликации службы каталогов и DNS
  3. Настройка клиентов Linux на работу с перемещаемыми папками

Реализация:

    Установка и ввод нового контроллера

С установкой MS Windows 2012R2 всё просто и более менее понятно. В интернете есть 1001 мануал по развертыванию домена на Windows как с помощью GUI так и средствами Powershell, поэтому повторять лишний раз не буду, оставлю только ссылку на офф. документацию, для любопытствующих и тех кто захочет освежить память.

Однако один важный момент в данном пункте всё таки есть. На сегодняшний день Samba не умеет работать со схемами каталога выше 2008R2.

Вернее разработчиками данная поддержка заявлена в качестве экспериментальной. Но на практике попытка ввода самбы в качестве второго DC в существующий домен Windows со схемой 69 — встретит вас следующей ошибкой
DsAddEntry failed with status WERR_ACCESS_DENIED info (8567, 'WERR_DS_INCOMPATIBLE_VERSION')

Проблема в том, что Windows 2012 и 2012R2 используют инструменты WMI для работы с доменами и лесами, стабильная поддержка которых анонсирована только к версии Samba 4.11, которая должна выйти до конца этого года.
Из этого следует, что единственным вариантом для введения самбы в домен AD, развернутый на 2012R2 сервере, является понижение схемы с 69 до 47. Разумеется на рабочей инфраструктуре без веских причин этого делать не надо, но у нас тут тестовый стенд, так что почему бы собственно и нет.

Ставим Альт Сервер 8.2. Во время установки выбираем профиль «Сервер Samba-DC (контроллер AD)». На развернутом сервере производим полное обновление системы, и устанавливаем пакет task-samba-dc, который потянет за собой всё необходимое

Если вдруг task-samba-dc, вопреки заверениям документации Альта откажется ставить всё необходимое сам.

Далее переходим к настройке Kerberos и получению тикета. Открываем файл krb5.conf, переходим в раздел [libdefaults], и приводим к следующему виду:


Проверяем список полученых тикетов Kerberos


Теперь удаляем или переименовываем существующий конфиг самбы.


И наконец вводим в домен AD вторым контроллером:

Успешный ввод будет сопровождаться следующим логом

Для начала проверим работу службы репликации каталогов (DRS)

Все попытки репликации в выводе должны быть успешными. В списке объектов KCC, в течение 15 минут после ввода, должен появится наш DC1 на Windows

Предупреждение «No NC replicated for Connection!» можно смело игнорировать. Оно появляется из за того, что при регистрации нового DC самба неверно устанавливает некоторые флаги репликации.

Так же неплохо будет проверить репликацию LDAP.


Указанная выше команда сравнит значения атрибутов объектов всего каталога на DC1 и DC2.

В ряде случаев атрибуты объектов на разных контроллерах могут отличаться, и вывод команды даст об этом знать. Но далеко не во всех случаях это будет признаком проблемы с репликацией.

Следующим этапом необходимо вручную настроить стабильную репликацию каталога SysVol.
Дело в том, что самба пока не поддерживает DFS-R, впрочем как не поддерживала более раннюю FRS. Поэтому для репликации между DC Samba и Windows единственным на сегодняшний день рабочим решением является односторонняя репликация средствами утилиты Robocopy из комплекта Windows Server 2003 Resource Kit Tools.

Разработчики самбы, во избежание проблем с совместимостью, рекомендуют сначала установить комплект утилит на обычную рабочую станцию, и после этого скопировать Robocopy на контроллер в папку «C:\Program Files (x86)\Windows Resource Kits\Tools\»

После установки, в планировщике задач на контроллере с Windows создаём задание на выполнение репликации со следующими параметрами:

— Выполнять для всех пользователей
— Триггер на выполнение Ежедневно каждые 5 минут в течение дня
— В действиях прописываем путь к утилите robocopy, в качестве аргументов указываем:

Опытным путём я нащупал два жизнеспособных варианта решения этой задачи с его помощью.

    Полное монтирование папки с профилем из сети в раздел /home

Простой вариант. Отлично отрабатывает, если названия папок Мои документы, Загрузки и Рабочий стол совпадают в обеих операционных системах. Подразумевается, что ПК на Linux уже введён в домен и пользователи логинятся под своими доменными учётными записями, используя в качестве механизма аутентификации и авторизации sssd.

  • uid=«100000000-2000000000» — диапазон UID, присваиваемый доменным пользователям от SSSD
  • server=«dfs» — имя файлового сервера
  • path=«Profile_Users/%(USER)» — ресурс на файловом сервере, с размещенным профилем пользователя
  • mountpoint="

За полмесяца работы на тестовом стенде данная связка успешно пережила несколько попеременных долговременных и кратковременных отключений обоих контроллеров, практически без последствий для клиентов (один раз клиент на Windows7 потерял доверительные отношения).

В целом у меня остались довольно приятные впечатления от работы с этим продуктом, даже несмотря на все нюансы, с которыми пришлось столкнуться как в статье, так и «за кулисами».

Подводные камни есть, их много, и по ходу работы с самбой их придётся вылавливать в большом количестве. Тем не менее на сегодняшний день нет иных решений, позволяющих организовывать гибридную среду, с использованием службы каталогов и без использования Windows.

Читайте также: