第1章 配置NTP服務器 (筆記)

配置NTP服務器

NTP(Network Time Protocol,網絡時間協議)是一個用於同步計算機時鐘的網絡協議,它可使計算機與

其他服務器或時鐘源(如石英鐘、GPS等)進行時間同步,進行高精度的時間校正(理論上局域網內與標

準時間差小於1ms,廣域網上與標準時間差小於幾十毫秒),而且NTP支持使用加密確認的方式防止惡意的

協議***。

NTP提供準確時間,首先需要一個準確的UTC時間來源。NTP獲得UTC的時間來源可以從原子鐘、天文臺、衛

星,也可從Internet上獲取。時間按NTP服務器的等級傳播,根據離外部UTC源的遠近將所有服務器歸入不

同的層(Stratum)中。Stratum-1在頂層由外部UTC接入,而Stratum-2則從Stratum-1獲取時間,

Stratum-3從Stratum-2獲取時間,依次類推,但Stratum層的總數限制在15以內。所有這些服務器在邏輯

上形成層次架構相互連接(如圖), 而Stratum-1的時間服務器是整個系統的基礎。

153528864.jpg


服務器可以同時與多個時間服務器連接,利用統計學的算法過濾來自不同服務器的時間,以選中最佳的路

徑和來源來校正主機時間。即使主機在長時間無法與某一時間服務器相聯繫的情況下,NTP服務依然有效

運轉。

時間服務器可以利用以下3種方式與其他服務器進行時間校對。

(1)broadcast/multicast:該方式主要適用於局域網的環境,時間服務器週期性地以廣播的方式將時間

信息傳送給其他網絡中的時間服務器,其時間僅會有少許的延遲,而且配置非常的簡單,但是該方式的精

確度並不高,對時間精確度要求不是很高的情況下可以採用。

(2)symmetric:該方式一臺服務器可以從遠端時間服務器獲取時鐘,如果需要也可提供時間信息給遠端

的時間服務器。此方式適用於平配置冗餘的時間服務器,可以提供更高的精確度給主機。

(3)client/server:該方式與symmetric方式比較相似,只是不提供給其他時間服務器時間信息,此方式

適用於一臺時間服務器接收上層時間服務器的時間信息,並提供時間信息給下層的用戶。

上述3種方式,時間信息的傳輸都使用UDP協議123端口。

NTP服務安裝

NTP服務默認是安裝的軟件包,rpm -qa | grep ntp檢查是否安裝

未安裝可使用如下命令安裝與刪除NTP服務器軟件包:

rpm -ivh ntp-4.2.2* 使用rpm方式安裝
yum -y install ntp.i* 使用yum方式安裝
rpm -e ntp-4.2.2* 使用rpm方式刪除
yum -y remove ntp.i* 使用yum方式刪除

NTP服務配置

在NTP服務安裝完成後,需要修改NTP服務配置文件以滿足使用需求。NTP服務主配置文件是/etc/ntp.conf



NTP服務啓動、暫停

NTP屬於System V服務,其啓動、暫停相關命令如下:

service ntpd start #啓動
service ntpd stop #停止
service ntpd restart #重新啓動
service ntpd reload #重新加載
service ntpd status #查看當前啓動狀態

NTP服務自動加載

設置NTP服務下一次開機運行狀態可通過以下命令或使用ntsysv命令在服務設置界面中配置:

chkconfig ntpd on #在運行級別2、3、4、5上設置爲自動運行
chkconfig ntpd off #在運行級別2、3、4、5上設置爲不自動運行
chkconfig ntpd --level 35 on #在運行級別3、5上設置爲自動運行
chkconfig ntpd --level 35 off #在運行級別3、5上設置爲不自動運行

相關配置文件詳解

NTP服務配置文件與linux大多數配置文件一樣“#”開始的是註釋行(在執行時將被忽略)。在配置文件

中主要包括以下幾個參數。

(1)restrict <IP 地址> <子網掩碼>|<網段> <子網掩碼>

[ignore|nomodiy|noquery|notrap|notrust|nokod]:指定可以進行NTP通信的IP地址或網段。

ignore:關閉所有的NTP服務。
nomodiy:表示客戶端不能更改NTP服務器的時間參數,但可以通過NTP服務器進行時間校對。
noquery:不提供NTP服務。
notrap:不提供trap遠程事件登錄(Remote Event Logging)的功能。
notrust:拒絕沒有通過認證的客戶端。
kod:kod技術可以阻止“Kiss of Death”包(一種DOS***)對服務器的破壞。使用此參數將開啓該功能


nopeer:不與其他同一層的NTP服務器進行時間同步。

如果沒有指定選項,那就表示指定的客戶端在訪問NTP服務器時沒有任何限制。

(2)server [IP|FQDN][prefer]:指定該NTP服務器上層NTP服務器,也就是爲該服務器對自身進行時間校

對的NTP服務器。如果指定多個上層NTP服務器時,使用prefer參數的服務器優先級最高。在沒有prefer參

數時,上層NTP服務器的優先級根據在配置文件的順序從上到下,依次由高到低。在指定上層NTP服務器後

