Primary Domain Controller¶
Primary Domain Controller (PDC, рус. основной контроллер домена) — это сервер в сетях на базе операционной системы Microsoft Windows NT, который выполнял роль центрального хранилища и диспетчера учётных записей пользователей, групп и компьютеров в рамках домена. В архитектуре Windows NT до версии 4.0 PDC был единственным сервером, имевшим право на запись и изменение базы данных учётных записей (SAM — Security Accounts Manager). Все остальные контроллеры домена, называемые Backup Domain Controller (BDC, резервный контроллер домена), хранили только копию этой базы и могли только читать данные, но не изменять их. С выходом Windows 2000 и внедрением службы Active Directory концепция PDC была заменена на более гибкую модель, где все контроллеры домена являются равноправными (multi-master), однако термин «PDC» сохранился в качестве функциональной роли для совместимости с устаревшими клиентами.
¶История
¶Эпоха Windows NT
Концепция Primary Domain Controller была введена корпорацией Microsoft в 1993 году с выходом Windows NT 3.1. В то время домены представляли собой логические группы компьютеров, объединённых общим хранилищем учётных записей. PDC выступал единственным авторитетным источником данных: любое изменение пароля, создание пользователя или изменение членства в группе должно было происходить именно на PDC. BDC периодически синхронизировались с PDC, получая обновления базы SAM. В случае выхода PDC из строя администраторы могли вручную «повысить» (promote) один из BDC до роли PDC, но это требовало перезагрузки сервера и временного простоя.
¶Переход к Active Directory
С выходом Windows 2000 архитектура доменов была кардинально переработана. Вместо модели «один главный — много подчинённых» была внедрена модель с несколькими равноправными контроллерами домена (multi-master), где каждый контроллер мог выполнять операции записи. Однако для обратной совместимости с клиентами Windows NT 4.0 и более ранними версиями в Active Directory была сохранена роль PDC Emulator (эмулятор основного контроллера домена). Этот сервер в домене Active Directory берёт на себя функции, которые ранее выполнял PDC: обработка запросов на смену пароля от старых клиентов, синхронизация времени в домене, а также выполнение операций, требующих строгой последовательности (например, обновление групповой политики). В Windows Server 2008 и более поздних версиях роль PDC Emulator остаётся одной из пяти гибких ролей (FSMO — Flexible Single Master Operations), но её значение для современных сетей минимально.
¶Функции и характеристики
¶Централизованное хранение учётных записей
Основная функция PDC — хранение и управление базой данных SAM, содержащей хеши паролей, имена пользователей, группы и их права. Любое изменение в учётной записи (смена пароля, блокировка, добавление в группу) могло быть выполнено только на PDC. BDC получали копию этой базы и могли аутентифицировать пользователей, но не могли вносить изменения.
¶Аутентификация и авторизация
PDC отвечал за аутентификацию пользователей при входе в систему. Когда пользователь пытался войти в домен, его учётные данные проверялись сначала на PDC, а в случае недоступности — на любом доступном BDC. PDC также управлял политиками безопасности, включая блокировку учётных записей после нескольких неудачных попыток входа.
¶Синхронизация с BDC
PDC регулярно (по умолчанию каждые 5 минут) отправлял обновления базы SAM на все BDC в домене. Эта синхронизация была односторонней: BDC только получали данные, но не могли их отправлять. В случае выхода PDC из строя синхронизация прекращалась, и BDC продолжали работать с устаревшей копией базы.
¶Восстановление после сбоя
При отказе PDC администратор мог выбрать один из BDC и «повысить» его до роли PDC. Это делалось с помощью утилиты Server Manager или командной строки. После повышения новый PDC становился единственным авторитетным источником, а старый PDC при повторном включении автоматически понижался до BDC.
¶Классификация и виды
¶Основной контроллер домена (PDC)
Единственный сервер, имеющий право на запись в базу SAM. В домене Windows NT мог быть только один PDC. Все изменения учётных записей должны были выполняться именно на нём.
¶Резервный контроллер домена (BDC)
Сервер, хранящий копию базы SAM, полученную от PDC. BDC мог аутентифицировать пользователей, но не мог изменять данные. В случае выхода PDC из строя BDC мог быть повышен до роли PDC.
¶Эмулятор PDC (PDC Emulator)
Роль в Active Directory, которая сохранилась для обратной совместимости. PDC Emulator обрабатывает запросы на смену пароля от клиентов Windows NT 4.0, синхронизирует время в домене и выполняет операции, требующие строгой последовательности (например, обновление групповой политики). В современных доменах Active Directory эта роль обычно неактивна, если нет устаревших клиентов.
¶Применение
¶В сетях Windows NT
PDC использовался в организациях, где требовалось централизованное управление учётными записями пользователей в небольших и средних сетях. Типичная конфигурация включала один PDC и несколько BDC, расположенных в разных сегментах сети для повышения отказоустойчивости. Например, в компании с 50–100 сотрудниками PDC мог быть установлен в центральном офисе, а BDC — в филиалах для локальной аутентификации.
¶В современных средах
Хотя архитектура PDC устарела, роль PDC Emulator всё ещё используется в некоторых сценариях:
- При наличии клиентов Windows NT 4.0 или более ранних версий.
- Для синхронизации времени в домене (PDC Emulator является источником времени для всех компьютеров в домене).
- Для выполнения операций, требующих строгой последовательности, например, при обновлении схемы Active Directory.
¶Критика и ограничения
¶Единая точка отказа
Основной недостаток модели PDC — зависимость от одного сервера. Если PDC выходил из строя, администраторы не могли вносить изменения в учётные записи до восстановления или повышения BDC. Это создавало риски для бизнес-процессов, особенно в крупных организациях.
¶Сложность синхронизации
Процесс синхронизации между PDC и BDC был односторонним и не всегда надёжным. При высокой нагрузке или сбоях в сети BDC могли работать с устаревшими данными, что приводило к ошибкам аутентификации.
¶Ограниченная масштабируемость
Модель PDC плохо масштабировалась для больших сетей с тысячами пользователей. Каждый BDC должен был хранить полную копию базы SAM, что увеличивало нагрузку на сеть и серверы. С появлением Active Directory эта проблема была решена за счёт многоуровневой репликации и сегментирования данных.
¶Интересные факты
- В Windows NT 4.0 PDC мог быть единственным сервером в домене, если организация не использовала BDC. В этом случае при выходе PDC из строя домен полностью терял функциональность.
- Термин «Primary Domain Controller» часто путают с «Domain Controller» (DC) в Active Directory. В современных системах все контроллеры домена являются равноправными, и понятие «основной» контроллер утратило прежний смысл.
- В Windows Server 2008 и более поздних версиях роль PDC Emulator автоматически назначается первому контроллеру домена, созданному в лесу Active Directory. При удалении этого контроллера роль может быть перенесена на другой сервер.
- В некоторых старых документах Microsoft PDC упоминается как «master domain controller» (главный контроллер домена), что подчёркивает его центральную роль.
¶Источники
- Microsoft Windows NT 4.0 Resource Kit. Microsoft Press, 1996.
- «Active Directory Domain Services Overview» — документация Microsoft TechNet.
- «Windows NT 4.0: Architecture and Administration» — книга издательства O'Reilly, 1998.
- «Understanding FSMO Roles in Active Directory» — статья Microsoft Support, 2005.
- «Windows Server 2008 R2: Active Directory Resource Kit» — Microsoft Press, 2010.
