Управління реплікацією Active Directory

Забезпечення коректної реплікації в лісі Active Directory - це одна з головних задач адміністратора AD. У цій статті спробуємо зрозуміти базові принципи реплікації бази Active Directory і методики діагностики несправності. Варто відзначити, що реплікації - один з основоположних принципів побудови сучасної корпоративної мережі на базі AD, так, наприклад, ми вже говорили про реплікації групових політик в домені AD і реплікації зон DNS.

Для моніторингу реплікації Active Directory в корпоративному середовищі Microsoft рекомендує використовувати продукт SCOM (або інші продукти моніторингу з схожим функціоналом). Крім того, для моніторингу реплікації AD можна використовувати утиліту repadmin (repadmin / showrepl * / csv) спільно з самописні скриптами аналізу виведення цієї утиліти. Типові проблеми, пов'язані з помилками реплікації Active Directory, - ситуації, коли об'єкти не з'являються в одному або декількох сайтах (наприклад, щойно створений користувач, група або інший об'єкт AD не доступні на контролерах домену в інших сайтах).

Хороша відправна точка для пошуку несправності в механізмі реплікації Active Directory - аналіз журналу "Directory Services" на контролерах домену. Конкретні дії будуть залежати від того, які помилки будуть виявлені в журналі, проте для вирішення проблем потрібно досить чітко розуміти процеси реплікації Active Directory.

Одним з базових елементів управлінням трафіком реплікації між контролерами домена є сайти Active Directory. Сайти пов'язані між собою особливими зв'язками, званими "site link", які визначають вартість маршрутизації даних AD (елементи лісу, домену, папка SYSVOL і т.д.) між різними сайтами. Розрахунок алгоритму управління і маршрутизації трафіку реплікації в лісі ведеться службою KCC.

KCC визначає партнерів по реплікації для всіх контролерів домену в лісі. Для межсайтовой реплікації KCC автоматично вибирає спеціальні сервера-плацдарми (bridgehead server), крім цього, адміністратор домену може вручну вказати контролери домену, які будуть виконувати роль сервера-плацдарму для того чи іншого сайту, саме ці сервера і управляють межсайтовой репликацией. Сайти та сервера bridgehead потрібні для того, щоб зручно управляти трафіком реплікації Active Directory, і щоб зменшити обсяг трафіку, що передається по мережі.

Міжсайтовий топологію в лісі можна проаналізувати за допомогою команди:

repadmin / showism

дана команда відобразить список сайтів в лісі Active Directory. Для кожного з сайтів вказані 3 значення: вартість реплікації між двома сайтами, інтервал реплікації в хвилинах, а також додаткові налаштовані параметри межсайтовой зв'язку. Висновок цієї команди може виглядати так:

C: \> repadmin / showism ==== TRANSPORT CN = IP, CN = Inter-Site Transports, CN = Sites, CN = Configu ration, DC = winitpro, DC = ru CONNECTIVITY INFORMATION FOR 3 SITES: ==== 0 , 1, 2 Site (0) CN = LAB-Site1, CN = Sites, CN = Configuration, DC = winitpro, DC = ru 0: 0: 0, 10: 15: 0, 10: 30: 0 All DSAs in site CN = ADP-ADSN, CN = Sites, CN = Configuration, DC = lab, DC = net (with trans & hosting NC) are bridgehead candidates. Site (1) CN = LAB-Site2, CN = Sites, CN = Configuration, DC = winitpro, DC = ru 10: 15: 0, 0: 0: 0, 20: 30: 0 All DSAs in site CN = ADP- Intranet, CN = Sites, CN = Configuration, DC = la b, DC = net (with trans & hosting NC) are bridgehead candidates Site (2) CN = LAB-Site3, CN = Sites, CN = Configuration, DC = winitpro, DC = ru 10: 30: 0, 20: 30: 0, 0: 0: 0 1 server (s) are defined as bridgeheads for transport CN = IP, CN = Int er-Site Transports, CN = Sites, CN = Configuration , DC = winitpro, DC = ru & site CN = LAB-Site3, CN = Sites, CN = Configuration, DC = winitpro, DC = ru: Server (0) CN = testlabdc2, CN = Servers, CN = LAB-Site3, CN = Sites, CN = Co nfiguration, DC = winitpro, DC = ru C: \>

