WS2008 NTP - 使用 time.windows.com,0x9 - 时间总是向前倾斜

WS2008 NTP - 使用 time.windows.com,0x9 - 时间总是向前倾斜

我有一个配置为使用 time.windows.com 的域控制器(设置了 0x09 标志)。我注意到系统时钟经常快 - 差 10 分钟甚至 45 分钟。我总是不得不将系统日期/时间重置回应有的值。

当我运行“w32tm /query /source”时,它告诉我它正在使用 time.windows.com,显然我相信微软不会提供错误的时间,但为什么我的服务器的时钟很快?

编辑:

系统日志中有几个时间服务事件:

事件 ID:142

消息:时间服务已停止作为时间源进行宣传,因为本地时钟未同步。

事件 ID:139

消息:时间服务已开始作为时间源进行宣传。

这两条消息大约每小时成对出现一次。事件 142 出现在 139 出现后的 14 到 16 分钟。

回顾几个月前,发生了以下事件:

事件 ID:35

消息:时间服务现在正在将系统时间与时间源 time.windows.com,0x9 (ntp.m|0x9|0.0.0.0:123->65.55.21.21:123) 同步。

事件 ID:37

消息:时间提供程序 NtpClient 当前正在从 time.windows.com,0x9 (ntp.m|0x9|0.0.0.0:123->65.55.21.21:123) 接收有效时间数据。

事件 ID:47

消息:时间提供程序 NtpClient:在尝试联系手动配置的对等端 time.windows.com,0x9 8 次后,未收到有效响应。此对等端将不再作为时间源,NtpClient 将尝试发现具有此 DNS 名称的新对等端。错误为:时间样本被拒绝,原因是:对等端未同步,或者距离对等端上次同步已过去太久。

这三起事件在日志中仅出现过一次,是在十月份。

编辑:

以下是 w32tm /query /status /verbose 的输出:

enter code here

C:\Users\Administrator>w32tm /query /status /verbose
Leap Indicator: 3(last minute has 61 seconds)
Stratum: 3 (secondary reference - syncd by (S)NTP)
Precision: -6 (15.625ms per tick)
Root Delay: 0.1794868s
Root Dispersion: 4.6419912s
ReferenceId: 0x41371515 (source IP:  65.55.21.21)
Last Successful Sync Time: 2011-12-05 23:25:18
Source: time.windows.com,0x9
Poll Interval: 6 (64s)

Phase Offset: 0.0000695s
ClockRate: 0.0156243s
State Machine: 1 (Hold)
Time Source Flags: 0 (None)
Server Role: 0 (None)
Last Sync Error: 2 (The computer did not resync because only stale time data was available.)
Time since Last Good Sync Time: 1281.9919104s

答案1

我遇到了同样的问题,今天早上终于解决了。以下是我所做的:

查看存在时间问题的服务器和另一台正确同步 ntp 的成员服务器上的注册表(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time 中的所有配置单元和键)。

我发现了一些差异,并将所需的密钥 \ hives 从正常工作的服务器导出到损坏的服务器。以下密钥已弄乱,这是我从正常工作的服务器导出到损坏的服务器的正确密钥。请注意,这些值可能与您的不同,因此请不要使用以下密钥:

安全配置单元丢失,因此我使用以下命令重新创建:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Security]
"Security"=hex:01,00,04,80,84,00,00,00,90,00,00,00,00,00,00,00,14,00,00,00,02,\
  00,70,00,05,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,05,12,00,\
  00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,20,02,00,\
  00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,04,00,00,00,00,00,14,00,\
  8d,01,02,00,01,01,00,00,00,00,00,05,06,00,00,00,00,00,14,00,9d,01,02,00,01,\
  01,00,00,00,00,00,05,13,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00,01,01,\
  00,00,00,00,00,05,12,00,00,00

并注意到 NtpServer 配置单元缺少键,通过导入可以解决这个问题:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer]
"DllName"=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,\
  74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,77,\
  00,33,00,32,00,74,00,69,00,6d,00,65,00,2e,00,64,00,6c,00,6c,00,00,00
"Enabled"=dword:00000000
"InputProvider"=dword:00000000
"AllowNonstandardModeCombinations"=dword:00000001
"EventLogFlags"=dword:00000000
"ChainEntryTimeout"=dword:00000010
"ChainMaxEntries"=dword:00000080
"ChainMaxHostEntries"=dword:00000004
"ChainDisable"=dword:00000000
"ChainLoggingRate"=dword:0000001e

然后我修改了以下现有的键以减少阶段:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config] 
"MaxAllowedPhaseOffset"=dword:00000001 
"SpecialPollInterval"=dword:00000005 
"SpecialInterval"=dword:00000001

一旦确定注册表正确,请以管理员身份通过命令行发出以下命令:

w32tm /config /manualpeerlist:"YOURNTPSERVER-OR-DCHERE.YOURDOMAIN.COM,0x01" /syncfromflags:MANUAL /update
net stop w32time && net start w32time
w32tm /resync /computer:YOURNTPSERVER-OR-DCHERE.YOURDOMAIN.COM /rediscover

等了几分钟然后检查同步

w32tm /monitor /computers:YOURNTPSERVER-OR-DCHERE.YOURDOMAIN.COM

它看起来应该有点像这样:

YOURNTPSERVER-OR-DCHERE.YOURDOMAIN.COM[IPOFYOUR.NTP.OR.DC:123]:
    ICMP: 0ms delay
    NTP: +0.0496804s offset from local clock
        RefID: YOURNTPSERVER-OR-PDCHERE [IPOFYOUR.NTP.OR.PDC]
        Stratum: 3

然后检查阶段:

w32tm /stripchart /computer:YOURNTPSERVER-OR-DCHERE.YOURDOMAIN.COM

它看起来应该是这样的:

10:08:42 d:+00.0000000s o:+00.0139224s  [           *           ]
10:08:44 d:+00.0000000s o:-00.0015659s  [           *           ]
10:08:46 d:+00.0000000s o:-00.0014534s  [           *           ]
10:08:48 d:+00.0000000s o:-00.0013418s  [           *           ]
10:08:50 d:+00.0000000s o:-00.0012421s  [           *           ]

希望这可以帮助!

答案2

这是担任 PDC 仿真器角色的 DC 吗?您只需为担任 PDC 仿真器角色的 DC 配置外部时间源 - 其他 DC 将自动同步到 PDC。

可以通过以下方式获取时间服务的当前状态w32tm /query /status /verbose- 它应该为您提供有关本地时钟状态、上次同步时的偏差和精度的一些详细信息。根据您记录的事件,您的本地时钟似乎对于时间源来说太不可靠了。在一些成功的同步之后,默认的 w32time 同步间隔将为 1024 秒 - 这大约是 17 分钟,大致是事件 139 和 142 之间的时间差。

如果这是一个虚拟化系统,您应该考虑其他计时器硬件模拟。VMWare 发布了关于该主题的综合论文即使您使用不同的虚拟化产品,也值得一读。

如果这是一个物理系统,请考虑减少 w32time 服务的 MaxPollInterval 作为解决方法,或将 PDC 模拟器角色移动到具有更可靠时钟的其他机器。

编辑:“过时的时间数据”问题可能确实是您尝试查询的时间服务器的问题。尝试用公共 NTP 池中的服务器替换默认的“time.windows.com” (<region>.pool.ntp.org)在您的 NTP 配置中(只需使用net time /setsntp:<servername>

相关内容