Avtoprokat-rzn.ru

Автопрокат Эволюшн
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как работает синхронизация времени в домене

Babochkinbox

В операционных системах Windows за синхронизацию времени отвечает служба времени Windows, она же w32time. Эта служба обеспечивает работу серверной, и клиентской частей. Иными словами один и тот же компьютер может выступать в роли сервера и клиента одновременно.

Служба времени Windows не имеет графического интерфейса. Настройка производится через CMD утилитой w32tm, ручной правкой реестра, или через групповые политики.

Утилита w32tm меняет параметры в разделе

Групповые политики создают раздел в

Параметры, созданные групповыми политиками, имеют больший приоритет, и перекрывают параметры по умолчанию.

Рассмотрим содержимое подраздела Parameters компьютера, находящегося в рабочей группе

w32tm_param_wg

и для доменного компьютера

w32tm_param_dom

Ключ NtpServer определяет список серверов времени, с которыми будет происходить синхронизация. По умолчанию указан адрес time.windows.com,0x9. При указании более одного сервера времени, адреса нужно разделять пробелами.

Параметр 0x9, является суммой 0x1 и 0x8.

0x1 – SpecialInterval, использование специального интервала опроса.
0x2 – режим UseAsFallbackOnly.
0x4 – SymmetricActive, симметричный активный режим.
0x8 – Client, отправка запроса в клиентском режиме.

Специальный интервал опроса указан в ключе

и составляет 3600 секунд. То есть синхронизация происходит каждый час.

Ключ Type определяет тип синхронизации, и имеет следующие значения:

NoSync- служба времени не синхронизируется с другими источниками.
NTP- служба времени выполняет синхронизацию с серверами, указанными в записи реестра NtpServer.
NT5DS- служба времени выполняет синхронизацию на основе иерархии домена.
AllSync — служба времени использует все доступные механизмы синхронизации.

В случае с компьютером из рабочей группы, используется тип NTP, то есть синхронизация времени происходит с сервером time.windows.com, указанном в ключе NtpServer.

Доменный компьютер использует тип NT5DS. В данном случае синхронизация времени происходит с контроллером домена, на котором авторизовался компьютер. Контроллеры синхронизируют свое время с контроллером, являющимся владельцем роли PDC Emulator. Владелец роли PDC Emulator, также использует тип NT5DS и синхронизирует свое время с локальным часами, получившими время от CMOS схемы, расположенной на материнской плате. Минус в том, что время полученное от CMOS схемы постоянно «съезжает» относительно реального. Чтобы такого не происходило, на корневом контроллере с ролью PDC Emulator, меняют тип на NTP и в NtpServer указывают список внешних серверов времени.

На корневом контроллере домена, с ролью PDC Emulator, откроем CMD и выполним команду

/manualpeerlist — задает список адресов источников времени. Этот список будет добавлен в значение уже известного ключа NtpServer.

/syncfromflags — определяет источник синхронизации. Этот параметр меняет значение ключа Type. Возможные варианты:

MANUAL — синхронизация с узлами из заданного вручную списка. Аналогичен значению NTP.
DOMHIER — синхронизация с контроллером домена Active Directory в доменной иерархии. Аналогичен значению NT5DS.
NO — без синхронизации. Аналогичен значению NoSync.
ALL — синхронизация как с узлами, заданными вручную, так и с узлами домена. Аналогичен значению AllSync.

/update — уведомляет службу времени, что конфигурация изменилась, чтобы изменения вступили в силу.

Может ли компьютер выступать в роли сервера времени, определяется следующим ключом

У контроллера данный ключ имеет значение 1, у компьютера 0. Иными словами любой контроллер домена выступает в качестве сервера времени.

За то, как служба времени будет корректировать время на клиенте, отвечает ключ

У компьютера, находящегося в рабочей группе, значение ключа MaxAllowedPhaseOffset равно 1-ой секунде. У доменного компьютера 300 секунд. Если разница во времени между клиентом и сервером времени будет больше, чем значение ключа MaxAllowedPhaseOffset, то служба времени сразу поменяет время на клиенте, на время, установленное на сервере времени. Если разница во времени меньше, то корректировка часов будет происходить постепенно. Это сделано, чтобы предотвратить сбои служб, чувствительных к сдвигам времени. С другой стороны 300 секунд, это 5 минут, или максимально допустима разница во времени, для протокола Kerberos.

