天天看點

NTP(網絡時間協定)基礎及服務配置

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用戶端

NTP(網絡時間協定)基礎及服務配置

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(網絡時間協定)基礎及服務配置

查詢是否安裝ntp軟體包:rpm -qa | grep ntp

NTP(網絡時間協定)基礎及服務配置

設定時區:cp /usr/share/zoneinfo/Aisa/Shanghai /etc/localtime

NTP(網絡時間協定)基礎及服務配置

修改系統時間,與Internet時間同步:date 080110002019.00        ntpdate  0.cn.pool.ntp.org 

NTP(網絡時間協定)基礎及服務配置

将硬體時間修改到與系統時間相同

NTP(網絡時間協定)基礎及服務配置
NTP(網絡時間協定)基礎及服務配置

修改/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

注釋,并添加内容如下:

NTP(網絡時間協定)基礎及服務配置
NTP(網絡時間協定)基礎及服務配置

修改/etc/sysconfig/ntpd檔案

讓ntp服務修改硬體時間

添加語句:SYNC_HWCLOCK=yes

NTP(網絡時間協定)基礎及服務配置

修改/etc/ntp/step-tickers

當ntpd服務啟動,或重新開機時,自動與該檔案中記錄的上層NTP服務進行時間校對

檢視ntp用戶端是否與ntp伺服器時間同步:ntpstat

NTP(網絡時間協定)基礎及服務配置

将ntp服務加入開機自啟動:chkconfig ntpd on

NTP(網絡時間協定)基礎及服務配置

控制ntp服務:

開啟NTP服務

NTP(網絡時間協定)基礎及服務配置

檢視NTP服務狀态

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

NTP(網絡時間協定)基礎及服務配置

同步系統時間、并修改硬體時間ntpdate

伺服器端:

NTP(網絡時間協定)基礎及服務配置
NTP(網絡時間協定)基礎及服務配置
NTP(網絡時間協定)基礎及服務配置

修改/etc/ntp.conf主配置檔案(注釋并添加)

server  區域網路NTP伺服器IP  prefer

server  區域網路NTP伺服器IP

NTP(網絡時間協定)基礎及服務配置

注:ntp用戶端不用修改restrict參數

修改/etc/ntp/step-tickers,添加server:

       區域網路NTP伺服器IP

       區域網路NTP伺服器IP

NTP(網絡時間協定)基礎及服務配置

修改/etc/sysconfig/ntpd,使其自動修改将硬體時間:SYNC_HWCLOCK=yes

NTP(網絡時間協定)基礎及服務配置

是否開機自啟動:chkconfig   ntpd  on

NTP(網絡時間協定)基礎及服務配置

啟動服務并檢視狀态

NTP(網絡時間協定)基礎及服務配置
NTP(網絡時間協定)基礎及服務配置
NTP(網絡時間協定)基礎及服務配置