Рейтинг:1

Служба времени Windows синхронизируется с внешними ntp-серверами, только если они совпадают

флаг cn

Недавно у меня была проблема, которую я никогда раньше не видел. Однажды вечером примерно в 20:30 один из DC перевел часы на час назад. Этот сервер синхронизируется с двумя адресами в pool.ntp.org. Никто не присутствовал, когда это произошло, и журналы событий ясно показывают синхронизацию службы времени с общедоступным IP-адресом.

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

Обычно у меня ntp настроен на использование двух разных ntp-серверов, поэтому я предполагаю, что клиент подключается только к первому, который отвечает, и просто предполагает, что он предоставит правильное время.

итак, мой вопрос:

Есть ли способ настроить службу времени Windows так, чтобы она корректировала свои часы только после консультации с двумя разными серверами ntp, и они оба совпадали по правильному времени? у меня Win2019

Редактировать: Я не знал, что можно делать исторические запросы к результатам ntp (спасибо Paul Gear). Запрос двух IP-адресов, которые я настроил, показывает причину моей проблемы:

1623189765,"2021-06-08 22:02:45",-0.003809235,1,13.2,,,0,
1623188607, "2021-06-08 21:43:27", 6.1543e-05,1,12.8,6, "Ньюарк, Нью-Джерси, США", 0,
1623188607,"2021-06-08 21:43:27",6.1543e-05,1,12.8,,,0,
1623187438,"2021-06-08 21:23:58",0.011513196,1,12.4,6,"Ньюарк, Нью-Джерси, США",0,

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

Рейтинг:1
флаг cn

Не то чтобы сильно не соглашаться с Джоном Маховальдом, но, по крайней мере, начиная с Windows 2016, Служба времени Windows была значительно улучшена, включая полный сервис NTP. У них также есть документ, объясняющий как настроить Windows на высокую точность. Я не думаю, что есть необходимость запускать отдельный сервер NTP, отличный от Windows, если у вас нет чрезвычайно высоких требований к точности (в этом случае вы, вероятно, вместо этого использовали бы PTP - есть даже поддержка этого в Windows 2019).

Так что, скорее всего, вы только что столкнулись с неверным сервером пула. Такое случается время от времени, и пул очень хорошо умеет быстро удалять эти серверы. Если у вас есть запись IP-адреса сервера, с которым она синхронизировалась, вы можете просмотреть ее историю на странице https://www.ntppool.org/scores/<IP_АДРЕС>.

Я думаю, вероятно, поскольку рассматриваемая система все еще отвечала, она была выбрана потому, что у вас есть настроено слишком мало пиров (см. также следующий раздел в RFC8633 о наличии различных эталонных часов), и службе времени Windows не нужно было повторно запрашивать пул для нового IP-адреса, поскольку исходный сервер все еще отвечал.

Итак, самое важное, что вы можете сделать, чтобы предотвратить повторение этого, — это, как сказал Джон, добавить больше источников времени. Больше источников из пула — это хорошо, и если вы хотите что-то вне пула, которое имеет довольно стабильные IP-адреса и предлагает достаточно точный сервис, попробуйте time.apple.com, который представляет собой пул Geo-DNS глобально распределенных серверов уровня 1.

флаг cn
Я настраиваю все DC через скрипты, чтобы у них было два альтернативных источника ntp. У этого сервера было два источника, и примерно 15 часов назад он был перезагружен, и журнал событий показывает, что его серверы были 5.148.175.134 и 90.165.120.190, поэтому у него было два, которые он получил от ntp.org, но часы были скорректированы на основе только один из этих IP-адресов отвечает неправильными часами.Я пытаюсь решить, могу ли я настроить их все с 3 часами и заставить Windows обновлять время только в том случае, если два сервера ntp совпадают, игнорируя сервер ntp, возвращающий совершенно неправильное время.
флаг cn
Я должен добавить, что формулировка в документации говорит о том, что сервис сравнивает несколько источников, чтобы выбрать наиболее точный источник. Чего он не указывает, так это того, является ли это единичным случаем, когда служба загружается или перенастраивается, или если это происходит всякий раз, когда она периодически проверяет локальные часы. Я подозреваю, что это происходит только один раз, что не поможет избежать проблемы источника ntp, который обычно в порядке, внезапно возвращая неправильное время.
John Mahowald avatar
флаг cn
Если у w32time настроено 3+ источника, и один из них скачет на час, обнаружит ли он ложный тикер, а не шаг? Я не нашел документации по этому поведению.
флаг cn
Я не думал, что это будет делать, но у меня всегда настроено два источника, и журналы событий не врут. У меня есть единственная запись из службы времени, в которой говорится, что она меняет время и переключается ровно на час назад. В более ранних записях журнала событий указаны IP-адреса двух источников, которые он использовал, а на странице ntppool.org/sources указано, что только у одного из этих двух была проблема со временем... моя неудача заключалась в том, что сервер, по-видимому, использовал его в качестве основного и не проверял против второго.
Paul Gear avatar
флаг cn
TL;DR: двух источников недостаточно. Не думайте о 2 против 3. Думайте о 2 против 10. (В RFC NTP BCP, указанном в моем ответе, рекомендуется *минимум* из 4.) У меня нет сервера Windows для тестирования, но если я правильно прочитал документацию, теперь это полная реализация NTP, и она должна быть * постоянно* сравнивая свои восходящие источники с помощью алгоритма пересечения (см. диаграммы, которые я собрал на https://is.gd/xW2qbb), а это означает, что если у вас есть подходящее количество пиров, вы никогда не должны попасть в ситуацию, с которой столкнулись.
флаг cn
@paulgear отличная публикация в вашем блоге. Есть много, чтобы переварить, но я думаю, что это отвечает на мой вопрос.
Рейтинг:0
флаг cn

w32время Насколько я могу судить, это всего лишь клиент SNTP, поэтому, если пакет имеет большой скачок, время будет увеличено. Групповая политика можно настроить на наличие дополнительных NTP-серверов, но они предназначены для отката в случае сбоя, а не для нескольких ассоциаций одновременно с проверкой ошибок, такой как ntpd.

Рассмотрите возможность запуска собственной службы not-w32time перед AD DS, полной реализации NTP с несколькими источниками. Выбирайте, физическое устройство с GNSS-антенной, установка ntpd или chrony.

Четыре источника, возможно, из пула NTP, если доступен Интернет, лучше, чем два. Легко с ntpd или chrony.

пул 2.pool.ntp.org
флаг cn
Добавление еще одного уровня посередине ничего не решит, если только ntp-сервер посередине не изменил свои часы только в ответ на несколько идентичных ответов от общедоступных ntp-серверов, а не только на один. Я еще не исследовал, позволит ли это использование ntp-сервера на базе Linux.
vidarlo avatar
флаг ar
@IanMurphy NTPd, настроенный на 3-4 часа, *** не *** изменит свое время на основе одного выброса. Он выберет надежную ссылку на основе суммы всей доступной информации.
флаг cn
Это было бы решением, если бы ntpd работал таким образом. Теперь я должен попробовать это и посмотреть, смогу ли я его сломать. Спасибо

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

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.