Domain-Name-System

ntpd 伺服器在由主機名定義時停留在初始化狀態,但在由 IP 地址定義時正確同步

  • February 19, 2015

我開始在我們的幾個託管伺服器上遇到問題,這引起了相當多的頭疼。

我被警告在幾台伺服器上出現時鐘偏差,當我去調查 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 中的錯誤配置。但是不,IPtables 配置正確。重新啟動 ntpd,等了幾分鐘,但 ntp 伺服器仍處於 INIT 中。作為支票,我跑了

ntpdate ntp1.hetzner.de

我得到了時間伺服器的響應!不解,我為 UDP 123 流量啟動了一個 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 問題,或者我在配置中做了一些愚蠢的事情?本機是Debian 7.8,ntpd版本是4.2.6p5

我的 ntp 配置現在如下:

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 有一些伺服器,安裝映像中的預設 ntpd 配置將使用 IPv6 與 Hetzner 提供的 ntp 伺服器通信。

鑑於您在輸出中看到重複條目,我強烈懷疑您的 ntpd 已將這些主機名解析為 IPv6 地址而不是 IPv4 地址。您可以通過使用-n標誌來驗證這一點ntpq,這樣它將顯示 IP 地址而不是主機名。

配置 ntpd 以使其同時使用一些 IPv4 地址和一些 IPv6 地址作為時間源沒有任何問題。我什至會說這是一個很好的做法。因此,我不會說您的 ntpd 配置有任何問題。

但是,我確實懷疑您的 IPv6 配置中有錯誤配置,這就是您應該解決的問題。

引用自:https://serverfault.com/questions/669815