NTP 伪造网络源层

NTP 伪造网络源层

是否可以配置ntpd来伪造网络源的层数?

乍一看,我认为该fudge指令可以实现这一点,但是浏览ntp.conf(5)手册页后,我发现该指令仅适用于参考时钟。

一些细节:

我有一个本地服务器,ntpd作为 LAN 上客户端的主要时间源。此服务器指向 ntp.org 池,通常维护层级 3。

除了主服务器之外,我还有一个第三方网络设备,其主要任务是通过 RF 传输无线同步挂钟。该设备的规格说明称,它是“符合 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

由于服务器10.x.x.Z的唯一时间源服务器10.x.x.X(第 3 层),它应该是层数 4。我相信制造商已经对其层数进行了硬编码。

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

不管怎样,我的本地机器运行的是 Mac OS X 10.6。

$ ntpq -c rv | grep version
version="ntpd [email protected] Mon May 18 19:38:25 UTC 2009 (1)",

答案1

经过进一步的研究,似乎“捏造”了网络无法获取来源。因此我继续尝试dtoubeli 的回答令我惊讶的是,仅仅将我的本地时间服务器设置为 2 级(与第三方设备相同)并不总是会让它成为首选时间源。我的本地 ntpd 仍然会将它们都判定为“错误计时”。至于原因,我不确定,但我猜是因为它们是仅有的两个时间源,而且它们的时间相差太大。

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

答案2

您可以尝试在层 2 运行本地 ntpd。无需将其指向 pool.ntp.org,只需创建 5-7 个层 1 服务器的列表并直接将它们添加到配置中。使用层 1 的参考服务器,您的服务器将运行在层 2。然后您的prefer选择可能会奏效。

但是,根据我的经验,层级并不总是主源选举的制胜因素。我认为延迟和抖动也有很大的影响。我曾多次注意到,尽管有几台较高层的服务器可用,但较低层的服务器被选为主源,只是因为它的延迟最低。这就是为什么我不能保证建议的方法会起作用。

答案3

我本地网络中有一个“高层 (10)”硬件 GPS 时间源,它在 ntpq 中给我一个 falsetick 状态 (x),我发现server [x.x.x.x] true在 ntp.conf 中使用 (x=IP 地址) 将绕过 falsetick 检查,使其成为可能的候选者。看来层数并不总是意味着更高的优先级。

答案4

首选该服务器的原因之一是您的其他时间服务器最近无法访问。看到“访问量”列了吗?

相关内容