Автор - Виталий Ладыгин
В фундаменте инфраструктуры Microsoft находится каталог Active Directory. Как и положено «становому хребту» каталог AD – это чертовски крепкая вещь. Также, это один из примеров «Next-Next-Next – работает!» продуктов, которые без дополнительного сопровождения работают годами. Но есть ряд мифов и неточностей, которые просто необходимо каждый раз обсуждать с администраторами, сопровождающими каталог AD.
Сегодня я хочу поговорить о такой вещи как роли контроллеров домена. Многие знают, что они называются FSMO или мастера операций. Очень часто на собеседованиях спрашивают: «Какие существуют роли в AD для контроллера домена(DC)?. Зачем они нужны и что будет, если они недоступны?» Но, к сожалению, очень редко случается услышать полный и правильный ответ. Для начала, выскажу достаточно “крамольную мысль”, что безо всех FSMO ролей можно жить месяцами и даже этого не заметить…
Во встроенной справке, многочисленных руководствах и книгах, в том числе в отличных книгах Федора Зубанова написаны сотни страниц теории на эту тему. Но как показывает практика – это больше напускает туману в головы администраторов. Особенно это важно в том случае, когда кроме AD есть еще десяток систем для сопровождения. Рассмотрим этот вопрос с практической точки зрения, т.е. что нужно обязательно помнить, а что можно немного и «забыть».
О ролях кратко и ёмко написано в статье "Роли FSMO службы Active Directory в Windows 2000". Обязательно прочитайте ее, чтобы освежить информацию, даже если вы чувствуете себя уверенно в Active Directory. Можно использовать статью как памятку о том, что конкретно делают сервера FSMO.
Большинство привычных операций, например, заведение пользователей и групп можно делать на любом контроллере домена. Служба репликации AD берет на себя копирование этих данных в рамках каталога. Устранение конфликтов делается простым методом – кто последний тот и прав. Этот механизм обеспечивает одинаковость базы Active Directory всех контролеров одного домена, т.е. любой контроллер домена содержит ВСЮ существенную информацию. Смело можно считать, что домен работает до тех пор, пока работает хотя бы один из контроллеров этого домена. Другими словами единица выживания всего каталога – это один сервер для каждого из доменов леса.
Существует несколько действий, при которых недопустимы конфликты. Если два администратора решили в одно время создать по домену Siberia в лесу outof.ru, то система сама никогда не сможет определить какой из них нужно оставить, а какой удалить. Поэтому и существуют сервера с ролями flexible single master operation (FSMO). Их задача НЕДОПУСКАТЬ таких конфликтов. На мой взгляд, многие переводы термина FSMO на русский язык не так легки для понимания, а смысл там прост: главный сервер для роли может быть только один, но ее можно в любой момент легко передать другому контроллеру домена.
Роль сервера (FSMO) | Описание |
---|---|
Существуют только по одному на ВЕСЬ лес | |
Хозяин именования домена (Domain naming master) | Сервер с этой ролью обеспечивает уникальность имен для создаваемых доменов и разделов приложений в лесу. |
Хозяин схемы (Schema master) | Эта роль необходима для расширения схемы леса Active Directory, в большинстве случаев просто для выполнения команды adprep /forestprep |
Существуют по одной на каждый домен | |
Хозяин инфраструктуры (Infrastructure Master) | Сервер с такой ролью нужен для успешного выполнения команды adprep /domainprep. Про эту роль мифы наиболее стойкие. Для пользователей других доменов, которые являются членами локальных групп своего домена создает и обновляет специальные объекты в базе не глобального каталога своего домена. Это просто – т.к. если сервер не глобальный каталог(GC), то в его базе физически нет данных о пользователях других доменов. НО! Мы знаем, что в локальные группы домена мы можем добавлять любых пользователей. А группа в базе AD должна физически иметь ссылки на всех пользователей. Коллизия? ДА! Вот ее и решили специальным объектом фантомом(phantom), который никак через ldap не увидеть, но он есть. Именно работой с фантомами занимается мастер инфраструктуры. |
Эмулятор PDC (PDC emulator) | Очень важная роль, если у вас есть NT4 домен или клиенты до 2000. Работает как основной обозреватель сети Windows. Отслеживает блокировки пользователей при ошибках паролей. Является эталоном времени для домена. Роль также заслуживает отдельного поста – это в планах |
Хозяин RID (RID Master) | Сервер с этой ролью раздает другим контроллерам домена пачки по 500 заготовок для создания уникальных SID. У каждого пользователя и группы обязательно есть SID(Security Identifier). Сам SID это такая строка вида S-1-5-21-165875785-1005667432-441284377-1023, которую вы иногда видите вместо имени пользователя или группы. |
Существует еще важная шестая роль контроллера домена – это глобальный каталог(Global Catalog = GC). Такую роль может иметь любой контроллер в домене, т.е. она не относится к единственно возможной ни для леса, ни для домена. Другими словами, Global Catalog это НЕ FSMO – flexible single master operation. Наверное, именно поэтому, на вопрос о важных ролях контроллера домена, практически никогда не говорят о глобальном каталоге(GC).
Глобальный каталог по определению слушает LDAP порт 3268 и содержит в себе не только информацию о своем домене, но и часть информации обо всех остальных доменах, т.е:
Важный вывод из определения:
Глобальный каталог - самая важная с практической точки зрения роль контроллера домена
Кратко вспомнили основные роли мастеров операций (FSMO роли) и что такое глобальный каталог (GC). Теперь переходим к самому интересному – что будет, если у нас недоступна каждая из ролей:
ДА… звучит, конечно, страшно, но в реальной жизни даже для относительно большой компании можно действительно жить без FSMO серверов днями. Редко кто заводит по 500 новых пользователей ежедневно. Время на 15 минут рассинхронизироваться тоже за пару дней врят-ли сможет. А проблему с паролями можно даже и не заметить совсем.
Само по себе такое поведение предсказуемо и логично. Революция в архитектуре Active Directory по сравнению с каталогами NT4 как раз и была в том, что нет таких единственных ролей сервера, при выходе из строя которых, вы теряете основную фунциональность домена. Ведь в NT4 отказ PDC приводил к тому, что домен переходил в режим “только для чтения”.
А что будет, если у нас вдруг перестанут работать все глобальные каталоги? Такое для небольших внедрений AD встречается гораздо чаще, чем это может показаться на первый взгляд. Например, есть два сервера – один GC, а второй, как это часто бывает, нет. Выключаем мы сервер, где работает глобальный каталог, пропылесосить и что мы увидим?
При отказе последнего глобального каталога (GC) – пользователь не сможет войти в свой компьютер. А сервер Exchange не будет работать с почтой.
Конечно, существует специальная политика, которая позволяет входить пользователю в домен и без доступного глобального каталога, но по-умолчанию она выключена. Сервер Exchange без глобального каталога работать в принципе не сможет.
Для больших структур AD при отказе в центре, например, Exchange вдруг станет работать гораздо медленнее, хотя нагрузки на самом почтовом сервере нет. В случае сбоя связи удаленного филиала с центром пользователи не входят в домен. А ведь именно для “независимого входа в сеть” и ставили контроллер домена в филиал, верно?
Если включено кэширование универсальных групп, то конечно это сглаживает ситуацию… но только тех, кто уже входил в сеть. Плюс, обновление этого кэша идет совсем по другому расписанию, чем основная репликация, что вызывает иногда трудные для диагностики проблемы с авторизацией. Для большинства внедрений Active Directory лучше использовать глобальные каталоги, чем кэширование.
Часто получается, что роль глобального каталога, предназначенная для работы на многих серверах, используется на единицах машин. Это опасно для здоровья active directory и нервов системного администратора. Поэтому не стесняйтесь делать каждый контроллер домена глобальным каталогом – жить будет легче.
Роли FSMO службы Active Directory в Windows 2000
Размещение и оптимизация FSMO на контроллерах домена Active Directory
Просмотр и передача ролей FSMO в Windows Server 2003 GUI
Использование средства Ntdsutil.exe для получения и передачи ролей FSMO контроллеру домена