NTP時間轉換器

#部署內部ntp時間服務器
Description:本文是部署內部的NTP時間服務器,分別介紹了用ntpd軟件和chronyd軟件來部署NTP服務器,在實際應用中,只需要用其中一款軟件來部署NTP服務器即可。
NET-TOP: NTP-Server:node11-IP:192.168.11.11 <----------------> NTP-Client:node12-IP:192.168.11.12

Linux的NTP總結(百度文庫):https://wenku.baidu.com/view/3dc46b4403020740be1e650e52ea551811a6c97a.html?rec_flag=default&sxts=1553654764639

#NTP協議簡介
NTP是網絡時間協議(Network Time Protocol),它是用來同步網絡中各個計算機的時間的協議。
在計算機的世界裏,時間非常地重要,例如對於火箭發射這種科研活動,對時間的統一性和準確性要求就非常地高,是按照A這臺計算機的時間,還是按照B這臺計算機的時間?
NTP就是用來解決這個問題的,NTP(網絡時間協議)是用來使網絡中的各個計算機時間同步的一種協議。它的用途是把計算機的時鐘同步到世界協調時UTC,其精度在局域網內可達0.1ms,在互聯網上絕大多數的地方其精度可以達到1-50ms。
它可以使計算機對其服務器或時鐘源(如石英鐘,GPS等等)進行時間同步,它可以提供高精準度的時間校正,而且可以使用加密確認的方式來防止病毒的協議***。

NTP要提供準確的時間,就必須有準確的時間來源,那可以用格林尼治時間嗎?答案是否定的。因爲格林尼治時間是以地球自轉爲基礎的時間計量系統,但是地球每天的自轉是有些不規則的,而且正在緩慢加速,因此,格林尼治時間已經不再被作爲標準時間使用。新的標準時間,是由原子鐘報時的國際標準時間UTC(Universal Time Coordinated,世界協調時)。所以NTP獲得UTC的時間來源可以是原子鐘、天文臺、衛星,也可以從Internet上獲取。

#安裝ntpd軟件
yum install -y ntp

#配置內部ntpd服務器
[ -f /etc/ntp.conf.bak ] || cp -v /etc/ntp.conf{,.bak}
vi /etc/ntp.conf 添加如下內容
server 192.168.11.11 #把本機作爲ntp服務端
fudge 192.168.11.11 stratum 10 #本時間服務器的層次爲第10層。

#重啓ntpd服務,並設爲開機啓動
systemctl restart ntpd
chmod -v +x /etc/rc.d/rc.local
echo 'systemctl restart ntpd' >> /etc/rc.d/rc.local

#查看ntp服務信息
ntpq -p

#防火牆放行ntp服務
iptables -I INPUT -p udp --dport 123 -j ACCEPT

#node12客戶端與192.168.11.11時間服務器校對時間
ntpdate 192.168.11.11

#查看系統時間,查看硬件時間,並將系統時間寫入硬件時鐘
date
hwclock
hwclock -w

#centos 7的chrony網絡時間服務器------------------------
#關閉ntpd時間服務
systemctl stop ntpd

#安裝chrony時間服務器軟件
yum install -y chrony

#修改配置文件
vi /etc/chrony.conf 修改如下內容
allow 192.168.11.11/24 #允許此網段的主機同步時間
local stratum 10 #設置本地時間服務器爲第10層(用於定義內部時間服務器)

#重啓chronyd服務
systemctl restart chronyd
systemctl enable chronyd

#查網絡進程
netstat -atunlp|grep chrony

#客戶端時間同步
date -s "20120303"
chronyc sources
date

#chrony服務配置和測試完畢-----------

NTP 工作原理
參考文檔1:https://blog.csdn.net/xiaoshengqdlg/article/details/37695293
參考文檔2:https://wenku.baidu.com/view/d4e61446a8956bec0975e321.html

上圖1所示的是NTP基本工作原理,路由器A和路由器B通過網絡相連,它們都有自己獨立的系統時鐘,要實現各自系統時鐘的自動同步,作如下假設:
路由器A和B的系統時鐘同步之前,路由器A的時鐘設定爲10:00:00am,路由器B的時鐘設定爲11:00:00am。
以路由器B爲NTP時間服務器,即路由器A將使自己的時鐘與路由器B的時鐘同步。
數據包在路由器A和B之間單向傳輸所需要的時間爲1秒。

系統時鐘同步的工作過程如下:
路由器A發送一個NTP消息包給路由器B,該消息包帶有它離開路由器A時的時間戳,該時間戳爲10:00:00am(T1)。
當此NTP消息包到達路由器B時,路由器B加上自己的時間戳,該時間戳爲11:00:01am(T2)。
當此NTP消息包離開路由器B時,路由器B再加上自己的時間戳,該時間戳爲11:00:02am(T3)。
當路由器A接收到該響應消息包時,加上一個新的時間戳,該時間戳爲10:00:03am(T4)。

至此,RouterA 擁有足夠信息來計算以下兩個重要參數:
NTP 消息來回一個週期的時延:Delay=(T4-T1)-(T3-T2)。
RouterA 相對RouterB 的時間差:Offset=((T2-T1)+(T3-T4))/2。
RouterA 根據這些信息來設定自己的時鐘,實現與RouterB 的時鐘同步。

NTP的四種工作模式:
服務器 / 客戶模式(server / client)
這種模式只需要在客戶端配置,服務器端除了配置NTP 主時鐘外,不需要進行其他專門配置。並且,只能是客戶端同步到服務器,服務器不會同步到客戶端。
配置完成後:
客戶端向服務器發送同步請求報文,報文中的 Mode 字段設置爲3(客戶模式)。
服務器端收到請求報文後,自動工作在服務器模式,併發送應答報文,報文中的
Mode 字段設置爲4(服務器模式)。
客戶端收到應答報文後,進行時鐘過濾和選擇,並同步到優選的服務器端。

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