Ранее, в статье Ошибки проектирования Active Directory, был поднят вопрос о времени. Точное время — гарантия успеха и корректной работы Active Directory Domain Services, но как обеспечить точность времени в среде VMware vSphere? Сегодня об этом практическом вопросе мы и поговорим.

Точный хронометраж — обязательное условие для проектирования служб Active Directory. Время участвует в множестве процессов, которые протекают в ИТ инфраструктуре. Если рассматривать пример служб каталогов, на точном времени завязаны процессы аутентификации и арбитраж репликации. Другим примером может послужить работа SIEM систем. Время для них не менее критично, так как их задача сводится к корреляции событий с различных источников данных. В случае рассинхронизации, контроли информационной безопасности просто не будут работать корректно.

Хронометраж в среде VMware vSphere

Существует расхожее мнение, что среда виртуализации оказывает влияние на механизмы исчисления времени внутри виртуальных машин, другими словами, хронометраж неточен. Погрешности происходят из-за совместного использования физических ресурсов гипервизора виртуальными машинами, которые работают на нем.

Для отслеживания течения времени, используется один из двух методов: подсчет тиков или отсчет времени. При подсчете тиков операционная система использует аппаратное устройство для передачи прерываний через заранее определенный интервал, например, 100 раз в секунду. Далее, отслеживаются эти прерывания или тики, чтобы определить, сколько времени прошло.

В режиме отсчета времени, происходит следующее: после старта системы аппаратное устройство начинает производить хронометраж. При необходимости производится считывание показаний этого счетчика. Системы на базе Windows используют периодический таймер CMOS для доставки прерываний или тиков.

Помимо подсчета времени, операционные системы также должны отслеживать абсолютное время. Когда система запускается, она считывает начальное время CMOS с точностью до секунды и запрашивает по сети данные с NTP сервера для получения более точных результатов. Затем используется один из методов, описанных выше, для измерения хода времени с этого момента.

Кроме того, чтобы исправить возможную рассинхронизацию времени и другие ошибки в измерениях, операционная система  включает в себя демон, который периодически запускается для сверки часов с NTP серверами. Например, в системах семейства Windows, этот демон называется w32tm.

Среда VMware vSphere предоставляет виртуальным машинами все те же два способа хронометража плюс один дополнительный — VMware Tools. VMware Tools, или средства интеграции, служат для задач корректной работы виртуальной машины. Интересующая нас опция —включение периодической синхронизации времени. После ее активации будет выполняться сверка часов виртуальной машины и гипервизора каждую минуту.

Опция Synchronize guest time with host
Опция Synchronize guest time with host

При отставании часов в гостевой ОС, средства интеграции переместят часы в будущее, чтобы часы гостевой ОС и гипервизора совпадали. В обратном случае, когда часы гостевой ОС спешат по сравнению к часам гипервизора, будет начат процесс постепенного замедления времени до полной синхронизации. Синхронизация времени по умолчанию отключена для всех виртуальных машин. Чтобы убедиться в этом, можно проверить пользовательский интерфейс.

Но есть нюанс, даже если синхронизация времени VMware Tools отключена, синхронизация времени выполняется во время запуска гостевой операционной системы и во время некоторых операций обслуживания виртуальной машины на платформе vSphere. К этому интересному нюансу, я обязательно вернуть чуть позже в практической части.

Закладываем правильный фундамент

Один из ключевых принципов проектирования Active Directory — предоставление надежного источника времени для контроллеров домена. Контроллер домена полагается на точное время для аутентификации Kerberos и процесса репликации. Для Kerberos не требуется высокая точность (в дефолте, максимальное время отклонения составляет 5 минут), а вот использование времени в качестве механизма арбитража для репликации уже требует. Время между контроллерами домена должно быть как можно меньше. Так же, необходимо учитывать особенности платформы VMware vSphere, так как настроить время только в рамках контролеров домена будет недостаточно.

Чтобы заложить правильный фундамент, нужно выполнить 3 шага:

  1. Конфигурирвоание времени на хостах ESXi;
  2. Модификация параметров виртуальной машины с контроллером домена;
  3. Настройка служб точного времени Windows на самом контроллере домена.

Первый шаг – настроить все хосты ESXi на синхронизацию с надёжным источником точного времени. В качестве NTP сервера может быть источник времени Stratum 1 (GPS или аппаратные часы) или источник времени Stratum 2 или Stratum 3 (например, pool.ntp.org). Для Украины, в частности для Киева, рекомендую использовать сервера точного времени time.in.ua:

  • ntp.time.in.ua — основной сервер точного времени (stratum 1);
  • ntptime.in.ua — резервный сервер точного времени (stratum 1);
  • ntptime.in.ua — резервный сервер точного времени (stratum 2).

Важно использовать несколько источников одного уровня.

Active Directory в среде виртуализации VMware vSphere
Active Directory в среде виртуализации VMware vSphere

Второй шаг – необходимо добиться условия, при котором время контроллером домена синхронизируется только на моменте старта.

Как уже писалось ранее, есть нюанс в работе VMware Tools. Даже если синхронизация времени отключена, существуют частные случаи, когда это происходит. Например, когда виртуальная машина восстанавливается со снепшота, гибернации или выполняет миграция чрез vMotion.

Для рядовых серверов домена, такое поведение не является критичным ввиду того, что контроллер домена выступает для них источником точного времени. Причем время от него является приоритетнее, чем от ESXi гипервизора. С контроллером домена, держателем FSMO роли PDC эмулятора, оставить дефолтную конфигурацию будет не корректно. Он сам выступает источником точного времени и не должен зависеть от среды виртуализации. В конфигурацию виртуальной машины необходимо добавить следующие строки:

NameValue
tools.syncTime0
time.synchronize.continue0
time.synchronize.restore0
time.synchronize.resume.disk0
time.synchronize.shrink0
time.synchronize.tools.startup0
time.synchronize.tools.enable0
time.synchronize.resume.host0

Более подробную информацию можно найти в соответствующей KB

Третий шаг – это настройка службы времени Windows (w32tm). На контроллере домена выполняем 3 команды в cmd:

w32tm /config /syncfromflags:manual /manualpeerlist:ntp.time.in.ua (NTP сервера могут быть любыми)

w32tm /config /update

w32tm /resync

Выводы

Время – критический элемент инфраструктуры. На нем завязана работа множества систем, а не только инфраструктуры Active Directory. Но именно Active Directory Domain Services выполняют роль источника точного времени для всей Windows инфраструктуры, что означает необходимость в ее правильной конфигурации.

 

Оставить комментарий

  Подписаться  
Уведомление о