1.NTP簡介
背景:網絡時間協定(network time protocol,NTP)由美國德拉瓦大學的David L Mills教授于1985年提出,是用于設計使Internet上的計算機保持時間同步的一種通信協定。
- 由RFC1305定義的時間同步協定
- 在分布式時間伺服器和用戶端之間進行時間同步
- 基于UDP封包傳輸,端口号123
- 采用分層的方法來定義時鐘的準确度
- 支援通路控制和MD5加密驗證
- 可以采用單點傳播、多點傳播或廣播方式發送協定封包
時鐘層的概念:時鐘的層數決定了時鐘的準确度,取值範圍0——15。參考時鐘的層數取值範圍為0~15,準确度從0到15依次遞減,層數0處于子網特殊位置,是基準時間的參考源,目前普遍采用GPS的UTC時間源。
2.NTP工作原理
通過交換時間伺服器和用戶端的時間段,計算出用戶端相對于伺服器的時延和偏差,進而實作時間的同步。
3.NTP工作模式
根據網絡結構和交換機在以太網中的位置,交換機共4種NTP工作模式進行時間同步。
- 伺服器/用戶端模式(server/client)
- 對等體模式(symmetric active / symmetric passive)
- 廣播模式(broadcast server / broadcast client)
- 多點傳播模式(multicast server / muticast client)
4.應用建議
- 盡量在本地區域網路部署SNTP伺服器,Internet上公用的SNTP伺服器時延具有不确定性,會對授時精度産生影響。
- 用戶端授時請求大于1min,以免SNTP伺服器負載過量,無法及時響應。
- 高可靠性系統中,最好配置多台SNTP伺服器,利用DNS實作負載均衡。
- 用戶端應能夠識别伺服器故障,一旦發現故障,應丢棄時間戳,轉向其他伺服器請求授時。
5.NTP服務部署架構
internet NTP伺服器----區域網路NTP伺服器---區域網路NTP用戶端
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLygTOzMjNzgTM1ITMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
Internet NTP伺服器
查詢Internet NTP伺服器:https://www.ntppool.org
中國所在時區:https://www.ntppool.org/zone/cn
0.cn.pool.ntp.org
1.cn.pool.ntp.org
2.cn.pool.ntp.org
3.cn.pool.ntp.org
6.區域網路NTP伺服器配置
網絡擴充卡NAT模式
查詢是否安裝ntp軟體包:rpm -qa | grep ntp
設定時區:cp /usr/share/zoneinfo/Aisa/Shanghai /etc/localtime
修改系統時間,與Internet時間同步:date 080110002019.00 ntpdate 0.cn.pool.ntp.org
将硬體時間修改到與系統時間相同
修改/etc/ntp.conf主配置檔案
a)driftfile參數:解決NTP伺服器校準時間時的傳送延遲
driftfile /var/lib/ntp/drift
b)restrict參數:權限的控制(區域網路ntp伺服器需修改,ntp用戶端可不用修改)
格式:restrict IP mask 掩碼 參數
用途:IP規定了允許或不允許通路的位址(此處若為default,即為0.0.0.0所有ip),配合掩碼可以對某一網段進行限制。
restrict參數包括:
ignore:關閉所有NTP服務
nomodify:用戶端不能修改伺服器的時間,但可以作為用戶端的校正伺服器
noquery:不提供時間查詢(使用者端不能用ntpq、ntpc指令)
nopeer:不與同一層的其他伺服器進行時間同步
kod:kod技術可以阻止”kiss of death”包(一種DNS攻擊)對伺服器的破壞
notrap:不提供trap遠端事件登入的功能(遠端事件日志記錄程式)
對應預設配置項:
restrict default kod nomodify notrap nopeer noquery
#預設對所有client拒絕所有的操作
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1 #允許本機位址的一切操作
restrict -6 ::1
restrict -6:限制IPv6
c)server參數:設定上級時間伺服器(區域網路ntp伺服器和用戶端都需要配置)
格式: server IP位址或域名 [prefer]
用途:
- 為該NTP伺服器指定的上級NTP伺服器。
- 當指定多個NTP伺服器時
- 使用prefer參數的伺服器優先級最高
- 未使用prefer參數,優先級則按從上到下的順序依次由高到低
預設配置項:
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst
注釋,并添加内容如下:
修改/etc/sysconfig/ntpd檔案
讓ntp服務修改硬體時間
添加語句:SYNC_HWCLOCK=yes
修改/etc/ntp/step-tickers
當ntpd服務啟動,或重新開機時,自動與該檔案中記錄的上層NTP服務進行時間校對
檢視ntp用戶端是否與ntp伺服器時間同步:ntpstat
将ntp服務加入開機自啟動:chkconfig ntpd on
控制ntp服務:
開啟NTP服務
檢視NTP服務狀态
關閉NTP服務
重新開機NTP服務
7.常用指令
- ntpstat:檢視ntp伺服器有無和上層ntp連通
- ntpq –p指令:該指令可以列出目前我們的NTP與相關的上層NTP的狀态
- remote:即NTP主機的IP或主機名稱。注意最左邊的符号,如果由“+”則代表目前正在作用鐘的上層NTP,如果是“*”則表示也有連上線,不過是作為次要聯機的NTP主機。
- refid:參考的上一層NTP主機的位址
- st:即stratum階層(0-15)
- when:幾秒前曾做過時間同步更新的操作
- poll:下次更新在幾秒之後
- jitter:Linux系統時間與BIOS硬體時間的差異時間
- reach:已經向上層NTP伺服器要求更新的次數
- delay:網絡傳輸過程鐘延遲的時間
- offset:時間補償的結果
watch “ntpq –p”指令:結果同上
8.區域網路用戶端配置
檢查是否安裝ntp: rpm -qa | grep ntp
同步系統時間、并修改硬體時間ntpdate
伺服器端:
修改/etc/ntp.conf主配置檔案(注釋并添加)
server 區域網路NTP伺服器IP prefer
server 區域網路NTP伺服器IP
注:ntp用戶端不用修改restrict參數
修改/etc/ntp/step-tickers,添加server:
區域網路NTP伺服器IP
區域網路NTP伺服器IP
修改/etc/sysconfig/ntpd,使其自動修改将硬體時間:SYNC_HWCLOCK=yes
是否開機自啟動:chkconfig ntpd on
啟動服務并檢視狀态