У вищенаведеному балці видно, що в домені winitpro.ru існує 3 сайта, які називається відповідно Site (0), Site (1) іSite (2). Кожен з сайтів має 3 набору репликационной інформації, по одній для кожного сайту в лісі. Наприклад, налаштована зв'язок між Sites (2) (LAB-Site3) і Site (0) (LAB-Site1), параметри зв'язку з цим - 10: 30: 0, що означає: 10 - вартість реплікації, і інтервал реплікації 30 хвилин. Також зверніть увагу, що для сайту Site (2) заданий сервер-плацдарм (bridgehead) - це контролер домену з ім'ям testlabdc2.

Контролери домену, партнери по реплікації - можуть бути ідентифіковані за допомогою графічного Gui або за допомогою утиліт командного рядка. Відкрийте консоль MMC "Active Directory Sites and Services", розгорніть вузол Sites, в ньому знайдіть цікавить ваш сайт. У цьому вузлі будуть містяться контролери домену, що відносяться до цього сайту. Розгорнувши контролер домену і вибравши пункт NTDS Settings, ви побачите всіх партнерів по реплікації даного контролера домену.

У командному рядку за допомогою команди nslookup можна отримати список контролерів домену, що відносяться до нашого сайту (природно для цього необхідно, щоб всі DC мали коректні записи SRV). Формат команди такий:

nslookup -type = srv _ldap._tcp ... _sites.dc._

на виході отримуємо приблизно наступне:

C: \> _ldap._tcp.LAB-Site1._sites.dc._msdcs.winitpro.ru SRV service location priority = 0 weight = 100 port = 389 svr hostname = testlabdc1.winitpro.ru _ldap._tcp.LAB-Site1._sites .dc._msdcs.winitpro.ru SRV service location priority = 0 weight = 100 port = 389 svr hostname = testlabdc2.winitpro.ru testlabdc1.winitpro.ru internet address = 172.21.23.13 testlabdc2.winitpro.ru internet address = 172.21.23.16

Щоб для певного контролера домену відобразити всіх партнерів по реплікації, з датою і часом останньої реплікації, скористайтеся командою:

repadmin / showrepl

Варто зазначити, що служба DNS - це важливий компонент служби реплікації Active Directory. Контролери домену реєструють свої SRV записи в DNS. Кожен контролер домену в лісі реєструє записи CNAME виду dsaGuid._msdcs.forestName, де dsaGuid -GUID видимий у об'єкта в пункті NTDS Settings в консолі "AD Sites and Services". Якщо в журналі Directory Services є помилки, пов'язані зі службою DNS, для перевірки коректних записів типу CNAME і A для контролера домену.

dcdiag / test: connectivity

Якщо будуть помилки, запустіть службу Netlogon, в результаті чого відбудеться перереєстрація відсутніх dns записів. Якщо dcdiag все також буде видавати помилки, перевірте конфігурацію служби DNS і коректність DNS налаштувань на DC. Для більш детального знайомства з темою тестування служб dns, рекомендую звернутися до статті Діагностика проблем з пошуком контролера домену.

