Rhel5

ntpdate 有效,但 ntpd 無法同步

  • January 12, 2017

這是在 RHEL 5.5 中。

首先,遠端主機的 ntpdate 工作:

$ ntpdate XXX.YYY.4.21
24 Oct 16:01:17 ntpdate[5276]: adjust time server XXX.YYY.4.21 offset 0.027291 sec

其次,這是我的 /etc/ntp.conf 中的伺服器行。所有restrict行都已被註釋掉以進行故障排除。

server 127.127.1.0
server XXX.YYY.4.21

我執行service ntpd start並檢查ntpq

$ ntpq
ntpq> peer
    remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*LOCAL(0)        .LOCL.           5 l   36   64  377    0.000    0.000   0.001
timeserver.doma .LOCL.           1 u   39  128  377    0.489   51.261  58.975

ntpq> opeer
remote           local          st t when poll reach   delay   offset    disp
==============================================================================
*LOCAL(0)        127.0.0.1        5 l   40   64  377    0.000    0.000   0.001
timeserver.doma XXX.YYY.22.169   1 u   43  128  377    0.489   51.261  58.975

XXX.YYY.22.169 是我正在處理的主機的地址。在我的 ntp.conf 文件中對 IP 地址進行反向查找可驗證 ntpq 輸出是否正確命名了遠端伺服器。但是,如您所見,它似乎只是轉到了我的 .LOCL。時間伺服器。此外,ntptrace只返回本地時間伺服器,然後ntptrace XXX.YYY.4.21超時。

$ ntptrace
localhost.localdomain: stratum 6, offset 0.000000, synch distance 0.948181

$ ntptrace XXX.YYY.4.21
XXX.YYY.4.21: timed out, nothing received
***Request timed out

這看起來像我的 ntp 守護程序只是在查詢自己。

我正在考慮我的測試網路時間伺服器和公司網路時間伺服器之間的路由器我不控制在源埠上阻塞的可能性。(我認為 ntpdate 在埠 123 上發送,它繞過了該過濾器,這就是為什麼我在 ntpd 執行時無法使用它的原因。)我已經通過電子郵件發送給網路人員以進行檢查。

最後,telnet XXX.YYY.4.21 123永遠不要超時或完成連接。

問題:

我在這裡錯過了什麼?

我還可以檢查什麼來找出這個連接失敗的地方?

strace ntptrace XXX.YYY.4.21告訴我 ntptrace 發送的源埠嗎?我可以解構大多數 strace 呼叫,但我無法確定該數據的位置。

如果我不能直接檢查我的測試網路和時間伺服器之間的網關路由器,我如何建立證據證明它對這些斷開負責?或者,我該如何排除它?

377中的reach表示連接正常;telnet無法連接,因為 NTP 是 UDP。

嘗試server 127.127.1.0從您的配置中刪除 - *by*LOCAL(0)告訴我們使用第 5 層的本地伺服器進行同步,優先於第 1 層的遠端伺服器;延遲和偏移都為 0.000 可能與此有很大關係。

如果您要包含本地時鐘,請稍微調整一下它的水平。看起來您已將其設置為 5。我通常將其設置為至少 8 ( fudge 127.127.1.0 stratum 8)。如果你不捏造它,你可以在網路上的其他主機看來就像一個原子鐘。在我掃描的一個網路上,我發現許多低層伺服器宣布的時間通常以數小時或數天不正確。

Shane 對reach錶明您可以訪問伺服器的值是正確的。您的時間伺服器的高offsetjitter值表明它可能不是很可靠。它們可能很高,因為您的伺服器仍在同步。poll間隔增加到 128的事實表明您的伺服器正在獲得一致的結果。它應該逐漸增加到 1024 秒。

嘗試執行如下循環:

while sleep 60; do
   ntpq -n -c peers; done

這將使您了解 ntp 的工作情況。您應該會看到它隨著時間的推移而穩定下來。

可以設置許多限制ntpd來限制可以遠端訪問多少有關伺服器的資訊。您可能僅限於使用上游伺服器作為時間源。

可以使用防火牆規則來限制源和目標埠 123 的流量。這提供了一個有效的 ntp 設置,但限制了其他工具的訪問。一些工具允許您使用埠 123 作為源埠(如果可用)。我偏愛ntpdate在調試模式下使用。

如果您refid對上游伺服器的 IP 地址是正確的,那麼它似乎正在使用您的伺服器作為首選時間源。嘗試添加restrict noquery到您的配置中。可能是您的上游伺服器配置不當。嘗試將您的路由器和/或名稱伺服器添加為來源,我發現它們可能是比官方公司伺服器更好的來源。

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