套用至 SUSE Linux Enterprise Desktop 12 SP2

23 使用 NTP 進行時間同步化

摘要

NTP (網路時間協定) 機制是一種協定,用於同步化網路上的系統時間。首先,機器可以從提供可靠時間來源的伺服器取得時間。其次,機器本身在網路中可以做為其他電腦的時間來源。這個目標是雙重的 — 即維護絕對正確的時間,並同步化網路內所有機器的系統時間。

維謢精準的系統時間對於許多情況都非重要。內建的硬體時鐘通常無法符合資料庫或叢集等應用程式的要求。手動校正系統時間有可能會造成嚴重的問題,因為,例如時間倒退將可能造成重要應用程式無法正常運作。在網路中,通常需要同步所有機器中的系統時間,而手動調整時間的做法並不可取。NTP 提供了一種用於解決這些問題的機制。NTP 服務會依據網路中可靠的時間伺服器持續調整系統時間。它可以進一步管理本地參考的時鐘,例如收音機控制的時鐘。

注意
注意

若要透過 Active Directory 啟用時間同步,請遵照 Procedure 6.1, “Joining an AD Domain” 中的說明。

23.1 使用 YaST 設定 NTP 用戶端

ntp 套件隨附的 NTP 精靈 (ntpd) 預先設定為使用本地電腦時鐘做為時間參考。不過,硬體時鐘僅供在沒有更精確的時間來源時備用。YaST 簡化了 NTP 用戶端的組態。

23.1.1 基本組態

YaST NTP 用戶端組態 (網路服務 › NTP 組態) 包含數個索引標籤。在一般設定索引標籤上設定 ntpd 的啟動模式和要查詢的伺服器。

僅手動

如果要手動啟動 ntpd 精靈,請選取僅手動

同步但不啟動精靈

選取同步但不啟動精靈會定期設定系統時間,而不永久執行 ntpd。您可以設定同步時間間隔(分鐘)

現在和開機時

選取現在和開機時,以便在系統開機時自動啟動 ntpd。建議您使用此設定。

23.1.2 變更基本組態

用戶端要查詢的伺服器以及其他時間來源會列在一般設定索引標籤的下半部。修改清單時,可依需要使用新增編輯以及刪除顯示記錄可用來檢視用戶端的記錄檔。

按一下新增以新增時間資訊的新來源。在下列對話方塊中,選取進行時間同步化的來源類型。可用的選項如下:

YaST:NTP 伺服器
圖形 23.1 YaST:NTP 伺服器
伺服器

選取下拉式選單 (請參閱圖形 23.1 「YaST:NTP 伺服器」) 中,指定是使用區域網路中的時間伺服器 (本地 NTP 伺服器),還是使用可以處理您時區的網際網路時間伺服器 (公用 NTP 伺服器) 來設定時間同步化。若需本地時間伺服器,請按一下查詢,開始 SLP 查詢,在網路中尋找可用的時間伺服器。從搜尋結果清單中選取最合適的時間伺服器,並按一下確定,結束對話方塊。若需公用時間伺服器,請選取您的國家 (時區) 並從公用 NTP 伺服器下的清單選取適當的伺服器,然後按一下確定,結束對話方塊。在主對話方塊中,使用測試來測試所選取伺服器的可用性。選項可讓您為 ntpd 指定其他選項。

使用存取控制選項,您可以限制遠端電腦可以使用電腦上執行的精靈來執行的動作。當核取安全性設定索引標籤 (請參閱圖形 23.2 「進階 NTP 組態︰安全性設定」) 中的將 NTP 服務限制為僅限已設定的伺服器後,此欄位才處於啟用狀態。這些選項對應於 /etc/ntp.conf 中的 restrict 子句。例如,nomodify notrap noquery 不允許伺服器修改電腦的 NTP 設定,並且不允許使用 NTP 精靈的設陷裝置 (遠端事件登入功能)。建議對超出您控制範圍 (例如在網際網路上) 的伺服器使用這些限制。

如需詳細資訊,請參閱 /usr/share/doc/packages/ntp-doc (ntp-doc 套件的一部份)。

點 (peer),是指一台建立了對稱關係的機器:它可同時做為時間伺服器與用戶端。若要在相同的網路中使用點而非伺服器,請輸入系統的位址。其餘的對話方塊與伺服器對話方塊相同。

收音機時鐘

若要在系統中使用收音機時鐘來進行時間同步化,請在此對話方塊中輸入時鐘類型、單位編號、裝置名稱以及其他選項。按一下驅動程式校正,即可微調驅動程式。/usr/share/doc/packages/ntp-doc/refclock.html 中提供了關於本地無線電時鐘作業的詳細資訊。

外寄廣播

時間資訊與查詢也可以透過網路中的廣播傳輸。請在此對話方塊中輸入廣播所應傳送至的位址。除非您已經有類似收音機控制時鐘的可靠時間來源,否則請勿啟用廣播。

內送廣播

如果您想要讓用戶端透過廣播接收其資訊,請在這些欄位中輸入應該接受的個別封包位址。

進階 NTP 組態︰安全性設定
圖形 23.2 進階 NTP 組態︰安全性設定

安全性設定索引標籤 (請參閱圖形 23.2 「進階 NTP 組態︰安全性設定」) 中,指定 ntpd 是否應於 chroot jail 中啟動。預設不會啟動在 Chroot Jail 中執行 NTP 精靈。由於 Chroot Jail 選項可以防止攻擊者損毀整個系統,因此在 ntpd 遭受攻擊時,會有較高的安全性。