Чтобы изменить настройки службы времени через групповые политики, нужно создать фильтр WMI, для нацеливания политики на корневой контроллер домена, с ролью PDC Emulator. Для этого нужно открыть оснастку «Управление групповой политикой», нажать на раздел «Фильтры WMI» правой кнопкой мыши и выбрать «Создать». В поле имя нужно написать название фильтра, например, «PDC Emulator». Далее нужно нажать кнопку «Добавить» и вставить WMI запрос

затем нужно нажать «Ok» и «Сохранить».

wmi_pdc

Создадим политику, нажмем правой кнопкой мыши на раздел «Domain Controllers» и выберем «Создать объект групповой политики…», назовем его «PDC Emulator Time Sources». Нажмем правой кнопкой мыши по созданному объекту, выберем «Изменить». Откроем раздел «Конфигурация компьютера->Политики->Административные шаблоны->Система->Служба времени Windows->Поставщики времени». Выберем параметр «Настроить NTP-клиент Windows». В поле NtpServer вставим адреса серверов времени

В поле Type нужно выбрать значение «NTP», затем нажать «Ок» и закрыть окно «Редактор управления групповыми политиками».

gpo_ntp_cl

После этого нужно выбрать созданную политику «PDC Emulator Time Sources» и в поле «Фильтр WMI» выбрать созданный ранее фильтр «PDC Emulator»

Читайте так же:
Регулировка фар на марке 110

f_wmi_pdc

Диагностика

Принудительно синхронизировать время можно командой

Посмотреть текущий источник времени можно командой

Эта команда показывает текущий источник времени, время синхронизации и прочую информацию

Эта команда показывает данные о всех источниках времени

Разницу во времени между компьютером и источником времени можно посмотреть командой

Для просмотра текущей конфигурации используется команда

Перезапустить службу времени можно командой

Если что-то пошло не так, можно перерегистрировать службу времени. При этом создастся заново вся ветка реестра, относящаяся к службе времени

Для быстрой синхронизации времени с определенным хостом, можно воспользоваться командой

Если выполнить команду на доменном компьютере без указания хоста, с которым нужно синхронизировать время, синхронизация произойдет с доменным сервером времени.

На днях вновь озаботился вопросом синхронизации времени на компьютерах в домене Windows 2008. Теоретически, нет никакой проблемы, если первый контроллер домена будет сверять время с железом, на котором стоит. Однако моя практика показала, что когда DC стоит на виртуальной машине, а платформа виртуализации (конкретно, была использована VMWare ESXi 5) сверяет время, как и все остальные, с DC, то время в домене начинает сильно убегать. В любом случае, намного лучше и удобнее, если время не только синхронизировано внутри самого домена, но и является достоверным.

Итак, настройка синхронизации времени в домене Windows 2008.

0. Прежде чем настраивать синхронизацию времени нужно обеспечить прохождение трафика от PDC в интернет и обратно по порту UDP 123.

1. Определяем основной контроллер домена. Обычно администратор прекрасно знает, какой из контроллеров у него держит роль PDC, но для верности можно легко проверить это, набрав в командной строке:

В ответ будет выдано несколько строк, в числе которых можно найти PDC.

2. Переходим на PDC и запускаем командную строку. ПО умолчанию, в домене 2008, даже если вход в систему выполнен под учетной записью администратора, полные права в CMD будут только если запустить CMD в режиме RUN AS. В меню «Start» щелкаем по строке «Command Promt» правой кнопкой мыши и выбираем в контекстном меню «Run as administrator».

3. Останавливаем службу W32Time:

4. Задаем пул адресов достоверных источников времени

Если команда копировалась в командную строку со страницы этого сайта через буфер обмена и в результате выдается сообщение вида:

можно попробовать удалить и ввести вручную символы кавычек. Годится символ с последней клавиши среднего ряда в латинской раскладке.