команда repadmin має спеціальний параметр / replsummary, який дозволяє швидко перевірити стан реплікації на конкретному контролері домену (вказується його ім'я) або на всіх контролерах (опція wildcard).

repadmin / replsummary [targetDC | wildcard]

У тому випадку, якщо помилки реплікації відсутні, у висновку цієї команди буде видно, що помилок - 0 .:

C: \> repadmin / replsummary testlabdc2 Replication Summary Start Time: 2010-01-24 15:56:03 Beginning data collection for replication summary, this may take a while: ... Source DSA largest delta fails / total %% error testlabdc1 06m: 27s 0/3 0 testlabdc3 06m: 27s 0/6 0 testlabdc4 06m: 27s 0/5 0 Destination DSA largest delta fails / total %% error testlabdc3 06m: 27s 0/14 0 C: \>

У тому випадку, якщо помилки все-таки будуть, за допомогою утиліти Repadmin можна отримати більш повну інформацію. Кожен контролер домену має власний унікальний USN (Update Sequence Number), який инкрементируется кожен раз при успішному зміні оновленні об'єкта Active Directory. При ініціалізації реплікації, партнеру передається USN, який порівнюється з USN, отриманим в результаті останньої успішної реплікації з даними партнером, тим самим визначаючи скільки змін відбулося в базі AD з часу останньої реплікації.

За допомогою ключа / showutdvec, можна отримати список поточних значень USN, що зберігаються на зазначеному DC.

repadmin / showutdvec

наприклад

C: \> repadmin / showutdvec testlabdc4 DC = winitpro, DC = ru Caching GUIDs ... LAB-Site1 \ testlabdc1 @ USN 16608532 @ Time 2010-01-24 16:27:11 LAB-Site1 \ testlabdc2 @ USN 307126 @ Time 2010- 01-24 16:27:27 LAB-Site2 \ testlabdc3 @ USN 297948217 @ Time 2010-01-24 16:19:34 LAB-Site3 \ testlabdc4 @ USN 245646728 @ Time 2010-01-24 16:19:36 C: \>

Запустивши цю команду на контролері домену, на якому спостерігаються проблеми з реплікацією, можна зрозуміти наскільки різняться бази AD, просто порівнявши значення USN.

Тестування реплікації Active Directory за допомогою утиліти repadmin можна здійснити кількома способами:

  • replmon / replicate <targetDC> <sourceDC> <dirPartition> (Дозволяє запустити реплікацію певного розділу на вказаний контролер домену)
  • replmon / replsingleobj <targetDC> <sourceDC> <objPath> (Реплікація конкретного об'єкта між двома DC)
  • replmon / syncall <targetDC> (Синхронізація зазначеного контролера домену з усім партнерами по реплікації)
C: \> repadmin / replicate testlabdc1 testlabdc3 DC = winitpro, DC = ru Sync from testlabdc3 to testlabdc1 completed successfully. C: \> repadmin / replsingleobj testlabdc1 testlabdc3 cn = stuart, ou = dsu sers, DC = winitpro, DC = ru Successfully replicated object cn = stuart, ou = dsusers, DC = winitpro, DC = ru to testlabdc1 from. C: \> repadmin / replsingleobj testlabdc1 testlabdc3 ou = dsusers, dc = la b, dc = net Successfully replicated object ou = dsusers, DC = winitpro, DC = ru to testlab dc1 from. C: \> repadmin / replsingleobj testlabdc1 testlabdc3 DC = winitpro, DC = ru Successfully replicated object DC = winitpro, DC = ru to testlabdc1 from. C: \> repadmin / syncall testlabdc3 CALLBACK MESSAGE: The following replication is in progress: From: 25fdc051-6ff6-4922-bc02-0b77a4652bfc._msdcs.winitpro.ru To: 99305007-2290-489b-9551-20827ba0664d._msdcs.winitpro .ru CALLBACK MESSAGE: The following replication completed successfully From: 25fdc051-6ff6-4922-bc02-0b77a4652bfc._msdcs.winitpro.ru To: 99305007-2290-489b-9551-20827ba0664d._msdcs.winitpro.ru CALLBACK MESSAGE: The following replication is in progress: From: b0870af5-ab82-4372-9e39-0a9772a5e47c._msdcs.winitpro.ru To: 99305007-2290-489b-9551-20827ba0664d._msdcs.winitpro.ru CALLBACK MESSAGE: The following replication completed successfully From: b0870af5- ab82-4372-9e39-0a9772a5e47c._msdcs.winitpro.ru To: 99305007-2290-489b-9551-20827ba0664d._msdcs.winitpro.ru CALLBACK MESSAGE: SyncAll Finished. SyncAll terminated with no errors. C: \>