將 NTP 服務限制為僅限已設定的伺服器可增加系統安全性,方法是禁止遠端電腦檢視並修改電腦的 NTP 設定,並且禁止使用用於遠端事件登入的設陷裝置。啟用此選項後,這些限制會套用至所有遠端電腦,除非您覆寫一般設定索引標籤的時間來源清單中個別電腦的存取控制選項。對於所有其他遠端電腦,僅允許查詢本地時間。

如果 SuSEfirewall2 在作用中 (預設情況下),請啟用在防火牆中開啟埠。如果您讓連接埠保持為關閉,就不可能對時間伺服器建立連接。

23.2 手動設定網路中的 NTP

在網路上使用時間伺服器的最簡單方式就是設定伺服器參數。例如,如果可以從網路存取名為 ntp.example.com 的時間伺服器,那麼,請新增以下行,將此伺服器的名稱新增到 /etc/ntp.conf 檔案:

server ntp.example.com

若要新增更多時間伺服器,請以關鍵字伺服器插入其他行。在使用 systemctl start ntp 指令啟始化 ntpd 後,大約需要一個小時來穩定時間以及建立漂移檔案以校正本地電腦時鐘。使用漂移檔案,可以在電腦開機時計算硬體時鐘的系統錯誤。它會立即使用校正,使系統時間具有更高的穩定性。

有兩種方法可以將 NTP 機制做為用戶端:首先,用戶端可固定在每段間隔時間後向已知伺服器查詢時間。隨著用戶端的增加,此方法可能造成伺服器的高負載。其次,用戶端可以等待網路中的廣播時間伺服器所送出的 NTP 廣播。此方法具有伺服器品質未知的缺點,而且伺服器送出錯誤的資訊可能造成嚴重的問題。

如果時間是經由廣播取得,就不需要伺服器名稱。在這樣的情形下,請在 /etc/ntp.conf 組態檔中輸入 broadcastclient。若要完全使用一或多個已知的時間伺服器,請輸入以 servers 開頭的名稱。

23.3 執行時期的動態時間同步

若系統開機後並無網路連接,ntpd 仍會啟動,但無法解析組態檔案中設定之時間伺服器的 DNS 名稱。在加密的 Wi-Fi 中使用 NetworkManager 時,可能會發生這種情況。

如果您希望 ntpd 在執行時期解析 DNS 名稱,必須設定 dynamic 選項。這樣一來,當開機一段時間後連接網路時,ntpd 便會再次查詢名稱,並連接時間伺服器以獲取時間。

手動編輯 /etc/ntp.conf,並將 dynamic 新增至一或多個 server 項目︰

server ntp.example.com dynamic

您也可以使用 YaST 並按以下步驟操作︰

  1. 在 YaST 中,按一下網路服務 › NTP 組態

  2. 選取要設定的伺服器。然後按一下編輯

  3. 啟動選項欄位,並新增 dynamic。如果已經輸入了其他選項,請使用空格分隔。

  4. 按一下確定關閉編輯對話方塊。重複上述步驟以變更所有要變更的伺服器。

  5. 最後按一下確定儲存設定。

23.4 設定本地參考時鐘

軟體套件 ntpd 包含與本機參照時鐘連接的驅動程式。ntp-doc 套件的 /usr/share/doc/packages/ntp-doc/refclock.html 檔案中提供了受支援時鐘的清單。每個驅動程式都與數字關聯。在 NTP 中,實際組態工作是透過虛擬 IP 位址來執行。把時鐘當成在網路中一樣,將它輸入 /etc/ntp.conf 檔案中。因此,會指定特殊的 IP 位址,127.127.t.u 給它們。在此,t 代表時鐘的類型並可決定使用哪一個驅動程式,而 u 是代表單位,可決定使用哪一個介面。

一般而言,個別裝置都具有描述組態細節的特殊參數。檔案 /usr/share/doc/packages/ntp-doc/drivers/driverNN.html (其中的 NN 為驅動程式的編號) 提供了關於特定類型之時鐘的資訊。例如,type 8 時鐘 (透過序列介面的收音機時鐘) 需要其他可以更精確地指定時鐘的模式。例如,Conrad DCF77 接收器模組具有模式 5。若要使用此時鐘做為偏好的參考,請指定 prefer 關鍵字。Conrad DCF77 接收器模組的完整 server 行如下所示:

server 127.127.8.0 mode 5 prefer

其他的時鐘也使用相同的模式。安裝 ntp-doc 套件後,便可在 /usr/share/doc/packages/ntp-doc 目錄中找到 NTP 的文件。檔案 /usr/share/doc/packages/ntp-doc/refclock.html 提供了指向描述驅動程式參數之驅動程式頁面的連結。

23.5 將時鐘與外部時間參考 (ETR) 同步

支援將時鐘與外部時間參考 (ETR) 同步。外部時間參考每 2**20 (2 的 20 次方) 微秒傳送一次振盪器訊號與同步訊號,以將所有連結伺服器的 TOD 時鐘保持同步。

為了便利,兩個 ETR 裝置可連接到一個機器。如果時鐘偏差超出同步檢查容錯,則所有 CPU 都會收到一個機器記號,指出時鐘不同步。如果出現這種狀況,則所有啟用了 DASD I/O 到 XRC 的裝置就會停止運作,直到時鐘重新同步。

ETR 支援透過兩個 sysfs 屬性啟動;請以 root 身分執行下列指令:

echo 1 > /sys/devices/system/etr/etr0/online
echo 1 > /sys/devices/system/etr/etr1/online
列印此頁面