Сегодня мы поговорим о некоторых особенностях настройки службы времени на виртуализированных контроллерах домена. Как правило, схема синхронизации времени в домене Active Directory выглядит следующим образом:
- Контроллер домена с FSMO ролью эмулятора PDC является основным источником времени в домене AD и синхронизируется с внешним поставщиком точного времени.
- Все остальные контроллеры домена синхронизированы с контроллером, содержащим роль эмулятора PDC
- Все рядовые сервера домена и рабочие станции синхронизируют время с ближайшим контроллером домена.
Например, так выглядят настройки времени на моем виртуализированном DC с ролью PDC. Как вы видите, он синхронизирует время с pool.ntp.org.
Однако, если попытаться вывести текущего поставщика времени , неожиданно можно увидеть странный источник времени с именем VM IC Time Synchronization Provider.
w32tm / query / source
Дело в том, что по умолчанию виртуальные машины Hyper-V / VMWare синхронизируют свое время с хостовым гипервизором, в не зависимости от настроек службы времени внутри ВМ. В результате этого может оказаться довольно странная ситуация, когда хост Hyper-V является членом домена AD и синхронизирует время с контроллером домена, который, в свою очередь, является виртуальной машиной и синхронизирован с хостом (рекурсия?!).
Чтобы этого избежать, для контроллеров виртуальных доменов вы должны отключить синхронизацию времени с хостом. Есть два способа сделать это.
Первый способ — отключить синхронизацию времени в свойствах ВМ. Для этого откройте свойства виртуальной машины в оснастке Hyper-V Manager, перейдите в раздел Integration Services и снимите флажок Time synchronization.
То же самое на сервере Hyper-V можно сделать с помощью консоли PowerShell. Например, с помощью этой команды можно получить статус службы синхронизации времени для виртуальной машины:
Get-VMIntegrationService -VMName dc1 -Name ‘Time synchronization’
А следующей командой можно отключить синхронизацию:
Get-VMIntegrationService -VMName dc1 -Name ‘Time synchronization’ | Disable-VMIntegrationService
Если в качестве хоста \виртуализации вы используете VMWare ESXi, вы можете отключить синхронизацию времени с хостом в настройках виртуальной машины.
ВМ->Edit Settings -> вкладка VM Options -> Снимите галку “Synchronize guest time with host”
Второй способ отключения синхронизации времени — редактирование реестра внутри гостевой виртуальной машины с ролью контроллера домена (ADDS). Чтобы отключить синхронизацию, запустите Regedit.exe, перейдите в раздел HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider и измените значение параметра Enabled на 0.
Либо то же самое действие, но из командной строки:
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0
Кроме того, рекомендуется выполнить следующие настройки
- Изменить период опроса сервера NTP
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t reg_dword /d 900
- Настроить правильный ответ службы времени на нестандартное изменение времени более чем на 52 часа
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config /v MaxNegPhaseCorrection /t reg_dword 0xFFFFFFFF
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config /v MaxPosPhaseCorrection /t reg_dword /d 0xFFFFFFFF
После отключения синхронизации с помощью любого из описанных выше методов необходимо перезапустить службу времени w32time, чтобы она перенастроилась на новый источник времени и запустить синхронизацию:
net stop w32time
net start w32time
w32tm /resync /force
На всех остальных DC в AD вы должны дополнительно выполнить команду:
w32tm/config /syncfromflags:DOMHIER /update
Это заставит службу времени выбрать PDC-эмулятор в качестве источника в соответствии с иерархией домена. Таким образом, мы настроим правильную схему синхронизации времени в домене при использовании виртуальных DC.