Синхронизация времени в домене Active Directory критически важна для корректного функционирования сервисов и механизмов безопасности. Если в домене не настроена четкач схема синхронизации времени, это может вызвать проблемы с аутентификацией, работой криптографических протоколов, сертификатов при взаимодействии со внутренними и внешними системами. Так, например, Kerberos аутентификация требует, чтобы время между клиентом и сервером не отличалась более чем на пять минут. В этой статье, мы рассмотрим, как должна работать синхронизация времени в домене AD, и как настроить синхронизацию контроллера домена с внешним источником точного времени (NTP).
Содержание:
- Как работает синхронизация времени в домене AD?
- Ручная настройка синхронизация времени контроллера домена PDC с внешним NTP источником
- Настройка групповой политики для синхронизации времени PDC с NTP
- Настройка синхронизации времени на клиентах домена
Как работает синхронизация времени в домене AD?
Схема синхронизации времени в домене Active Directory имеет строгую иерархию:
- Главным источником времени в домене является контроллер домена с FSMO ролью эмулятора PDC.
- С PDC синхронизируют время все остальные контроллеры домена.
- Рядовые сервера и рабочие станции синхронизируют свое время с ближайшими DC согласно топологии AD (по умолчанию компьютеры Windows синхронизируют время внешним
time.windows.com
, но после добавления в домен синхронизация выполняется согласно иерархии домена)
Источник
Для обеспечения точного времени на всех компьютерах домена, нужно настроить синхронизацию PDC с неким внешним источником точного времени по протоколу NTP.
Чтобы определить имя контроллера домена, на котором запущена FSMO роль эмулятора PDC, выполните PowerShell команду:
Get-ADDomain | Select-Object PDCEmulator
Ручная настройка синхронизация времени контроллера домена PDC с внешним NTP источником
По умолчанию PDC синхронизирует время с аппаратными часами материнской платы физического сервера, на котором он запущен. Это можно проверить, выполнив на нем команду:
w32tm /query /source
Local CMOS Clock
указывает, что в качестве источника времени используются локальные часы. При этом в логе Event Viewe на PDC будет регистрироваться событие Event ID 12 от Time-Service:
Time Provider NtpClient: This machine is configured to use the domain hierarchy to determine its time source, but it is the AD PDC emulator for the domain at the root of the forest, so there is no machine above it in the domain hierarchy to use as a time source. It is recommended that you either configure a reliable time service in the root domain, or manually configure the AD PDC to synchronize with an external time source. Otherwise, this machine will function as the authoritative time source in the domain hierarchy. If an external time source is not configured or used for this computer, you may choose to disable the NtpClient.
Если DC запущен на виртуальной машине, в настройках которой включена синхронизация времени с хостом (гипервизором), эта команда вернет:
VM IC Time Synchronization Provider
Поэтому для всех DC нужно отключить синхронизацию времени в настройках ВМ, или запретить DC получать время с хоста, создав параметр реестра:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\VMICTimeProvider /v Enabled /t REG_DWORD /d 0 /f
Перенастроим настройки Windows Time на PDC так, чтобы он использовал в качестве источника времени внешний NTP сервер. В качестве источника времени можно использовать ближайшие к вам сервера NTP из пула проекта https://www.ntppool.org
Для России это будут сервера 0.ru.pool.ntp.org, 1.ru.pool.ntp.org и 2.ru.pool.ntp.org
Проверьте с PDC эмулятора, что доступ к этим NTP серверам доступен (и порт 123/UDP не блокируется файерволами):
w32tm /stripchart /computer:0.ru.pool.ntp.org
Если вы получили ответ от NTP сервера, можно задать эти внешние сервера в качестве источников времени для Primary DC. Выполните команды:
net stop w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"0.ru.pool.ntp.org,0x8 1.ru.pool.ntp.org,0x8 3.ru.pool.ntp.org,0x8 4.ru.pool.ntp.org,0x8"
w32tm /config /reliable:yes
net start w32time
w32tm /config /update
Выполните синхронизацию времени с NTP:
w32tm /resync
Проверьте, что теперь источником времени на PDC является внешние NTP сервера:
w32tm /query /configuration
Настройка групповой политики для синхронизации времени PDC с NTP
Так как роль эмулятора PDC может быть передана на другой контроллер домена, можно настроить групповую политику, которая будет автоматически применять настройки синхронизации с внешним NTP источников времени на текущем DC с ролью PDC.
Для этого в консоли управления Group Policy Management Console (
GPMC.msc
), создайте новый WMI фильтр групповых политик. Перейдите разделе WMI Filters, создайте фильтр с именем PDC Emulator и WMI запросом:
Select * from Win32_ComputerSystem where DomainRole = 5
Создайте новую GPO, откройте ее и перейдите в раздел Computer Configuration-> Administrative Templates -> System -> Windows Time Service -> Time Providers
Нас интересуют три политики:
- Configure Windows NTP Client: Enabled (настройки политики описаны ниже)
- Enable Windows NTP Client: Enabled
- Enable Windows NTP Server: Enabled
В настройках политики Configure Windows NTP Client укажите следующие параметры:
- NtpServer: 0.ru.pool.ntp.org,0x8 1.ru.pool.ntp.org,0x8 2.ru.pool.ntp.org,0x8 3.ru.pool.ntp.org,0x8
- Type: NTP
- CrossSiteSyncFlags: 2
- ResolvePeerBackoffMinutes: 15
- Resolve Peer BAckoffMaxTimes: 7
- SpecilalPoolInterval: 1024
- EventLogFlags: 0
Примените созданный ранее фильтр PDC Emulator к GPO.
Осталось прилинковать новую GPO на контейнер Domain Controllers.
Настройка синхронизации времени на клиентах домена
В домене нужно настраивать время только на контроллере домена с ролью PDC. Он должен синхронизировать время с внешним NTP. Специально какие-то отдельные политики или настройки для синхронизации времени на оставшихся DC или компьютерах делать не нужно (это может быть даже вредно). Синхронизация времени должна отлично работать согласно иерархии AD (NT5DS).
На оставшихся (дополнительных) контроллерах домена и остальных клиентах синхронизация времени должна выполняться согласно иерархии домена. Проверим это:
w32tm /query /configuration
Если все настроено правильно, в качестве типа источника времени в разделе
TimeProviders
должен быть задан NT5DS.
Настройки службы времени хранятся в ветке реестра
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
.
Если это не так, можно сбросить настройки синхронизации времени на клиенте и принудительно указать, что нужно использовать схему синхронизации по-умолчанию (по доменной иерархии):
net stop w32time
w32tm.exe /unregister
w32tm.exe /register
net start w32time
w32tm /config /syncfromflags:DOMHIER /update
w32tm /resync
Проверьте что теперь в качестве источника времени на клиенте используется ближайший контроллер домена (LogonServer):
w32tm /query /source
Типовые ошибки синхронизации времени на клиентах Windows описаны в статье.
In this article, we will take a look at how to configure a domain controller with the FSMO role PDC Emulator (Primary Domain Controller) to synchronize time with the external time source (NTP server) with your NTP configuration.
Why is time synchronization important with Active Directory Domain Controllers?
Time synchronization in a network environment is more than a convenience; it’s an absolute necessity, especially when it comes to domain controllers within an Active Directory Domain Services (AD DS) infrastructure.
Active Directory Sites and Services where AD replication is configured
Why, though? Imagine having multiple domain controllers spread across your domain hierarchy, each with a different system time. This lack of sync would result in many problems, including authentication failures and inconsistencies in event logs, which are essential for monitoring and security purposes. Inconsistencies can be problematic when tracing an event across multiple domains or even within a single domain with multiple domain controllers.
Windows Time Service
The Windows Time service, integral to both member servers and domain controllers, provides the necessary time synchronization service across your network. This service follows a hierarchical structure, where the primary domain controller (PDC) emulator in the forest root domain stands at the apex.
PDC Emulator plays a key role
The PDC emulator performs a crucial role. The DC that holds the PDC role is configured to synchronize time with an external NTP server, serving as the authoritative time server for the entire AD infrastructure. Other domain controllers and member servers synchronize time with the PDC emulator.
This configuration ensures a reliable time source for all devices within the network. It also enables the Windows NTP client on each domain controller to synchronize time accurately with the PDC emulator.
Time can deviate
However, this internal time synchronization can deviate over time, requiring the DC to synchronize time with an external source. Therefore, configuring DC for sync time with an external NTP server is crucial. External NTP servers, such as public NTP servers, follow the NTP protocol, providing high accuracy and reliability.
What is Network Time Protocol (NTP)?
The Network Time Protocol, commonly referred to as NTP, is a protocol designed for time synchronization among computer systems over packet-switched, variable-latency data networks. Born out of the necessity for reliable and accurate timekeeping in the digital world, NTP has become a cornerstone protocol in today’s internet infrastructure.
External NTP servers, such as public NTP servers available on the internet, usually operate at Stratum 1 or Stratum 2. These servers provide a reliable and accurate time source for other devices to synchronize with, leveraging the NTP protocol.
The beauty of NTP lies in its ability to provide time synchronization with remarkable precision over the public internet, where latency and network jitter can vary significantly. It does this through a complex algorithm that estimates network delay and adjusts time accordingly, even compensating for the time it takes for time requests to travel from the client to the server and back.
In the context of a Windows Server environment, configuring DC for sync time with external NTP server becomes a vital part of ensuring accurate and reliable time across the domain. Domain controllers, including the primary domain controller, are usually configured to synchronize time with these external NTP servers.
How time synchronization works in Active Directory?
First of all, we remind you how time synchronization works in the Active Directory forest:
- All domain computers or member servers synchronize time with the nearest domain controller (in the client AD site) running in your Active Directory Domain Services environment or with the DC with the PDC role (if AD sites are not configured);
- All DCs synchronize time with a domain controller PDC role holder;
- PDC synchronizes time with itself by default, or you can configure it to synchronize with an external time source on the Internet (NTP server).
Configuring time synchronization using w32tm config
You can configure time synchronization on the PDC manually or using a GPO.
The w32tm.exe utility is used to configure time synchronization manually.
Open an elevated command prompt (administrative command prompt) on the PDC and run the command:
w32tm.exe /config /manualpeerlist:”0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org,0x8″ /syncfromflags:manual /update
- /Syncfromflags:manual—enables synchronization of the NetTime service with an external source
- /manualpeerlist:”0.pool.ntp.org,0x8 1.pool.ntp.org,0x8 2.pool.ntp.org,0x8″—lists external NTP servers for synchronization for configured NTP servers. The 0x8 parameter means that synchronization is performed in the NTP client mode in accordance with the interval suggested by the NTP server.
The following values are allowed for synchronization parameters with external NTP servers:
- 0x1 — SpecialInterval, use of a special polling interval;
- 0x2 — UseAsFallbackOnly mode;
- 0x4 — SymmetricActive, symmetric active mode;
- 0x8 — Client, send request in client mode.
Now you need to advertise the PDC-Emulator as a reliable source of time for domain client:
w32tm /config /reliable:yes
Now you need to restart the W32Time service on the PDC:
net stop w32time && net start w32time
To synchronize the time immediately run the command:
w32tm /resync
Tip. The list of current NTP sources is stored in the registry key HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters in the NtpServer parameter.
Configuring time synchronization using Group Policy
To configure an external NTP server on a PDC use Group Policy. When using such a policy, you do not have to reconfigure time synchronization settings to DCs when transferring the PDC role to another server.
- Open the Group Policy Management Console (GPMC.msc) and create a new policy PDC_NTP_sync;
- Assign this policy to the OU Domain Controllers;
- Create a WMI filter with the following code and link it to your policy (this WMI filter allows you to find a domain controller with the role of PDC and apply policy only to it): Select * from Win32_ComputerSystem where DomainRole = 5.
- Switch to the policy editing mode and go to the section Computer Configuration > Policies > Administrative Templates > System > Windows Time Service > Time Providers. Enable the policy Enable Windows NTP Client and edit the Configure Windows NTP Client policy.
- Specify the following policy settings:
Enabled NtpServer: 0.pool.ntp.org,0x8 1.pool.ntp.org,0x8 2.pool.ntp.org,0x8 Type: NTP CrossSiteSyncFlags: 2 ResolvePeerBackoffMinutes: 15 ResolvePeerBackoffMaxTimes: 7 SpecialPollInterval: 1024 EventLogFlags: 0
- It remains to run the following commands on DC to force synchronizing. Open elevated command prompt and type:
w32tm /config /syncfromflags:domhier /update net stop w32time && net start w32time
To check the current NTP time sources and their statuses, run the command:
w32tm /query /peers
To reset the time service settings and clear the list of external NTP servers, run the following commands:
net stop w32time w32tm /unregister w32tm /register net start w32time
Note that by default, the domain clients synchronize time with DC using the Windows Time Service (Windows Time), rather than using the NTP protocol.
If your PDC is a virtual machine, we recommend you to check the article Time Configuration for a Virtualized Domain Controllers.
FAQs
1. What happens when a domain controller’s time isn’t synchronized?
When a domain controller isn’t synchronizing time correctly, it can lead to a cascade of issues. These can range from authentication failures, due to Kerberos ticket mismatches, to confusing or inaccurate event logs. It’s essential to configure DC to synchronize time properly to maintain network integrity.
2. How does the PDC emulator role affect time synchronization in a multiple-domain controller environment?
In a multiple-domain controller environment, the PDC emulator plays a vital role as the master timekeeper. All other network domain controllers and member servers synchronize their time with the PDC emulator, ensuring a uniform and reliable time source throughout the infrastructure.
3. Can I manually configure my PDC to sync with multiple external NTP servers?
Multiple external NTP servers can be specified when configuring your PDC for time synchronization. This is done for redundancy, ensuring time synchronization continues uninterrupted even if one server goes offline. In the ‘w32tm’ config command, the /manualpeerlist parameter can list multiple NTP servers, separated by spaces.
4. What does the ‘/syncfromflags:manual’ command do in time synchronization?
The /syncfromflags:manual command enables the NetTime service on your PDC to synchronize with an external source rather than following the domain hierarchy. It allows the domain controller to maintain accurate system time even when other controllers in the hierarchy may be unavailable or inaccurate.
5. What’s the purpose of the ‘w32tm /config /reliable:yes’ command?
The ‘w32tm /config /reliable:yes’ command is used to designate the PDC emulator as a reliable time source for the network. This setting is crucial because it establishes the PDC emulator as the master time server from which all other servers and clients in the network synchronize their time.
Wrapping up
In essence, configuring a Domain Controller (DC) to synchronize time with an external NTP server is a fundamental yet crucial aspect of managing an Active Directory Domain Services (AD DS) environment. Understanding the importance of time synchronization and the role played by the PDC emulator allows us to see why this configuration is essential.
Active Directory’s hierarchical nature, particularly the PDC emulator’s role, ensures that time is consistent across the domain hierarchy, from multiple domain controllers to individual member servers. However, to maintain the highest accuracy and reliability, the PDC emulator should be configured to sync with an external time source.
Network Time Protocol (NTP) is indispensable for accurate and reliable time synchronization, offering a robust solution for maintaining system time across various networks. By configuring the DC to sync with external NTP servers, we harness the power of the NTP protocol to keep our AD environment running smoothly.
Cyril Kardashevsky
I enjoy technology and developing websites. Since 2012 I’m running a few of my own websites, and share useful content on gadgets, PC administration and website promotion.
Прочитано: 39 744
Задача: разобрать действия по организации сервиса времени для всей локальной сети дабы рабочие станции, сервера получали точное время и оно везде было одинаковым. Сервис времени организовывается на домен контроллере под управлением операционной системы Windows Server 2012 R2, также действия ниже аналогичны и для Server 2008 R2
Схема: интернет — Mikrotik — DC – Workstations
Открываю на srv-dc консоль командной строки с правами администратора:
Win + X — Command Prompt (Admin)
Определяю какой домен контроллер (Windows Server 2012 R2 Std) имеет роль PDC если домен контроллеров несколько в домене:
C:\Windows\system32>netdom query fsmo Schema master srv-dc.polygon.local Domain naming master srv-dc.polygon.local PDC srv-dc.polygon.local RID pool manager srv-dc.polygon.local Infrastructure master srv-dc.polygon.local The command completed successfully.
Как видно из вывода, это контроллер домена srv-dc.polygon.local, подключаюсь теперь к нему по RDP или VNC соединению для выполнения следующих команд:
C:\Windows\system32>net stop w32time
Настраиваем внешний источник времени:
C:\Windows\system32>w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org"
Cделать ваш контроллер домена PDC доступным для клиентов:
C:\Windows\system32>w32tm /config /reliable:yes
Запускаю службу времени:
C:\Windows\system32>net start w32time
Также можно изменения вносить и через реестр в ключе: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
Чтобы после принудительно запросить получение точного времени проделываем:
C:\Windows\system32>W32tm /config /reliable:yes The command completed successfully. C:\Windows\system32>W32tm /config /update The command completed successfully. C:\Windows\system32>W32tm /resync Sending resync command to local computer The command completed successfully.
Вот и все, служба времени Windows начинает синхронизацию времени с внешним источником, посмотреть этот процесс можно так:
C:\Windows\system32>w32tm /query /configuration
После нужно добавить параметр в DHCP оснастку, что сервер времени это наш домен контроллер:
Win + X — Control Panel — Administrative Tools — запускаю оснастку DHCP: DHCP → srv-dc.polygon.local → IPv4 → Scope [10.10.10.0] local → и через правый клик мышью по Scope Options вызываю меню Configure Options… где добавляю опцию для всего домена: 042 NTP Servers
Теперь доменные Windows станции будут знать, что сервер времени это домен контроллер, а для моих Ubuntu системы после установке sudo apt-get install ntp -y в файле /etc/ntp.conf нужно будет в параметре server указать IP адрес этого домен контроллера и перезапустить службу времени sudo service ntp restart.
Если же у Вас DHCP сервис развернут не на Windows, то донести до всех где брать точное время можно через групповые политики GPO. Создаем GPO_NTP и предопределяем, что ориентирована она будет на текущий домен и все рабочие станции посредством WMI-фильтра.
Открываю оснастку на srv-dc управления групповыми политиками домена:
Win + X — Control Panel — Administrative Tools — Group Policy Management, открываю на редактирование: Group Policy Management → Forest: polygon.local → Domains → polygon.local → и через правый клик мышью по WMI Filters вызываю меню New…
- Name: W7
- Decription: Windows 7 x86/x64
- Queries: → Add
- Namespace: root\CIMv2
- Query: Select
* from WIN32_OperatingSystem where ((Version > "6") and
(ProductType = 1))
и
нажимаю OK, OK, Save
После перехожу к редактированию групповой политики для рабочих станции домена, через правый клик мышью по GPO_NTP вызываю меню Edit.
Computer Configuration → Policies → Administrative Tools → System → Windows Time Service → Time Providers → Configure Windows NTP Client, включаю ее Enabled и определяю настройки:
NtpServer: srv-dc.polygon.local,0x9
все остальное оставляю по умолчанию.
После нажимаю Apply & OK.
И не забываем к политике добавить WMI фильтр. В конечном итоге политика должна выглядеть так:
После когда политика применится к системам согласно WMI-фильтру можно будет проверить куда смотрит рабочая станции если ей нужно точное время:
C:\Users\alektest>w32tm /query /status Индикатор помех: 0(предупреждений нет) Страта: 4 (вторичная ссылка - синхронизирована с помощью (S)NTP) Точность: -6 (15.625ms за такт времени) Задержка корня: 0.0876923s Дисперсия корня: 7.8503892s Идентификатор опорного времени: 0x0A0A0A02 (IP-адрес источника: 10.10.10.2) Время последней успешной синхронизации: 30.04.2017 16:46:38 Источник: srv-dc.polygon.local Интервал опроса: 10 (1024s) C:\Users\alektest>w32tm /monitor srv-dc.polygon.local *** PDC ***[10.10.10.2:123]: ICMP: 0ms задержка NTP: +0.0000000s смещение относительно srv-dc.polygon.local RefID: ground.corbina.net [85.21.78.91] Страта: 3
Работает.
На замету: Если же в локальной сети появятся рабочие станции под управлением Windows 8 и выше, то нужно будет модифицировать WMI фильтр.
Но как известно, в случае чего с домен контроллером его роли можно забирать, так может произойти в случае различных проблем. Вот забрали роль PDC и время поехало во всем домене, чтобы этого не произошло нужно создать групповую политику ориентированную только на домен контроллер с ролью PDC: GPO_PDC и WMI фильтр с именем PDC следующего содержания:
Select
* from Win32_ComputerSystem where DomainRole = 5
Computer Configuration → Policies → Administrative Tools → System → Windows Time Service → Time Providers → Configure Windows NTP Client, включаю ее Enabled и определяю настройки:
NtpServer: 0.pool.ntp.org,0x9
все
остальное оставляю по умолчанию.
После нажимаю Apply & OK.
и Computer Configuration → Policies → Administrative Tools → System → Windows Time Service → Time Providers -> Enable Windows NTP Client включить Enable.
Также параметр Type вместо NT5DS можно использовать и NTP
И не забываем к политике добавить WMI фильтр ← PDC. Теперь не важно кто является домен контроллером, точное время на нем будет.
А раз так, что рабочие станции не обязательно привязывать/создавать к политике назначения точного времени, ведь по умолчанию рабочие станции домена, итак, забирают точное время с контроллера домена по умолчанию.
Подведу итог:
- Настраиваю GPO и привязываю ее через WMI фильтр к серверу у которого есть роль PDC
- В оснастке DHCP указываю параметр кто в домене является сервером у которого клиентским рабочим станциям запрашивать точное время.
- Если DHCP не на базе Windows, то можно настроить GPO и сделать нацеливание на определенную ось.
На заметку: Если домен контроллер развернут на виртуальной системе, то следует проверить, что время берется не с гипервизора, а через настройку этой заметки.
На заметку: если роль PDC была переназначена на другой сервер, то я советую перезагрузить домен контроллер и все остальные также.
На этом у меня все. Задача выполнена и задокументирована, с уважением автор блога Олло Александр aka ekzorchik.
Синхронизация времени — важный и во многом достаточно критичный аспект работы Active Directory, особенно сегодня, когда широко используется взаимодействие с внешними системами и работа с сотрудниками, которые могут находиться в различных часовых поясах. Применение систем виртуализации вносит дополнительные особенности, которые также следует учитывать. Поэтому данный вопрос может оказаться не столь простым, как кажется, а синхронизация с внешним источником точного времени становится одной из актуальных задач.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Прежде всего вспомним, как происходит синхронизация времени в Active Directory. В качестве эталона времени выступает контроллер, владеющий ролью эмулятора PDC. Это FSMO-роль и эмулятором PDC может являться только один контроллер в каждом домене. С ним синхронизируют время остальные контроллеры домена. Доменные ПК и рядовые серверы сверяют часы с ближайшим контроллером домена.
Сам эмулятор PDC в качестве источника точного времени может использовать либо аппаратные часы материнской платы, либо внешний источник точного времени, при нахождении в виртуальной среде также может быть использовано время хоста виртуализации.
О последней поговорим более подробно. Раньше все было довольно просто, источником времени в домене обычно служили аппаратные часы эмулятора PDC, ну отстали или убежали на пару минут, в конце концов можно и подвести. Когда добавилось требование взаимодействия с внешними системами критичными к точному времени (например, использующих криптографию), то в качестве источника времени стал выступать внешний сервер. От него получал время эмулятор PDC, с ним синхронизировались контроллеры, а от них точное время расходилось на остальных участников домена.
С приходом виртуализации все изменилось, появился еще один источник времени — время хоста виртуализации. Многие гипервизоры по умолчанию имеют включенной настройку синхронизации времени гостевых систем и при попадании в виртуальную среду контроллера может возникнуть следующая коллизия: контроллер синхронизирует время с хостом, но сам хост, являясь членом домена, в свою очередь синхронизируется с контроллером.
Еще хуже, если в виртуальную среду попадает эмулятор PDC, в силу особенностей таймера виртуальных машин, время внутри может достаточно сильно плавать, поэтому виртуальный эмулятор PDC всегда должен синхронизировать время с внешним источником, а синхронизация времени с хостом должна быть отключена, последнее касается и всех остальных виртуальных членов домена.
Давайте перейдем от теории к практике. Начнем с того, что выясним кто из контроллеров является эмулятором PDC и эталоном времени для домена. Это можно сделать на любом контроллере домена командой:
netdom query fsmo
В выводе будут показаны все хозяева операций, нас интересует только эмулятор PDC.
Затем перейдем на указанный контроллер и узнаем источник времени для него, для этого выполните команду:
w32tm /query /source
Если в выводе вы увидите:
Local CMOS Clock
то источником времени являются аппаратные часы. А если там будет:
VM IC Time Synchronization Provider
то вы имеете дело с виртуальной машиной, которая синхронизирует время с хостом.
Данную настройку следует исправить, это можно сделать в настройках виртуальной машины, отключив синхронизацию времени с хостом, либо в самой системе, для этого откройте ветвь реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider
и установите для параметра Enabled значение 0.
После данного изменения следует перезапустить Службу времени Windows или перезагрузить компьютер.
Следующим шагом будет настройка нашего эмулятора PDC на работу с внешними источниками точного времени. Все изменения также будут вноситься через реестр. Прежде всего изменим тип сервера на NTP, для этого откроем ветку
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
и для параметра Type укажем строковое значение NTP. А для параметра NtpServer зададим адреса серверов точного времени, после каждого из которых, через запятую укажем 0x8, если мы хотим работать как стандартный NTP-клиент или 0x1 если будем использовать собственные параметры, например:
0.ru.pool.ntp.org,0x1 1.ru.pool.ntp.org,0x1 2.ru.pool.ntp.org,0x1
После чего в
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
Параметр Enabled установим в значение 1.
Затем перейдем в
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
и установим для параметра AnnounceFlags значение A.
Следующие параметры будут работать, только если мы при указании серверов добавили 0x1, иначе будут использоваться настройки, предлагаемые сервером. Чтобы задать период синхронизации откройте ветку
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
и для параметра SpecialPollInterval укажите десятичное значение в секундах.
Вернемся в
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
и зададим максимальное время опережения и отставания часов, после которых синхронизация производиться не будет. Для этого используются параметры MaxPosPhaseCorrection (опережение) и MaxNegPhaseCorrection (отставание) для которых также следует задать десятичное значение в секундах. По умолчанию стоит 48 часов. Это значит, что если время на эмуляторе PDC уйдет от точного источника более чем на 48 часов в любую сторону, то синхронизация производиться не будет.
Если вы хотите, чтобы время синхронизировалось всегда, то установите в оба параметра шестнадцатеричное значение FFFFFFFF.
Выполнив настройки перезапустите Службу времени Windows, это также можно сделать в командной строке:
net stop w32time
net start w32time
После чего еще раз выполним
w32tm /query /source
и убедимся, что источником времени для эмулятора PDC является внешний сервер.
Затем выполним данную команду на рядовых контроллерах домена, в качестве источника времени там должен быть указан эмулятор PDC, и на обычных ПК, где в выводе будет присутствовать любой из контроллеров домена. Обязательно выполните контроль для виртуальных машин, чтобы быть уверенным, что они используют время домена, а не хоста виртуализации.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
В этой статье я покажу как можно синхронизировать контроллеры домена с внешним источником времени, например time.windows.com или ntp.pool.org .
По умолчанию все машины в домене синхронизируют время с контроллером домена, который является внутренним сервером времени. Если у вас несколько контроллеров домена, время будет синхронизироваться с контроллером домена, который выполняет роль эмулятора PDC. Чтобы проверить, какой DC является эмулятором PDC в вашем домене, вам нужно выполнить следующую команду:Get-ADDomain | select PDCEmulator
Get-ADDomain | select PDCEmulator
В PowerShell это выглядит так:
После того, как роль эмулятора PDC установлена, нужно выполнить несколько команд, чтобы синхронизировать время. Команды выполняются на эмуляторе PDC в PowerShell:
w32tm /config /syncfromflags:manual /manualpeerlist:»time.windows.com,0x8″ /reliable:yes /updatew32tm /config /updaterestart-service w32time
Если вам нужно добавить более одного NTP-сервера, записи списка узлов разделяются пробелами следующим образом:
«0.ntp.pool.org,0x1 1.ntp.pool.org,0x1 2.ntp.pool.org,0x1»
После завершения выполнения команд служба времени Windows должна начать синхронизацию времени на контроллерах домена с внешним источником. Для просмотра конфигурации времени вы можете использовать:
w32tm /query /configuration
На левом скриншоте показан результат выполнения команды до изменения источника времени на внешний, на правом после
Была настроена синхронизация времени с time.windows.com .
Чтобы настроить клиентский компьютер для автоматической синхронизации времени через домен надо выполнить команду:
w32tm /config /syncfromflags:domhier /update
и проверить, выполняется ли синхронизация:
w32tm /monitor
для повторной синхронизации можно выполнить
w32tm /resync
Между клиентами и эмулятором PDC, а также между эмулятором PDC и интернет должен быть открыт порт NTP 123 tcp/udp.
Для проверки подключения удобно использовать переключатель /stripchart команды w32tm:
w32tm /stripchart /computer:time.windows.com
Найдено тут