5. Теперь попросим PDC отвечать клиентам на запросы о синхронизации времени:

6. Снова запускаем службу времени W32Time:

После настройки нужно обязательно проверить журнал событий в разделе «Windows Logs — System» и убедиться, что синхронизация работает, в противном случае разбираться с ошибками. Проблемы могут быть с доступом в интернет с контроллера по порту UDP 123, либо с недоступностью заданных источников времени.

Проверить теущую конфигурацию службы времени можно командой:

либо сохранить конфигурацию в текстовый файл, Например, так:

Имя файла, конечно, можно задать произвольное.

Выполнялись и исправно работали приведенные команды на английской версии Windows Server 2008 R2 Standard, Service Pack 1

Blog of Khlebalin Dmitriy

Настройка синхронизации времени в домене Active Directory.

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

  • топологии синхронизации времени среди участников Active Directory
  • оптимальной с моей точки зрения конфигурации сервера времени корневого эмулятора PDC
  • полезных командах для настройки и диагностики синхронизации времени
  • особенностях , которые нужно учитывать для виртуализированных контроллеров домена

Топология синхронизации времени среди участников Active Directory

Среди компьютеров, участвующих в Active Directory работает следующая схема синхронизация времени.

  • Контроллер корневого домена в лесу AD, которому принадлежит FSMО-роль эмулятора PDC (назовем его корневым PDC), является источником времени для всех остальных контроллеров этого домена.
  • Контроллеры дочерних доменов синхронизируют время с вышестоящих по топологии AD контроллеров домена.
  • Рядовые члены домена (сервера и рабочие станции) синхронизируют свое время с ближайшим к ним доступным контроллером домена, соблюдая топологию AD.

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

Синхронизация клиентов корневого PDC может осуществятся как с его внутренних часов, так и с внешнего источника. В первом случае сервер времени корневого PDC объявляет себя как «надежный» (reliable).

Далее будет приведена оптимальная конфигурация сервера времени корневого PDC, при которой сам корневой PDC периодически синхронизирует свое время от достоверного источника в интернете, а время обращающихся к нему клиентов синхронизирует со своими внутренними часами.

Читайте так же:
Чистка и регулировка карбюратора к 126

Конфигурация NTP-сервера на корневом PDC

Конфигурирование сервера времени (NTP-сервера) может осуществляться как с помощью утилиты командной строки w32tm, так и через реестр. Где возможно, будут показаны оба варианта.

Включение синхронизации внутренних часов с внешним источником

  • [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters]
    «Type»=»NTP»
  • w32tm /config /syncfromflags:manual

Подробности — в библиотеке TechNet.

Объявление NTP-сервера в качестве надежного

  • [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig]
    «AnnounceFlags»=dword:0000000a
  • w32tm /config /reliable:yes

Подробности — в библиотеке TechNet.

NTP-сервер по умолчанию включен на всех контроллерах домена, однако его можно включить и на рядовых серверах.

  • [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpServer]
    «Enabled»=dword:00000001

Задание списка внешних источников для синхронизации

  • [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters]
    «NtpServer»=»time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 ru.pool.ntp.org,0x8»
  • w32tm /config /manualpeerlist:»time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 ru.pool.ntp.org,0x8″

Флаг 0×8 на конце означает, что синхронизация должна происходить в режиме клиента NTP, через предложенные этим сервером интервалы времени. Для того, чтобы задать свой интервал синхронизации, необходимо использовать флаг 0×1. Все остальные флаги описаны в библиотеке TechNet.

Задание интервала синхронизации с внешним источником

Время в секундах между опросами источника синхронизации, по умолчанию 900с = 15мин. Работает только для источников, помеченных флагом 0×1.

  • [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpClient]
    «SpecialPollInterval»=dword:00000384

Установка минимальной положительной и отрицательной коррекции

Максимальная положительная и отрицательная коррекция времени (разница между внутренними часами и источником синхронизации) в секундах, при превышении которой синхронизация не происходит. Рекомендую значение 0xFFFFFFFF, при котором коррекция сможет производиться всегда.

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig]
«MaxPosPhaseCorrection»=dword:FFFFFFFF
«MaxNegPhaseCorrection»=dword:FFFFFFFF