,默認情況下至少15min後纔會與上層NTP服務器進行時間校對。

(3)fudge:修改NTP服務器相關參數。

(4)driftfile文件名:默認情況下NTP服務器的時間計算式依據BIOS的芯片震動週期頻率來計算的,但

是這個數值與上層NTP服務器可能不一致,所以NTP服務器會自動去計算NTP服務器的頻率與上層NTP服務器

的頻率,並且將兩個頻率的誤差記錄在driftfile參數指定的文件中。該參數一般不需要修改,使用配置

文件中默認配置即可。

(5)broadcast網段 子網掩碼:指定進行NTP時間廣播的網段,在不指定此參數時NTP服務器會對所有能

訪問的網段廣播。

(6)logfile 文件名:指定NTP服務日誌文件。

在/etc/ntp.conf文件中默認有如下幾行配置:

#默認拒絕所有NTP客戶端所有的操作,並打開kod功能。
restrict default kod nomodify notrap nopeer noquery

#允許本地所有操作
restrict 127.0.0.1

#如無法與大這行之前定義的上層NTP服務器通信時,以本地時間爲準確時間
server 127.127.1.0

#指定本地NTP服務器的層
fudge 127.127.1.1 stratum 10

以下幾個目錄和配置文件雖然不是NTP服務自身配置文件,但都與NTP服務有關。

/usr/share/zoneinfo/:在該目錄中的文件是規定了各主要時區的時間配置文件(比如中國上海時間配置

文件就是/usr/share/zoneinfo/Asia/Shanghai).

/etc/sysconfig/clock:該文件是指定系統中當前時區的信息,該文件就是讓系統知道應該使

用/usr/share/zoneinfo/下的哪個時間配置文件。

/etc/localtime:該文件是系統通過/etc/sysconfig/clock將/usr/share/zoneinfo/下指定的時間配置文

件複製爲/etc/localtime。

如需希望每個用戶有單獨的時區設置,可以在用戶目錄下的.bashrc 文件中加入“export TZ=

“/usr/share/zoneinfo/<timezone_directory>/<timezone_file>””,比如當前主機的時間是US,但希望

用戶tonyzhang的時間爲上海,則可以在tonyzhang用戶目錄的.bashrc文件中加入“export

TZ="/usr/share/zoneinfo/Asia/Shanghai"”,在RHEL裏可不需手動配置這些文件,如果需要修改時區,

可通過system-config-date完成。

配置實例

目前Internet上的時間服務器比較多,很容易找到一臺時間服務器作爲企業內部標準時間來源。
將RHEL配置爲企業內容NTP服務器的過程如下。

(1)修改/etc/ntp.conf文件,內容如下:

restrict default kod nomodify notrap nopeer noquery

restrict 127.0.0.1
restrict -6 ::1

restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

#指定Internet 上的時間服務器。
restrict 207.46.232.182 mask 255.255.255.255 nomodify notrap noquery
server 207.46.232.182

server 127.127.1.0
fudge 127.127.1.0 stratum 10

keys /etc/ntp/keys

#指定NTP服務器日誌文件。
logfile /var/log/ntp

(2)修改/etc/ntp/step-tickers 文件,內容如下(當ntpd服務啓動時,會自動與該文件中的記錄的上層

NTP服務進行時間校對):

207.46.232.182
127.127.1.0

(3) 修改/etc/sysconfig/ntpd文件,內容如下:

#運行BIOS與系統時間同步,也可以通過hwclock -w命令。
SYNC_HWCLOCK=yes

(4)在配置完成並重新啓動服務後,可通過ntpstat命令顯示本機上一次與上層NTP服務器同步時間的情況

。也可以使用ntpq -p查看本機與上層NTP服務器通信情況。


175306964.jpg


175320506.jpg


(1)進行實踐校對的NTP服務器
(2)本地主機與上層NTP服務器的時間差
(3)下次同步時間

remote:本地主機所連接的上層NTP服務器。
refid: 指的是給上層NTP服務器(207.46.232.182)提供時間校對的服務器。
st:上層NTP服務器的級別
when:上一次與上層NTP服務器進行時間校對的時間(單位:s)
poll:下一次本地主機與上層NTP服務器進行時間校對的時間(單位:s)。在NTP服務運行之初poll值會比較小(可以讓本地主機儘快調整到正確的時間範圍),之後poll值會逐漸增大。
reach:一個八進制值記錄已成功與上層NTP服務器進行時間校對的時間。
delay:從本地主機發送同步要求到上層NTP服務器的循環時間差(單位:10-6s)。
offset:時間補償的結果(單位:10-6s),這個值非常關鍵,它是本地主機與上層NTP服務器的時間差,offset越接近於0,與上層NTP服務器的時間就越接近。
jitter:一個做統計的值,該值統計在特定個連續的連接數裏offset的分佈情況(這個值的絕對值越小本地主機的時間就越精確)

圖形界面配置NTP

system-config-date ——Network Time Protocol ——Synchronize system clock before starting service

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章