Windows 时间服务仅在外部 ntp 服务器时间一致时才与其同步

Windows 时间服务仅在外部 ntp 服务器时间一致时才与其同步

我最近遇到了一个从未见过的问题。一天晚上,大约 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,"Newark, NJ, US",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,"Newark, NJ, US",0,

中间的线表示巨大的与我所使用的服务器有所不同。

答案1

并不是太反对 John Mahowald 的观点,但至少从 Windows 2016 开始,Windows 时间服务已得到很大改进,包括完整的 NTP 服务。他们还有一份文档解释如何配置 Windows 以实现高精度。我认为没有必要运行单独的非 Windows NTP 服务器,除非你有极高的精度要求(在这种情况下,你可能会使用 PTP - 甚至Windows 2019 中对此的支持)。

因此,您很可能遇到了不准确的池服务器。这种情况时有发生,池非常擅长快速删除这些服务器。如果您有同步到的服务器的 IP 地址记录,您可以在以下位置查找其历史记录:https://www.ntppool.org/scores/<IP 地址>。

我认为很可能是因为该系统仍在响应,所以它被选中了,因为你有配置的对等点太少 (另见RFC8633 中的以下部分关于拥有多种参考时钟),并且 Windows 时间服务不需要重新查询池以获取新 IP,因为原始服务器仍在响应。

因此,正如 John 所说,为防止这种情况再次发生,您可以做的最重要的事情就是添加更多时间源。池中的更多源是可以的,如果您想要池外具有相当稳定的 IP 并提供相当准确的服务的东西,请尝试time.apple.com,它似乎是全球分布的 1 层服务器的地理 DNS 池。

答案2

w32时间据我所知,只是一个 SNTP 客户端,因此如果数据包有一个大的跳跃,时间就会步进。 组策略可以配置额外的 NTP 服务器,但是这些服务器用于故障时回退,而不是像 ntpd 那样同时进行多个关联并进行错误检查。

考虑在 AD DS 前面运行您自己的 not-w32time 服务,这是一个具有多个源的完整 NTP 实现。您可以选择安装有 GNSS 天线、ntpd 或 chrony 的物理设备。

如果有互联网,四个源(可能来自 NTP 池)比两个源更好。使用 ntpd 或 chrony 很容易。

pool 2.pool.ntp.org

相关内容