Все необходимое одной строкой

w32tm.exe /config /manualpeerlist:»time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 pool.ntp.org,0x8» /syncfromflags:manual /reliable:yes /update

  • Применение внесенных в конфигурацию службы времени изменений
    w32tm /config /update
  • Принудительная синхронизация от источника
    w32tm /resync /rediscover
  • Отображение состояния синхронизации контроллеров домена в домене
    w32tm /monitor
  • Отображение текущих источников синхронизации и их статуса
    w32tm /query /peers

Особенности виртуализированных контроллеров домена

Контроллеры домена, работающие в виртуализированной среде, требуют к себе особенного отношения.

  • Средства синхронизации времени виртуальной машины и хостовой ОС должны быть выключены. Во всех адекватных системах виртуализации (Microsoft, vmWare и т. д.) присутствуют компоненты интеграции гостевой ОС с хостовой, которые значительно повышают производительность и управляемость гостевой системой. Среди этих компонентов всегда есть средство синхронизации времени гостевой ОС с хостовой, которое очень полезно для рядовых машин, но противопоказано для контроллеров домена. Потому как в этом случае весьма вероятен цикл, при котором контроллер домена и хостовая ОС будут синхронизировать друг друга. Последствия печальны.
  • Для корневого PDC синхронизация с внешним источником должна быть настроена всегда. В виртуальной среде часы не настолько точны как в физической, потому как виртуальная машина работает с виртуальным процессором и прерываниями, для которых характерно как замедление, так и ускорение относительно «обычной» частоты. Если не настроить синхронизацию виртуализированного корневого PDC с внешним источником, время на всех компьютерах предприятия может убегать/отставать на пару часов в сутки. Не трудно представить неприятности, которые может принести такое поведение.

В данном посте Максим Ефремов рассказал о настройке NTP в Win2008, Vista в семерке это делается аналогично.

Если у Вас домен, то он сам синхронизирует время на рабочих станциях. Только, для того чтоб он сам не искал с кем-бы ему синхронизироваться, надо в реестре:
«HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters»
Установить значение параметра LocalNTP равным 1.
На рабочих станциях (на всех) один раз прописать «net time \имя_сервера /set»
Ах да, после изменений в реестре еще надо перезапустить службу: «net w32time stop» и «net w32time start» поочереди.

Если скажем, вы хотите чтоб время синхронизировалось каждый час, то сделайте следуеще:
1. В реестре, по тому же адресу, удалить параметр «Period».
2. Вместо него создать параметр с тем же именем, только типа REG_DWORD.
3. Для нового параметра задать значение 24

На компах с 2000 и выше «левые» программы не нужны, все решается стандартными средствами.

Например, на компе подключенном к Инету:
1. net time /setsntp:»192.5.41.209 192.5.41.41″
2. Рестарт time service

На контроллере домена:
1. net time /setsntp:»АйПи_компа_подключенного_к_инету»
2. Рестарт time service

Да, но все вышенаписанное, при правильной настройке, нормально работает в виндовых платформах. Но в определенный момент, я столкнулся с тем, что сервак телефонии Авая, так и не смог синхронизироваться с виндовым сервером времени, как я ни старался. Зато с сервером времени развернутым на линухе (или на юнихе, я уже не вспомню точно) синхронихировался за 2 секунды и без проблем.

По сему для себя мы сделали вывод, что при наличии в компании смешанной инфраструктуры (windows+nix) актуальней будет использовать NTP сервер на nix платформе (в моем случае это будет freebsd), а далее соответственно как сами настроите. О настройке NTP сервака на freebsd в моих будущих постах.

Всем удачи в работе .

Читайте так же:
Как отрегулировать карбюратор пилы штиль 250

P.S. Здесь же будут полезны вот эти сайты:

за что ее автору большое спасибо.

P.S. Здесь еще будет полезна краткая сводка команд:

w32tm /config /update /manualpeerlist:»ntp.mobatime.ru» /syncfromflags:MANUAL /reliable:YES

