NTP Fudge 网络源层

jox*_*oxl 9 ntp ntpd

是否可以配置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 层。我相信制造商已经对其层级进行了硬编码。

有没有办法让我的机器偏向于“好”(10.xxX)服务器,尽管它的层级更高?我也在prefer本地ntp.conf文件中尝试了该指令,但无济于事,小黑盒总是获胜:/

值得一提的是,我的本地机器运行的是 Mac OS X 10.6。

$ ntpq -c rv | grep version
version="ntpd 4.2.4p4@1.1520-o Mon May 18 19:38:25 UTC 2009 (1)",
Run Code Online (Sandbox Code Playgroud)

jox*_*oxl 6

经过更多研究,似乎不可能“捏造”网络资源的层级。所以我继续前进并尝试了dtoubeli 的回答。令我惊讶的是,简单地将我的本地时间服务器设为第 2 层(等于第 3 方设备)并不总是使其成为首选时间源。我的本地 ntpd 仍然将它们都视为“假滴答声”。出于什么原因,我不确定,但我猜是因为它们是仅有的两个时间源,而且它们的时间相距甚远。

这里最大的问题是我的第 3 方设备似乎没有非常一致的时间,实际上它波动很大。我的问题的解决方案是将其他几个准确的时间源(pool.ntp.org)添加到我的/etc/ntp.conf. 现在,我的本地服务器始终被选为首选时间源,尽管其层级通常高于池中的某些服务器。