我正在尝试在没有(并且永远不会)互联网连接的本地网络上设置 NTP。主要优先事项是网络上的机器彼此同步,即使它们同步的时间不是 100% 准确。
我们还需要使用 NTP 层次结构来复制已部署系统的设置。我想要做的是拥有这样的机器层次结构:
Moon (Main Server running Windows) (10.1.3.10)
|____Earth (Linux x64 client) (10.1.3.1)
|____Mars (Linux x64 client) (10.1.3.2)
|____Saturn (Linux x64 client) (10.1.3.3)
|____RackCard23 (Linux x64 client and server to the two machines below) (10.1.3.23)
|___RackCard21 (Linux x64 client) (10.1.4.21)
|___RackCard22 (Linux x64 client) (10.1.4.22)
Run Code Online (Sandbox Code Playgroud)
请注意,RackCard 有两个以太网端口,一个连接到 10.1.3.x 网络,另一个连接到 10.1.4.x 网络。与主服务器 Moon 同步的 RackCard23 将在 10.1.3.x 网络上执行此操作,而 RackCard22/23 将连接到 10.1.4.x 网络上的 RackCard23。这是因为我不希望 RackCards22/23 离开他们的网络来同步时间,并且因为它复制了最终部署的系统。
到目前为止,我已经设法通过将 Moon 同步以正确同步(包括 RackCard23)来获得所有应有的东西。
但是我很难让 RackCard22 和 23 同步 RackCard23。
[root@RackCard23]# …Run Code Online (Sandbox Code Playgroud) 是否可以配置ntpd来伪造网络源的层级?
乍一看,我认为该fudge指令可以完成此操作,但是在浏览ntp.conf(5)手册页后,我发现该指令仅适用于参考时钟。
一些细节:
我有一个本地服务器ntpd作为 LAN 上客户端的主要时间源运行。该服务器指向 ntp.org 池,通常保持层级 3。
除了我的主服务器之外,我还有一个 3rd 方网络设备,其主要工作是通过无线同步挂钟。射频传输。该设备的规格说明它是“符合 RFC2030 的时间服务器”,但除此之外它几乎是一个黑匣子。我已将设备配置为使用我的主服务器,因为它是唯一的时间源:
黑盒配置 http://www.freeimagehosting.net/uploads/21bafb12bd.png
当我ntpd在个人计算机上配置使用我的主 NTP 服务器和无线发射器作为时间源时,我的问题就出现了。在查询我的本地 ntpd 时,我注意到“黑匣子”(10.xxZ)是首选的时间源:
$ ntpq -pn
remote refid st t when poll reach delay offset jitter
==============================================================================
x10.x.x.X 69.164.222.108 3 u 48 64 177 0.501 370.029 1.530
*10.x.x.Z 10.x.x.Z 2 u 50 64 377 1.354 -23.681 14.179
Run Code Online (Sandbox Code Playgroud)
由于 server10.x.x.Z唯一的时间源是server 10.x.x.X(它是第 3 层),所以它应该是第 4 …
多国服务器的理想时间和时区设置是什么?特别是考虑到由一个中央 IT 团队管理这些服务器。
目前,我们让每台服务器都使用本地时区。例如中国数据中心的服务器设置了CST。我们德国数据中心的服务器设置为 CEST。时间设置为数据中心的本地时间。(注意:我们总共在 6 个国家/地区拥有服务器)。
当前设置在查看服务器本地日志时很有用(准确了解事件相对于当前服务器本地时间的发生时间)。然而,当查看来自中央系统日志服务器的事件时,它变成了一场噩梦。
我在一个隔离的网络上有两台 linux 机器(A 和 B)。它们必须是时间同步的。机器 A 是间歇性供电的,必须为时间服务,因为它连接到权威时间源 (GPS)。机器 B 仅在机器 A 上电时才上电,但它是嵌入式 linux 设备,其电源状态会经常变化。两台机器都无法访问其他系统。这是一个封闭的网络。
我知道这对 NTP 来说是一项艰巨的任务,因为 NTP 通常希望与多个服务器有联系。我无法让它在机器 B 上正常工作。机器 A 与 GPS 同步得很好,机器 B 可以到达机器 A 甚至进行时间查询,但机器 A 不受信任(也许是它本身?)。在机器 A 启动了一个小时后,情况突然发生了变化,机器 B 开始工作。然而,当机器 A(因此机器 B)出现故障时,机器 B 再次无法找到良好的时间同步。
这是一些 ntpdate 信息。请注意,即使机器 A 的层数为 1,操作也会失败,最后输出相同。
10.10.10.1:服务器掉线:层数太高 服务器 10.10.10.1,端口 123 16层,精度-19,飞跃11,信任000 refid [10.10.10.1],延迟 0.02614,分散 0.00000 传输 4,在过滤器 4 参考时间:00000000.00000000 2036 年 2 月 7 日星期四 6:28:16.000 原始时间戳:d3a9bdc4.27ebb350 Thu, Jul 12 2012 21:19:00.155 传输时间戳:bc17c803.b42dfffe 2000 年 1 月 1 日星期六 0:25:39.703 滤波器延迟:0.02625 …
我正在寻找适用于 Windows Server 2003/2008 的 NTP 服务器,最好是免费的。我们已经尝试过内置的 Windows 时间服务器,但是我们的测试确实表明它不是很准确,我们看到时差高达 500 毫秒。我们可以为我们的应用程序允许的最大时间差约为 100 毫秒。
现在我们已经使用了Meinberg NTPd for Windows。它工作得很好,但我们有一个大问题:如果客户端和服务器之间存在网络连接问题,则 ntp 服务器处于恐慌状态它不会给客户端一个新的时间,直到我们重新启动 ntp 服务。这是一个大问题,给我们带来了一些麻烦。它工作了好几个月,直到出现了一个我们没有注意到的网络问题,我们只在一周后时差已经 30 秒时才注意到它。在客户端上。
因此,请建议一些适用于 Windows 的替代 NTP 服务器。我做了谷歌,但我得到了很多不相关的搜索结果。
编辑: 到目前为止,ntpd Windows 版本非常准确,我想坚持下去。唯一的问题是网络断开后的“恐慌状态”。也许有些人在这里知道这是什么原因以及如何解决它。另外,我忘了提到我们有一个这样的服务器/客户端设置:
Server1 --> Server2 --> Server3 --> Client1 --> Client2 --> Client3
因此 Server2 从 Server1 获取时间,Server3 从 Server2 获取时间,而客户端从 Server3 获取时间。此外,还有直接连接到 Server2 的客户端。重要的是所有服务器和客户端都具有完全相同的时间(在 ~100 毫秒内)
现在 Server3 及其客户端出现网络问题。服务器运行 Windows 的 ntpd 端口,它充当 NTP 服务器和客户端。客户端将 Dimension4 作为 NTP 客户端。在网络问题之后,D4 中的错误消息是这样的(在我的脑海中,没有确切的错误消息):
服务器响应:服务器处于恐慌状态(无法同步时钟)
我通读了 ntpd 文档,唯一提到的“恐慌”是时差为 10000 秒,这将导致退出 ntpd 服务器,但事实并非如此。还有一个“-g”命令行开关来禁用紧急退出,但它已经被默认设置了。 …
我的 ubuntu 11.10 服务器在过去的 3 - 4 个月里一直很高兴地坐在那里,然后突然时间开始不同步一小时。我不知道为什么,服务器的配置没有任何改变,我读到它可能归结为系统资源使用情况。
无论如何,为了抵消这一点,我看到很多人建议安装 NTP 和 NTP 守护进程 (ntpd),以便自动同步时间。我已经安装了 NTPD,它似乎可以工作一天,然后突然停止工作。
在我做的大约一天之后
ntpq -q
Run Code Online (Sandbox Code Playgroud)
列出连接的对等点,我收到错误
ntpq: read: Connection refused
Run Code Online (Sandbox Code Playgroud)
如果我然后尝试重新启动服务
sudo service ntp restart
Run Code Online (Sandbox Code Playgroud)
我收到以下消息
* Stopping NTP server ntpd
start-stop-daemon: warning: failed to kill 26915: No such process
* Starting NTP server ntpd
Run Code Online (Sandbox Code Playgroud)
一旦我在大约 5 分钟内完成此操作,时间就会再次同步。如果我再次重新启动服务,我不会收到上述消息,我只是收到
* Stopping NTP server ntpd
* Starting NTP server ntpd
Run Code Online (Sandbox Code Playgroud)
如果我再次尝试 ntpq -p 我得到
remote refid st t when poll reach delay offset jitter
==============================================================================
noc.be.it2go.eu 193.190.230.66 2 u …Run Code Online (Sandbox Code Playgroud) 我有一个 HPUX NTP 服务器。它是内置 NTP 的哑客户端设备的服务器。我可以告诉客户端服务器 IP 和时间间隔,但无法注销。
我如何知道 NTP 同步是否正在发生。
通常,我会去客户端运行:
ntpq -p
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,客户不能这样做。是否可以从服务器本身获取与我的 NTP 服务器同步的客户端列表?
直到最近,我们还有一个由大约 20 台小型 Windows 服务器(现在都已虚拟化)组成的小型集群。它们都被配置为与本地时间服务器同步。它位于我们自己 DC 的 1Gb 子网上。我从来没有让它们彼此相距不到 100 毫秒,我认为这是一个非常大的差异。
这是正常值吗?运行在 1Gb 网络上的机器之间的时间差的现实期望是多少,所有机器都连接到同一时间服务器,并且经常更新,比如每 5 分钟一次?
我想知道这是因为在分布式应用程序中设置超时和其他参数需要考虑这种差异。
最近我启动了一些在 bios 中休息了一个月的服务器。BIOS 中的时间说它是 5 月的随机时间/日期,而它是 6 月。
这导致 NTP 无法工作,因为 NTP 不会以如此高的偏移量同步。尽管偏移量(在这种情况下为一个月)过高,我如何才能确保 NTP 同步?
我有一个本地网络,微控制器 ARM 作为 NTP 服务器,我有一台运行 ubuntu 16.04 LTS 作为 NTP 客户端的台式计算机。
一旦我从ntpd -g -c /etc/ntp.conf以下 ntp 配置文件开始
server 192.168.0.11 minpoll 4 maxpoll 4
Run Code Online (Sandbox Code Playgroud)
ntpd 设置时间后的第一个偏移显示了非常好的结果,即低于 1ms。我通过ntpq -p.
然而,偏移量在大约 55ms 后缓慢上升。1000 秒。对于我的应用程序来说,这种高偏移是不可接受的。但是在偏移量达到 55 ms 后,ntpd似乎再次设置时间并且偏移量变得足够小且稳定(< 1ms)。似乎ntpd让时钟漂移了一段时间,在(太)长的时间之后,守护进程对 NTP 客户端和 NTP 服务器之间的时钟漂移采取对策。
使用ntpd -g -c /etc/ntp.conf -f /etc/ntp.driftwherentp.drift由 生成ntpd,偏移量将始终保持在 1ms 以下,即没有时钟漂移引起的偏移量线性上升;期望的行为。
现在我的问题:在我的应用程序中,我们不能让ntpd运行一段时间来计算很长一段时间后的时钟漂移,同步必须在启动 NTP 客户端后几秒钟后进行,并且偏移量必须保持不变稳定的。
如何ntpd在不确切知道时钟漂移的情况下获得稳定且小的偏移量?