Конфигурация NTP-сервера на корневом PDC

Конфигурирование сервера времени (NTP-сервера) может осуществляться как с помощью утилиты командной строки w32tm, так и через реестр. Где возможно, я приведу оба варианта.

Включение синхронизации внутренних часов с внешним источником

  • [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters] «Type»=»NTP»
  • w32tm /config /syncfromflags:manual

Подробности — в библиотеке TechNet.

Объявление NTP-сервера в качестве надежного

  • [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig] «AnnounceFlags»=dword:0000000a
  • w32tm /config /reliable:yes

Подробности — в библиотеке TechNet.

Включение NTP-сервера

NTP-сервер по умолчанию включен на всех контроллерах домена, однако его можно включить и на рядовых серверах.

  • [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpServer] «Enabled»=dword:00000001

Задание списка внешних источников для синхронизации

  • [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters] «NtpServer»=»time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 ru.pool.ntp.org,0x8»
  • w32tm /config /manualpeerlist:»time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 ru.pool.ntp.org,0x8″

Флаг 0×8 на конце означает, что синхронизация должна происходить в режиме клиента NTP, через предложенные этим сервером интервалы времени. Для того, чтобы задать свой интервал синхронизации, необходимо использовать флаг 0×1. Все остальные флаги описаны в библиотеке TechNet.

Задание интервала синхронизации с внешним источником

Время в секундах между опросами источника синхронизации, по умолчанию 900с = 15мин. Работает только для источников, помеченных флагом 0×1.

  • [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpClient] «SpecialPollInterval»=dword:00000384

Установка минимальной положительной и отрицательной коррекции

Максимальная положительная и отрицательная коррекция времени (разница между внутренними часами и источником синхронизации) в секундах, при превышении которой синхронизация не происходит. Рекомендую значение 0xFFFFFFFF, при котором коррекция сможет производиться всегда.

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig] «MaxPosPhaseCorrection»=dword:FFFFFFFF «MaxNegPhaseCorrection»=dword:FFFFFFFF

Все необходимое одной строкой

w32tm.exe /config /manualpeerlist:»time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 pool.ntp.org,0x8″ /syncfromflags:manual /reliable:yes /update

Полезные команды

  • Применение внесенных в конфигурацию службы времени изменений w32tm /config /update
  • Принудительная синхронизация от источника w32tm /resync /rediscover
  • Отображение состояния синхронизации контроллеров домена в домене w32tm /monitor
  • Отображение текущих источников синхронизации и их статуса w32tm /query /peers

Проверяем что не включена Локальная политика контроллера домена

1) Отключаем здесь настройки NTP клиента и сервера
2) Проверяем команда gpresult.

Для настройки вашего доменного контроллера с ролью “Эмулятора PDC” на синхронизацию с внешним источником, необходимо сначала выполнить команду

w32tm /stripchart /computer: 3.pool.ntp.org /samples:5 /dataonly

которая произведет 5 сравнений с источником, а затем:

w32tm /config /manualpeerlist: 3.pool.ntp.org / syncfromflags:manual /reliable

команду выполнять с повышенными правами

Проверяем внешний источник контроллера: W32TM /Query /Source

Настройка синхронизации времени в домене Active Directory (через групповые политики)

Очень удобно, когда все сервера и рабочие станции в AD имеют одинаковое время. Это избавляет от кучи проблем в структуре Active Directory.

Требования для статьи:
Будем считать, что у нас есть отдельные груповые политики для контроллера домена (или другого сервера, который будет выполнять эту роль) и для все остальных серверов и рабочих станций.
Синхронизацию сервера времени настраиваем с внешним сервером. Поэтому для сервера, который является центральным сервером времени, нужно открыть вовне порт 123, а так же для все остальных серверов и ПК должен быть открыт порт 123 во внутренней сети (NTP работает по этому порту).

Для того, чтобы это сделать открываем групповые политики

Поставшики времени

ad_ntp_1

И переходим Конфигурация компьютера->Административные шаблоны->Система->Службы времени Windows->Поставшики времени

Теперь нам нужно настроить 3 параметра.

