在我们的生产环境中,我面临着 ntpd 的问题。我正在为我们的生产盒启用 NTP 功能并观察一个问题。
我们在盒子的初始化过程中启动 ntpd 守护进程。在那段时间互联网连接不存在。下面是我的小ntp.conf
文件
driftfile /etc/ntp.drift
logconfig =syncstatus
server pool.ntp.org iburst
一旦接口出现,我们的盒子就可以很晚地获得互联网连接。那个时候我看到 ntpd 没有同步时钟。当我这样做时ntpq -c as
,我得到了no association id's found
。我确实等了将近 30 分钟,但还是得到了no association id's found
我必须重新启动ntpd。重启后,ntpd 同步时钟,一切正常。但是,如果我重新启动我的盒子,那么同样的问题就会发生。再次,我必须重新启动 ntpd,一旦盒子出现并且可以访问互联网。
有没有人遇到过类似的问题?
我应该延迟 ntpd 的启动直到时间界面出现吗?
更新
我做了一些更多的实验,并用这个更改替换server pool.ntp.org iburst
了pool pool.ntp.org iburst
ntpd 自动同步时钟。我不必重新启动 ntpd。所以这里对我提出了另一个问题。
当我替换为 时发生server
了pool
什么?
我应该总是使用pool
关键字而不是server
?
我应该什么时候使用pool
,什么时候应该使用server
?
我做了一些研究,发现
pool is the same as server, except it resolves one name into several addresses and uses them all
如果他们在做同样的事情,那为什么server pool.ntp.org iburst
不为我工作但pool pool.ntp.org iburst
工作。
更新
正如建议的那样,我已经使用pool
了,server
但我的时钟仍然无法在启动时同步。以前no association id's found
来过,但在使用池后它正在显示列表。
GW:/admin# ntpq -c lpeer
remote refid st t when poll reach delay offset jitter
===================================================================== =========
time.google.com .POOL. 16 p - 64 0 0.000 +0.000 0.002
GW:/admin# ntpq -np
remote refid st t when poll reach delay offset jitter
time.google.com .POOL. 16 p - 64 0 0.000 +0.000 0.002
GW:/admin# ntpq -c as
ind assid status conf reach auth condition last_event cnt
===========================================================
1 34173 8811 yes none none reject mobilize 1
GW:/admin# ntpq -c "rv 34173"
associd=34173 status=8811 conf, bcast, sel_reject, 1 event, mobilize,
srcadr=0.0.0.0, srcport=0, srchost="time.google.com", dstadr=0.0.0.0,
dstport=0, leap=11, stratum=16, precision=-19, rootdelay=0.000,
rootdisp=0.000, refid=POOL, reftime=(no time), rec=(no time), reach=000,
unreach=0, hmode=3, pmode=0, hpoll=6, ppoll=10, headway=0,
flash=1400 peer_dist, peer_unreach, keyid=0, offset=+0.000, delay=0.000,
dispersion=16000.000, jitter=0.002,
filtdelay= 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00,
filtoffset= +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00,
filtdisp= 16000.0 16000.0 16000.0 16000.0 16000.0 16000.0 16000.0 16000.0
我看到闪存状态为1400
。1400
我无法1400
在 ntp 文档中找到闪存状态是什么意思。
更新
它开始工作了。我替换iburst
为minpoll 3 maxpoll 4
,之后它正在重新启动。我用过这样的游泳池 pool pool.ntp.org minpoll 3 maxpoll 4
。我不确定这种变化有什么不同。
我还读到我们应该避免使用 minpoll 和 maxpoll。
Too frequent for a sustained period and public NTP services may block you. ntpd is already good at dynamically selecting the pool interval.
不管怎样,谢谢大家帮助我。