linux – 什么是NTP色散,我该如何控制它?

前端之家收集整理的这篇文章主要介绍了linux – 什么是NTP色散,我该如何控制它?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们在隔离网络上推出了Ubuntu 14.04服务器,运行ntpd 4.2.6p5,配置为使用客户提供的多个NTP服务器(无法访问pool.ntp.org).我们的哑终端客户端设备运行旧版本的BusyBox(1.00-rc2)和来自Larry Doolittle的 ntpclient 2010.

这种设置多年来一直很好用,但最近我们遇到了一个新客户的障碍.他们为我们提供了5个内部NTP服务器地址,这些服务器地址看起来效果很好,就ntpdate-debian而言,它与Linux服务器有关.然而,在BusyBox方面,ntpclient抱怨“Dispersion太高”.从调试输出,ntpclient从NTP服务器获取“1217163.1”,但它支持的最大值是绝对值(65536).

$/usr/sbin/ntpclient -s -i 15 -h 10.17.162.250 -d
Configuration:
  -c probe_count 1
  -d (debug)     1
  -g goodness    0
  -h hostname    10.17.162.250
  -i interval    15
  -l live        0
  -p local_port  0
  -q min_delay   800.000000
  -s set_clock   1
  -x cross_check 1
Listening...
Sending ...
recvfrom
packet of length 48 received
Source: INET Port 123 host 10.17.162.250
LI=0  VN=3  Mode=4  Stratum=4  Poll=4  Precision=-20
Delay=60745.2  Dispersion=1346801.8  Refid=10.31.10.21
Reference 3668859928.942079
(sent)    3668859928.708371
Originate 3668859928.708371
Receive   3668859928.963271
Transmit  3668859928.963369
Our recv  3668859928.708371
Total elapsed:      0.00
Server stall:      93.09
Slop:             -93.09
Skew:          255443.94
Frequency:             0
 day   second     elapsed    stall     skew  dispersion  freq
42463 56728.708  rejected packet: abs(DISP)>65536

这些都是同一局域网上的所有设备,所以坦率地说,我很惊讶.甚至吓呆了.

这是来自Ubuntu 14.04服务器的ntpq -pn输出

user@host:~$ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 127.127.1.0     .LOCL.          10 l 1025   64    0    0.000    0.000   0.000
 10.17.162.249   10.17.6.10       5 u   23 1024   37    0.865  1381.07 697.260
 10.31.10.22     .LOCL.           1 u 1044 1024   17   29.586  -838.06 397.342
 10.17.6.10      10.31.10.21      4 u 1065 1024   17    0.366  105.245 402.999
*10.31.10.21     132.246.11.238   3 u    5 1024   37   29.418  794.292 616.796
 10.17.6.11      10.31.10.21      4 u 1038 1024   17    0.408  120.030 381.058

我的问题是:

>什么是分散,什么可以改变它的价值?
>我可以运行哪些命令来从NTP服务器获取更多详细信息?
>错误是否存在于ubuntu服务器端,ntp.conf不正确?真的没什么特别的.
>在这种情况下,切换到chrony会改变什么吗?

解决方法

我在这里的答案中看到了一些混乱.对于初学者来说,至少在-s模式下,ntpclient并不是一个完整的NTP客户端,它只发送和接收一个数据包,因此没有“最后收到的8个数据包”.实际上并没有估计自己的分散.

相反,它打印的值是服务器返回的数据包中称为“根色散”(rootdisp)的值,它是该服务器与正确时间之间的错误/方差总量的估计值.计算方法非常简单:每个NTP服务器要么从外部时钟(例如无线电或GPS接收器)或其他NTP服务器获取时间.如果服务器从外部时钟获取时间,则其根分散是该时钟的估计最大误差.如果它从另一个NTP服务器获得时间,它的根分散是服务器的根分散加上它们之间的网络链路添加的分散.

这里有一点令人困惑的是,虽然ntpq和chrony在几秒钟内显示色散和根分散,这是人们习惯看的东西,ntpclient以微秒显示它.无论如何,1217163的值仍然很高.一个好的NTP服务器在几毫秒内知道时间;在几十或几百毫秒内的坏事.你的告诉你它的时间只能在/ – 1.2秒内被信任.

实际上,通过传递-x 0或-t选项(取决于ntpclient的版本),ntpclient可以同步到此服务器,这将禁用NTP健全性检查.如果你只需要大致准确的时间(在几秒钟内),这可能就足够了.但是,ntpclient拒绝同步到这样一个糟糕的服务器是非常合理的.您在ubuntu机器上的ntpq输出显示所有服务器的抖动为几百毫秒,即使它们具有低延迟,这表明网络非常不可靠,所有服务器的阴谋都提供不稳定的时间,或者服务器本身的基本计时问题.

它还让我担心服务器10.31.10.22正在通告一个LOCL(无纪律的本地时钟)的refid,但其层数为1.通常本地时钟被捏造为10层,因此它仅用作最后的同步来源让一群人不要分开. 10.31.10.22配置错误并为网络的其余部分提供了不良时间,或者由于NTP控制之外的某些程序而受到纪律处分,在这种情况下,错误配置只是在宣传LOCL refid;它应该被覆盖到例如GPS或其他任何提供时间的东西.

猜你在找的Linux相关文章