Включить NTP клиент Windows — включено (для всех политик).

Включить NTP сервер Windows — включено (только в политике для локального сервера времени).

Настроить NTP клиент Windows (сервер времени)

ad_ntp_2

Настроить NTP клиент Windows (все остальные)

ad_ntp_3

Настроить NTP клиент Windows — Включаем и настраиваем параметры:
NtpServer: для локального сервера времени — time.windows.com,0x9 для всех остальных — имя сервера времени в нашей сети.

Type: для локального сервера времени — NTP для всех остальных — NT5DS.

Теперь дожидаемся применения политики, или применяем ее принудительно, командой:

w32tm

ad_ntp_4

w32tm /query /status

проверяем какие сервера используются (параметр Источник)
Для сервера он будет — time.windows.com,0x9
Для всех остальных — имя локального сервера времени.

На этом настройка синхронизации часов в домене завершена.

Заказать создание и поддержку безопасной IT-инфраструктуры любой сложности

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Страна Админа

За 2020 год из пары десятков тысяч посетителей, набралось всего пару десятков перечислений от 50 до 300 рублей.

Пустяк в денежном выражении, но большая ценность для автора. Посмотрим что год грядущий нам готовит ))

Сумма абсолютно не важна — главное участие.

NTP в домене Windows

Текст:

Казалось бы, по теме синхронизации времени в домене Windows написаны десятки подробных статей статей, например, качественная How the Windows Time Service Works.

Но пытаясь объяснить поведение ОС при изменении части настроек столкнулся с большими затруднениями — в статьях оказалось много пробелов, а местами и неточностей. На опыты и уяснение их результатов ушло несколько дней. Надеюсь статья поможет вам сэкономить время и посвятить его более приятным занятиям.

Читайте так же:
Отрегулировать кулису на альмере

Начнем. Зачем нам в домене нужно точное время на всех компьютерах?

Во-первых из-за Kerberos. Компьютер начинает проверку своей подлинности на контроллере с посылки Authentication Service Request (AS_REQ). Составной частью пакета является зашифрованная отметка времени. На котроллере домена отметка времени сравнивается с текущим временем системы и при разнице более 300 секунд запрос отклоняется. Эта мера безопасности затрудняет передачу измененных AS_REQ.

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

Если в первом случае, достаточно синхронизировать время внутри домена, то во втором необходима также синхронизация с внешним источником точного времени. Это может быть собственный NTP сервер, построенный на базе устройств спутниковой навигации GPS или ГЛОНАСС. Но обычно используются бесплатные NTP сервера доступные в Интернет.

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

w32tm /query /peers

на рабочей станции, на домен контроллере с которого она берет время и на PDC.

Поняв текущую схему, можно переходить к изменениям настроек. Здесь нужно понимать, что есть сервис Windows Time (W32Time) и его субкомпонент который переводит часы на компьютере или изменяет их тактовую частоту. Сейчас мы будем говорить о настройках W32Time касающихся работы с NTP серверами.

Настройки расположены в двух разделах реестра:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32Time

HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftW32Time

При установке ОС создается только первый раздел, второй появляется при применении локальной или доменной политики и имеет приоритет. Из командной строки настройки Windows Time можно помотреть командой w32tm /query /configuration. Причем, настройки взятые из первого раздела будут отображаться с отметкой (Local), из второго с отметкой (Policy).

Настройки достаточно подробно описаны в Windows Time Service Tools and Settings. У меня, сложности вызвал, параметр HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParametersNtpServer

Он представляет собой перечисление NTP серверов с которыми может синхронизироваться данный сервер. Каждый сервер представляет собой IP адрес или DNS имя, а также флаг, относящийся к данному NTP серверу. Флаг следует после имени сервера и отделяется от него запятой. Сервера в строке разделяются пробелами. (Внимание. Допустим только один пробел, двойной пробел считается концом строки и имена серверов после него не рассматриваются).

ntp1.vniiftri.ru,0x02 ntp2.vniiftri.ru,0x02 ntp3.vniiftri.ru,0x02 ntp4.vniiftri.ru,0x02

