Настройка DFSR для репликации SYSVOL
«Эллес» реализует протокол DFS Replication (DFSR) для синхронизации содержимого каталога SYSVOL с контроллерами домена Microsoft Active Directory Domain Services (AD DS).
DFSR в «Эллес»
DFSR (Distributed File System Replication) — многопоточный событийно-ориентированный протокол Microsoft для репликации файлов в домене, включая общие папки SYSVOL (GPO, скрипты) и NETLOGON (скрипты входа).
«Эллес» реализует ключевые компоненты DFSR:
-
автоматическое создание и управление объектами LDAP: группами репликации (
msDFSR-ReplicationGroup), участниками (msDFSR-Member), подписками (msDFSR-Subscription) и глобальными настройками (msDFSR-GlobalSettings) при первом запуске службы; -
обработка RPC-запросов службы репликации файлов (
FRSTRANS) через серверную частьdfsr_join; -
сканирование файловой системы SYSVOL, вычисление SHA1-хешей файлов с учетом ACL и потоков данных, управление версионными векторами (VV) и их хранение в базе данных;
-
разрешение конфликтов на основе комбинации fence, атрибутов, временной метки изменения файла (clock), UID и GVSN; при равенстве предыдущих критериев побеждает файл с более поздней временной меткой;
Рассинхронизация системных часов между участниками может привести к тому, что файл с более ранним содержимым будет принят как «последний», что влечет за собой необратимую потерю данных. -
автоматическое присоединение к группе репликации SYSVOL при включении
dfsrsrv:sysvol_join = true(по умолчанию) и наличии корректной топологии в домене.
Репликация выполняется по протоколу, описанному в MS-FRS2 (DFSR), с использованием в качестве транспорта DCE/RPC.
Настройка работы «Эллес» в роли контроллера домена с DFSR
Для настройки DFSR на контроллере домена «Эллес»:
-
Добавьте в конфигурационный файл «Эллес» /app/inno-samba/etc/smb.conf параметры:
[global] ... server services = +dfsr +dfsr_join dcerpc endpoint servers = +frstrans ...Описание параметров:
-
server servicesдобавляет в список сервисов:-
dfsr— клиентская часть DFSR (обработка входящих обновлений); -
dfsr_join— серверная часть DFSR (обработка RPC-запросов, управление LDAP, инициализация топологии);
-
-
dcerpc endpoint servers— добавляет в список конечных точек DCE/RPC серверную реализацию RPC-интерфейсаFRSTRANS, который необходим для приема входящих запросов репликации от других контроллеров домена.
Также на работу DFSR влияет параметр dfsrsrv:sysvol_join, который включает автоматическое создание объектов DFSR в LDAP и инициализацию локальной репликации SYSVOL при первом запуске службы. При включении этого параметра служба автоматически создает недостающие объекты DFSR в LDAP, если они отсутствуют. Данный параметр включен по умолчанию:dfsrsrv:sysvol_join = true. -
-
Перезапустите службу
inno-samba:sudo systemctl restart inno-samba
-
Проверьте, что службы DFSR запущены:
sudo systemctl status inno-samba
Служба
inno-sambaв «Эллес» объединяет все серверные компоненты, включая DFSR. Убедитесь, что служба активна и работает без ошибок. Для более детальной проверки можно просмотреть логи:journalctl -u inno-samba -n 50 --no-pager
Если функциональность DFSR включена, то при старте
inno-sambaв логах должны появляться сообщения вида:-
Adding ourselves as a member of sysvol replication group; -
Subscribing ourselves to sysvol replication group; -
dfsrsrv: Periodic run pid ….
Это подтверждает, что модуль DFSR инициализирован, создал необходимые объекты в LDAP и работает в составе
inno-samba. -
-
Убедитесь, что в домене созданы объекты DFSR. Примеры проверок:
-
поиск объекта группы репликации DFSR с именем "Domain System Volume" и проверка его типа:
ldbsearch -H ldap://elles-dc.example.com -Y GSSAPI -b "CN=DFSR-GlobalSettings,CN=System,DC=example,DC=com" "(objectClass=msDFSR-ReplicationGroup)" name msDFSR-ReplicationGroupType
Вывод должен содержать запись с
name: Domain System VolumeиmsDFSR-ReplicationGroupType: 1, что подтверждает наличие корректно созданной группы репликации. -
поиск объекта набора содержимого (
ContentSet) для SYSVOL:ldbsearch -H ldap://elles-dc.example.com -Y GSSAPI -b "CN=DFSR-GlobalSettings,CN=System,DC=example,DC=com" "(objectClass=msDFSR-ContentSet)" name msDFSR-FileFilter
Вывод должен содержать запись с
name: SYSVOL ShareиmsDFSR-FileFilter: ~,.TMP,*.BAK, что подтверждает наличие корректной подписки на репликацию файлов SYSVOL с фильтром исключений. -
поиск участников группы репликации в топологии:
ldbsearch -H ldap://elles-dc.example.com -Y GSSAPI -b "CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=example,DC=com" "(objectClass=msDFSR-Member)" name serverReference msDFSR-ComputerReference
Вывод должен содержать запись с
name: elles-dc.EXAMPLE.COM,serverReference— ссылкой наNTDS Settingsэтого контроллера иmsDFSR-ComputerReference— ссылкой на соответствующий ему объект компьютера в OU "Domain Controllers". Это подтверждает, что «Эллес» успешно интегрирован в DFSR-инфраструктуру.
-
-
Проверьте доступность общих папок NETLOGON и SYSVOL с клиентов AD DS:
dir \\elles-dc.example.com\NETLOGON dir \\elles-dc.example.com\SYSVOL
Проверка репликации
Для проверки репликации:
-
На контроллере домена AD DS запустите командную строку (CMD) от имени администратора домена и создайте тестовый файл:
echo "Test from AD DS" > %TMP%\test.txt move /Y %TMP%\test.txt \\win-dc.example.com\NETLOGON
-
На контроллере домена «Эллес» проверьте, что файл реплицирован:
cat /app/inno-samba/var/locks/sysvol/example.com/scripts/test.txt
Новые файлы обрабатываются с интервалом 60 секунд. Поэтому файл становится доступен через какое-то время. -
На контроллере домена «Эллес» создайте тестовый файл:
echo "Test from Elles" > /app/inno-samba/var/locks/sysvol/example.com/scripts/test2.txt
-
На контроллере домена AD DS проверьте, что файл реплицирован:
type \\elles-dc.example.com\NETLOGON\test2.txt
Новые файлы обрабатываются с интервалом 60 секунд. Поэтому файл становится доступен через какое-то время.
Обновлено: