ntpd服务器在由主机名定义时处于初始状态,但在通过IP地址定义时正确同步

我开始在一些我们的colo服务器上遇到了一个问题,这个问题导致了一些头疼的问题。

我提醒在一些服务器时钟歪斜,当我去调查ntpq – = p显示以下内容:

remote refid st t when poll reach delay offset jitter ============================================================================== ntp1.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000 ntp2.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000 ntp3.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000 

很显然,服务器无法联系其ntp服务器。 然而,它的姐妹服务器没有这样的问题,所以我认为这个问题与服务器。 可能是IPtables中的configuration错误。 但是,不,IPtablesconfiguration正确。 重新启动ntpd,等了几分钟,但ntp服务器仍在INIT。 作为支票我跑了

 ntpdate ntp1.hetzner.de 

我得到了时间服务器的回应! 困惑,我开始了UDP 123stream量的tcpdump,并重新启动ntpd。 没有数据包。 不是一个。 即使过了一个小时。 而如果我停止ntp并运行ntpdate我看到数据包通过电线到时间服务器没有问题。

所以,我试图把时间服务器的IP地址放入ntp.conf中,并立即同步

  remote refid st t when poll reach delay offset jitter ============================================================================== ntp1.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000 ntp2.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000 ntp3.hetzner.de .INIT. 16 u - 64 0 0.000 0.000 0.000 *ntp1.hetzner.de 192.53.103.103 2 u 23 64 1 2.856 -2.246 0.016 ntp2.hetzner.de 192.53.103.103 2 u 22 64 1 0.246 -2.174 0.019 ntp3.hetzner.de 192.53.103.108 2 u 21 64 1 0.262 -1.282 0.037 

在那个输出中有六个服务器,因为我在ntp.conf中附加了服务器IP地址

所以我很难过 在ntpd中是否有一些奇怪的DNS问题,或者我在configuration中做了些什么傻事? 这台机器是Debian 7.8,ntpd版本是4.2.6p5

我的ntpconfiguration现在如下所示:

 driftfile /var/lib/ntp/ntp.drift statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable restrict -4 default kod notrap nomodify nopeer noquery restrict -6 default kod notrap nomodify nopeer noquery restrict 127.0.0.1 restrict ::1 server ntp1.hetzner.de iburst server ntp2.hetzner.com iburst server ntp3.hetzner.net iburst server 213.239.239.164 iburst server 213.239.239.165 iburst server 213.239.239.166 iburst 

我在Hetzner有一些服务器,安装映像中的默认ntpdconfiguration将使用IPv6与Hetzner提供的ntp服务器进行通信。

鉴于您在输出中看到重复条目,我强烈怀疑您的ntpd已将这些主机名parsing为IPv6地址而不是IPv4地址。 你可以通过使用ntpq-n标志来validation,这样它将显示IP地址而不是主机名。

configurationntpd没有任何问题,因为它将同时使用一些IPv4地址和一些IPv6地址作为时间源。 我甚至会说这是一个很好的做法。 因此我不会说你的ntpdconfiguration有什么问题。

不过,我怀疑你的IPv6configuration有错误,这就是你应该修复的。