Ubuntu 20.04 拒绝与 Windows AD 同步时间,如何排除故障?

Ubuntu 20.04 拒绝与 Windows AD 同步时间,如何排除故障?

我正在尝试将 Ubuntu 20.04 客户端同步到 Windows AD 时间服务器。但时间永远不会同步。以下是我目前所知道的:

  • Windows 服务器正在监听 123 端口的 NTP,并回复请求。
  • 我正在使用 timedatectl。systemd-timesyncd.service 正在运行。
  • 尝试重新启动 ubuntu 客户端和 AD 服务器
  • 确保 ufw 已被禁用,iptables 似乎没有任何条目阻止任何内容,而且显然这不是我从数据包捕获中看到的情况。
  • Windows 时间服务似乎正在运行。
  • 我在故障排除中发现以下输出:
$ journalctl -fu systemd-timesyncd.service
-- Logs begin at Tue 2022-08-16 10:38:00 EDT. --
Jan 11 16:25:51 server.my.domainsystemd-timesyncd[775]: Timed out waiting for reply from 10.200.0.54:123 (10.200.0.54).
Jan 11 16:26:02 server.my.domainsystemd-timesyncd[775]: Timed out waiting for reply from 10.200.0.54:123 (10.200.0.54).
Jan 11 16:27:22 server.my.domainsystemd[1]: Stopping Network Time Synchronization...
Jan 11 16:27:22 server.my.domainsystemd[1]: systemd-timesyncd.service: Succeeded.
Jan 11 16:27:22 server.my.domainsystemd[1]: Stopped Network Time Synchronization.
Jan 11 16:27:22 server.my.domainsystemd[1]: Starting Network Time Synchronization...
Jan 11 16:27:22 server.my.domainsystemd[1]: Started Network Time Synchronization.
Jan 11 16:29:52 server.my.domainsystemd-timesyncd[5926]: Network configuration changed, trying to establish connection.
Jan 11 16:30:05 server.my.domainsystemd-timesyncd[5926]: Network configuration changed, trying to establish connection.
Jan 11 16:32:04 server.my.domainsystemd-timesyncd[5926]: Network configuration changed, trying to establish connection.
$ timedatectl show-timesync --all
LinkNTPServers=
SystemNTPServers=10.200.0.54
FallbackNTPServers=ntp.ubuntu.com
ServerName=10.200.0.54
ServerAddress=10.200.0.54
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=34min 8s
Frequency=0
$ timedatectl
               Local time: Wed 2023-01-11 16:34:14 EST
           Universal time: Wed 2023-01-11 21:34:14 UTC
                 RTC time: Wed 2023-01-11 21:34:14
                Time zone: America/New_York (EST, -0500)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

以下是另一台正在运行的主机上的外部 NTP 服务器与我遇到问题的 NTP 服务器的响应的比较:

在此处输入图片描述

以下是 Windows 服务器 ntp 信息(抱歉,只是截屏,但这是来自控制台的,我无法将其全部复制):

在此处输入图片描述

在此处输入图片描述

我遗漏了什么?为什么 Windows Server 没有正确提供时间?

编辑:我部署了一个新的 AD 服务器,只是为了测试时间是否有效。结果确实如此。我不得不延长根距离,但它有效。有问题的 AD 仍然不行 :(

编辑2:好的,我成功了,但只能使用外部对等列表。以下是我遵循的步骤:

  1. w32tm /config /manualpeerlist:time.windows.com,0x1 /syncfromflags:manual /reliable:yes /update
  2. w32tm /config /syncfromflags:domhier /update
  3. net stop w32time
  4. net start w32time
  5. 运行时检查TIMESERV如下Flagsnltest /dsgetdc:your.domain /server:thehostnameofthedcyourdoingthisfrom
  6. 在 Linux 主机上,您必须调整 Root Distance,我将其更改为“30”,vi /etc/systemd/timesyncd.conf取消注释“RootDistance”并更改为“30”,保存。然后运行systemctl restart systemd-timesyncd.service

这是个好消息,但不确定为什么 CMOS 本地时间仍然不起作用。

答案1

您的域控制器使用本地 CMOS 时钟作为源,未同步,可能未作为时间服务器进行广告宣传,因此数据无效。您应该首先确认集成服务的 Hyper-V 时间同步框未选中,并使用有效的 NTP 服务器对其进行配置。

您可以启用 Windows 时间服务日志记录以获取更多信息。

https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/turn-on-debug-logging-in-windows-time-service

https://learn.microsoft.com/en-us/windows-server/networking/windows-time-service/windows-time-for-traceability?tabs=257

Windows AD 网络上外部 NTP 服务器的最佳实践


https://learn.microsoft.com/en-us/services-hub/health/remediation-steps-ad/configure-the-root-pdc-with-an-authoritative-time-source-and-avoid-widespread-time-skew

“在某些情况下,PDC 仿真器从 BIOS 时钟获取时间。但是,这种方法有缺点。如果 PDC 仿真器 BIOS 中未准确设置时间和日期,则整个域的时间和日期设置将不正确。此外,如果 PDC 仿真器脱机,域成员将无法同步时间。更好的方法是将 PDC 仿真器配置为直接与外部时间源同步时间。或者,您可以配置域中的另一个设备以与外部时间服务同步时间,然后将 PDC 仿真器配置为使用内部时间服务器作为权威时间源。

“权威的外部时间源是面向互联网的服务,通常由政府、科学或教育机构维护,使您能够使用网络时间协议 (NTP) 同步系统时间。例如,NIST 在美国各地提供时间服务器。”

建议措施

您可以配置担任 PDCE 角色的域控制器以使用 NTP 服务器来同步时间,有以下几种方法:

要通过命令行配置时间同步,请在 PDC 模拟器上打开管理命令提示符并使用以下命令:

w32tm.exe /config /syncfromflags:manual /manualpeerlist:131.107.13.100,0x8 /reliable:yes /update

w32tm.exe /配置/更新


https://dirteam.com/sander/2019/07/18/managing-active-directory-time-synchronization-on-vmware-vsphere/

建议

禁用与在根域中担任主域控制器模拟器 (PDCe) 灵活单主机操作 (FSMO) 角色的虚拟域控制器上的虚拟机管理程序主机的时间同步,并使用以下组合同步其时间:

DNS names of a reliable time source on the internet, like pool.ntp.org.
IP addresses of a reliable time source on the internet, like 131.211.8.244 and 5.79.108.34. (This make sure time synchronization occurs even when DNS is unavailable and minimizes the effect of DNS poisoning attacks.)
IP addresses of reliable time sources on the internal network, like GPS-based NTP appliances on the internal network. (This makes sure time synchronization occurs even when internet connectivity is unavailable).

相关内容