Используется два основных флага 0x01 и 0x02.

0x01 SpecialInterval

От этого флага зависит как будет Windows Time использоват параметры:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpClientSpecialPollInterval

Если данный флаг присутствует, то сервер NTP будет опрашиваться через заданный параметром SpecialPollInterval период времени (секунды).

При отсутствии флага будет использоваться динамический интервал, ограниченный параметрами MinPollInterval и MaxPollInterval (двоичный логарифм от секунд, например, значение параметра 6 значит опрос сервера будет происходит через 2 в степени 6 = 64 секунды).

Посмотреть интервалы опроса и время оставшееся до следующего опроса можно командой w32tm /query /peers — строки PeerPoll Interval и Time Remaining.

Еще раз подчеркну, что интервалы отосятся к опросу NTP серверов, а не к обновлению времени системы.

Имеются неожиданные последствия, если все сервера указать с данным флагом — они перейдут в статус Pending. Если выполнить команду w32tm /monitor то можно увидеть, что RefId изменился на ‘LOCL’ [0x4C434F4C]. То есть, сервер не стал синхронизироваться с внешними NTP и выбрал источником синхронизации Local CMOS Clock (идентификатор этого источника 0x4C434F4C). С таким сервером часть клиентов синхронизироваться не будет, например, UNIXы в зависимости от настроек.

0x02 UseAsFallbackOnly

По моему мнению, данный флаг сделан специально для запутывания процесса. Предполагается, что помеченные этим флагом сервера будут опрашиваться только в случае неудачного опроса основных серверов (без флага 0x02). Но на практике реакция на данный флаг непредсказуема.

Я рекомендую не указывать никаких флагов, а просто задать имена серверов разделенные пробелами:

ntp1.vniiftri.ru ntp2.vniiftri.ru ntp3.vniiftri.ru ntp4.vniiftri.ru

и управлять частотой опроса через параметры MinPollInterval и MaxPollInterval

Все настройки сделанные в реестре вручную либо через политику вступают в силу после рестарта сервиса W32Time.

Собственно все, про NTP, в реализации от Микрософт.

Теперь немного о субкомпоненте (clock discipline subcomponent) который переводит локальные часы системы или изменяет их тактовую частоту в соответствии с данными NTP.

Он также настраивается через реестр, выше была приведена статья с описанием настроек, к данному субкомпоненту относятся:

FrequencyCorrectRate
HoldPeriod
LargePhaseOffset
MaxAllowedPhaseOffset
MaxNegPhaseCorrection
MaxPosPhaseCorrection
PhaseCorrectRate
PollAdjustFactor
SpikeWatchPeriod
UpdateInterval

В большинстве случаев их изменение не требуется.

Но иногда таки приходится.

Например, параметр MaxAllowedPhaseOffset (по умолчанию 300 секунд) управляет способом перевода локальных часов. Если расхождение между локальным временем и NTP источником меньше MaxAllowedPhaseOffset то W32Time пытается скорректировать время изменением тактовой частоты часов. Если — больше то локальное время переводится согласно полученному от NTP сервера.

Читайте так же:
Регулировка зажигания мтз 80 ранее и позднее

Допустим, что в вашем домене, по какой-либо причине, в течении длительного времени не было синхронизации с внешним NTP. Обнаружив проблему вы видите, что разница составляет 320 секунд. Если просто исправить проблему, время в домене мгновенно изменится на 320 секунд, что может привести к различным последствиям для приложений чувствительных к отметкам времени.

Лучше попробовать способ с изменением тактовой частоты, для этого в первую очередь нужно установить MaxAllowedPhaseOffset = 350. Это необходимое, но недостаточное условие. Также должно выполнятся соотношение:

|CurrentTimeOffset| / (PhaseCorrectRate*UpdateInterval) < SystemClockRate / 2

SystemClockRate получим командой w32tm /query /status /verbose строка вывода ClockRate: 0.0156250s переведем секунды в такты ОС (1ms = 10000 тактов): 0.0156250s*1000*10000 = 156250 тактов.

В XP w32tm /query еще не поддерживается и значение SystemClockRate можно взять из реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfigLastClockRate

