Ролі FSMO

Є кілька ситуацій, коли доводиться згадувати про ролі FSMO - це аварійне відновлення після збою, міграція, а також пошук роботи (зазвичай на співбесідах дуже люблять ставити питання на кшталт "Які існують ролі в AD для контролера домену, навіщо вони потрібні?"). І хоча ці ситуації відбуваються дуже рідко, для загального розуміння роботи AD дуже корисно розуміти призначення ролей FSMO.

FSMO, абоFlexible single-master operations (операції з одним виконавцем) — це операції, які виконує контролер домену Active Directory (AD), які вимагають обов'язкової унікальності сервера для кожної операції. Залежно від типу операції, унікальність FSMO передбачається в межах одного домену або лісу доменів. Різні типи FSMO можуть виконуватися як на одному, так і на кількох контролерах домену. Виконання FSMO сервером називаютьроллю сервера, а самі сервера - господарями операцій.

Більшість операцій в AD можна робити будь-якому контролері домену. Служба реплікації AD скопіює зміни на інші контролери домену, забезпечивши ідентичність бази AD всіх контролерах одного домену. Усунення конфліктів відбувається так – правий той, хто вносив зміни останнім.

Проте є кілька дій (наприклад зміна схеми AD), у яких конфлікти неприпустимі. Тому існують сервери з ролями FSMO. Їхнє завдання не допускати таких конфліктів. Таким чином, значення ролей FSMO в наступному — кожна роль одночасно може виконуватися тільки на одному сервері. А за необхідності її можна будь-якої миті передати іншому контролеру домену.

Загалом у лісі є п'ять ролей FSMO. Для початку наведу їх короткий опис:

  • Господар схеми (Schema Master) - відповідає за внесеннязмін до схеми Active Directory. Можливо лише один на весь ліс доменів.
  • Господар іменування доменів (Domain Naming Master) - відповідає за унікальність імен для створюваних доменів та розділів додатків у лісі. Можливо лише один на весь ліс доменів.
  • Господар інфраструктури (Infrastructure Master) – зберігає дані про користувачів з інших доменів, що входять до локальних груп свого домену. Можливо один на кожен домен у лісі.
  • Господар RID (RID Master) - відповідає за виділення унікальних відносних ідентифікаторів (RID), необхідних для створення доменних облікових записів. Можливо один на кожен домен у лісі.
  • Емулятор PDC (PDC Emulator) відповідає за сумісність з доменом NT4 і клієнтами до Windows 2000. Може бути один на кожен домен в лісі.

А тепер пройдемося докладніше з кожної ролі та з'ясуємо, наскільки вони важливі для функціонування Active Directory.

Schema Master

Schema Master - відповідає за внесення змін до схеми, де знаходяться описи всіх класів та атрибутів Active Directory. Схема модифікується вкрай рідко, наприклад при зміні рівня домену, встановленні Exchange та інших програм. Розташовуватись ця роль може на будь-якому контролері домену в межах лісу. При недоступності Schema Master змінити схему AD неможливо.

Domain Naming Master

Domain Naming Master відповідає за операції, пов'язані з іменами доменів AD, проте список його обов'язків дещо більший:

  • Додавання та видалення доменів у межах лісу. Додавати та видаляти домени дозволяється лише контролеру за участю Domain Naming Master. Він відстежує, щоб домен, що додається, мав унікальне в межах лісу NETBIOS-ім'я. Якщо Naming Master недоступний, додати або видалити домен улісу неможливо.
  • Створення та видалення розділів. Починаючи з Windows 2003 з'явилася можливість створювати відокремлені розділи - Application Directory Partitions, які використовуються для зберігання AD довільних даних. Як приклад – зберігання даних для DNS-серверів у розділах ForestDnsZones та DomainDnsZones. Управління розділами при недоступному Domain Naming Master неможливе.
  • Створення та видалення перехресних посилань. Перехресні посилання використовуються для пошуку каталогу в тому випадку, якщо сервер, до якого підключений клієнт, не містить потрібної копії каталогу, причому можна посилатися і на домени поза лісом, за умови їх доступності. Зберігаються перехресні посилання (crossRef) у контейнері Partitions розділу Configuration, і лише Domain Naming Master має право змінювати вміст цього контейнера. При недоступності Domain Naming Master не вдасться створити нове перехресне посилання або видалити непотрібне.
  • Схвалення перейменування домену. Для перейменування домену використовується утиліта rendom.exe. Вона складає скрипт з інструкціями, які мають виконатись у процесі перейменування. Скрипт поміщається в контейнер Partitions розділу Configuration. Оскільки право міняти вміст цього контейнера є лише у контролера за участю Domain Naming Master, то за перевірку інструкцій та запис атрибутів відповідає саме він.

Перебувати ця роль може будь-якому контролері домену не більше лісу.

Infrastructure Master

Якщо сервер не є глобальним каталогом (GC), то його база не має даних про користувачів з інших доменів. Тим не менш, до локальних груп домену ми можемо додавати користувачів з інших доменів. А група в базі AD повинна мати фізично посилання на всіх користувачів. Цю проблему вирішилистворенням фіктивного об'єкта - фантома (phantom). Фіктивні об'єкти є особливим типом об'єктів внутрішньої бази даних і не можуть переглядатися через ADSI або LDAP. Саме роботою із фантомами займається майстер інфраструктури.

Ще одна особливість цієї ролі - для правильної роботи в багатодоменному середовищі контролер домену, що виконує роль господаря інфраструктури, не повинен бути сервером глобального каталогу. Якщо власник ролі Infrastructure Master також є сервером GC, фіктивні об'єкти не створюються або не оновлюються на цьому контролері домену. Це відбувається тому, що глобальний каталог вже містить часткові реплікивсіх об'єктів у Active Directory, і йому немає потреби у фантомах.

RID Master

Кожен обліковий запис у домені (користувача, комп'ютера, групи) повинен мати унікальний ідентифікатор безпеки (SID), який однозначно ідентифікує цей обліковий запис і служить для розмежування прав доступу. Виглядає SID таким чином:

S-1-5-Y1-Y2-Y3-Y4, де

Контролер домену з роллю RID Master відповідає за виділення послідовності унікальних RID кожному контролеру домену у своєму домені, а також за коректність переміщення об'єктів з одного домену до іншого. У контролерів домену є загальний пул відносних ідентифікаторів (RID Pool), RID із якого кожному контролеру виділяються порціями по 500 штук. Коли їх кількість добігає кінця (стає менше 100), контролер запитує нову порцію. За необхідності кількість RID, що видаються, і поріг запиту можна змінити.

Ще одна зона відповідальності RID Master – переміщення об'єктів між доменами. Саме RID Master стежить за тим, щоб не можна було одночасно перемістити один об'єкт у два різні домени. Інакше можлива ситуація,коли в двох доменах буде два об'єкти з однаковим GUID, що загрожує найнесподіванішими наслідками.

Якщо RID Master не буде доступним, то після закінчення вільних RID створити новий обліковий запис стане неможливо, а також не вдасться провести міграцію об'єктів з поточного домену до іншого.

PDC Emulator

Спочатку основним завданням Primary Domain Controller (PDC) Emulator було забезпечення сумісності із попередніми версіями Windows. У змішаному середовищі, в якому зустрічаються клієнти Windows NT4.0/95/98 та контролери домену NT4, PDC Emulator виконує (тільки для них) такі функції:

  • Обробка операції "зміна пароля" для користувачів та комп'ютерів;
  • реплікація оновлень на BDC (Backup Domain Controller);
  • Оглядач мережі (пошук мережевих ресурсів).

Починаючи з рівня домену Windows 2000 і старших за роботу йому додалося. Контролер домену з участю PDC Emulator виконує такі функції:

На цьому, мабуть, усе. Сподіваюся, мені вдалося трохи прояснити ситуацію з ролями FSMO. А наступного разу ми розглянемо варіанти передачі ролей іншому контролеру домену, і навіть примусове призначення (захоплення) ролі у разі недоступності контролера домену, який виконує.