Выполняем команду w32tm /query /configuration — берем строки вывода UpdateInterval: 100 и PhaseCorrectRate: 1 (можно взять эти же значения из реестра).

UpdateInterval — по единицам измерения данной величины в источниках от Микрософт есть противоречие. В вышеприведенной статье указано, что величина измеряется в тактах и ее нужно подставлять в формулу как есть. В описании групповой политики единица измерения указана 1/100 секунды. В микрософтовском примере значение UpdateInterval используется без пересчета (по моим опытам это действительно так). PhaseCorrectRate — скалярная величина используем ее как есть.

Подставляем в условие:

|3200 000 000| / (1*100) < 156250 / 2

32 000 000 < 78125 не выполняется.

Подберем значение UpdateInterval с которым условие будет выполняься = 40960. Сделаем запас и установим UpdateInterval = 45000.

|3200 000 000| / (1*45000) < 156250 / 2

71111 < 78125 второе условие выполнено.

Изменяем значение UpdateInterval в реестре, перезапускаем сервис W32Time. Устраняем причину неработоспособности NTP (если необходимо выполняем w32tm /resync) и . локальные часы начинают плавно синхронизироваться, путем корректировки тактовой частоты.

Комментарии

Сегодня столкнулся с

Опубликовано 25 апреля, 2016 — 16:03 пользователем manager

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

Оказалось, что NTP сервера ntp*.vniiftri.ru блокируют трафик от определенных Интернет провайдеров.

Выявить такие ситуации можно анализируя сетевой трафик, например с помощью Network Monitor. Будет видно, что ваш сервер посылает правильный запрос, а в ответ ему ничего не приходит.

P.S. Аналогично time.windows.com и часть серверов ru.pool.ntp.org

Да, внутренние настройки —

Опубликовано 27 марта, 2018 — 09:28 пользователем Николай (не проверено)

Да, внутренние настройки — это хорошо, но и это очень важный момент:

«Допустим, что в вашем домене, по какой-либо причине, в течении длительного времени не было синхронизации с внешним NTP. Обнаружив проблему вы видите, что разница составляет 320 секунд.»

Проблема как раз в обнаружении проблемы. Я на простом домашнем компе написал батник, который синхронизирует время и засунул ярлык в автозагрузку. Когда внешне всё в порядке, то всё нормально синхронизируется. После этого службу даже можно остановить, чтобы не путалась под ногами. А если внешний сервер отвалится? w32tm об этом сообщит и завершит работу вроде бы штатно, при этом errorlevel=0. И окно cmd закроется, тем более, что оно у меня вообще свёрнуто. И я буду думать, что синхронизация продолжается. А как сделать так, чтобы неудачная попытка синхронизации изменяла поведение батника?

На вопрос так как он

Опубликовано 28 марта, 2018 — 17:52 пользователем manager

На вопрос так как он поставлен ответа у меня нет, но позволю предложить свое решение.

1. служба w32time остается включенной и настраивается на требуемый режим синхронизации, под ногами она совершенно не путается, это не какой-нибудь там windows search или diagnostic policy

2. в task scheduler регулярно запускается bat файл сверяющий время на локальном компьютере и ntp сервере при помощи команды w32tm /stripchart /computer:ntp1.vniiftri.ru /dataonly /samples:2

вывод там будет такой

The current time is 28.03.2018 17:40:53.
17:40:53, +00.3551899s

его можно распарсить и при расхождении во времени больше заданного выдавать оповещение

А как синхронизировать время

Опубликовано 12 апреля, 2018 — 10:32 пользователем Bob (не проверено)

А как синхронизировать время на сетевых устройствах (принтера, свитчи, камеры) с контроллером домена? Их в домен не добавить и реестра у них нет.

Клиентом может быть любое

Опубликовано 12 апреля, 2018 — 10:48 пользователем manager

Клиентом может быть любое устройство поддерживающее протокол NTP.

Вводить в домен не обязательно.

Просто задайте на устройстве адрес вашего домен контроллера и убедитесь, что на сетевом уровне открыты порты для NTP.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector