目錄
一、什么是NTP?
二、計(jì)算機(jī)時(shí)間分類
三、NTP如何工作?
四、NTP時(shí)鐘同步方式(linux)
五、時(shí)間同步實(shí)現(xiàn)軟件(既是客戶端軟件也是服務(wù)端軟件)
六、chrony時(shí)鐘同步軟件介紹
七、/etc/chrony.conf配置文件介紹
八、chronyc命令
九、網(wǎng)絡(luò)公共NTP服務(wù)
十、Chrony時(shí)鐘同步搭建案例
一、什么是NTP?
網(wǎng)絡(luò)時(shí)間協(xié)議(NTP)是時(shí)間同步協(xié)議。它用于在服務(wù)器和客戶端之間同步時(shí)間。服務(wù)器端使用的是UDP端口號(hào)是123和323。使用NTP的目的是使所有設(shè)備的時(shí)間與網(wǎng)絡(luò)上時(shí)鐘服務(wù)器的時(shí)間同步,以使網(wǎng)絡(luò)上所有設(shè)備的時(shí)間保持一致。對(duì)于提供NTP服務(wù)的服務(wù)器,它既可以作為時(shí)間源接受來自其它客戶端的同步,自己本身也可做為客戶端向網(wǎng)絡(luò)上的其它時(shí)鐘服務(wù)器同步時(shí)間。
二、計(jì)算機(jī)時(shí)間分類
1、系統(tǒng)時(shí)間:一般來說就是我們使用date命令查看到的時(shí)間,linux系統(tǒng)下所有時(shí)間的調(diào)用都使用的是系統(tǒng)時(shí)間,除了直接訪問硬件時(shí)間的命令如: clock。
2、硬件時(shí)間(RTC): 主板BIOS中的時(shí)間,由主板電池供電來維護(hù)運(yùn)行,系統(tǒng)在開機(jī)時(shí)會(huì)讀取硬件時(shí)間,并根據(jù)硬件時(shí)間來設(shè)置系統(tǒng)時(shí)間,系統(tǒng)開機(jī)之后時(shí)間就由系統(tǒng)來管理,不在受硬件時(shí)間的控制。
三、NTP如何工作?
1.設(shè)備A向設(shè)備B發(fā)送NTP消息。消息離開設(shè)備A時(shí)帶有時(shí)間戳。時(shí)間戳為10:00:00 am(T1)。
2.當(dāng)此NTP消息到達(dá)設(shè)備B時(shí),設(shè)備B添加其自己的時(shí)間戳。時(shí)間戳是11:00:01 am(T2)。
3.當(dāng)此NTP消息離開設(shè)備B時(shí),設(shè)備B添加其自己的時(shí)間戳并將時(shí)間戳更改為11:00:02(T3)。
4.設(shè)備A收到響應(yīng)消息后,設(shè)備A的本地時(shí)間為上午10:00:03(T4)。
5.此時(shí),設(shè)備A具有足夠的信息來計(jì)算兩個(gè)重要參數(shù):
1、NTP數(shù)據(jù)包的往返時(shí)延Delay=設(shè)備A發(fā)送消息到收到消息之間所經(jīng)歷的時(shí)間-設(shè)備B處理消息數(shù)據(jù)所消耗的時(shí)間=(T4-T1)-(T3-T2)=2秒。
2、設(shè)備A和設(shè)備B之間的時(shí)間差offset(平均值)=設(shè)備B當(dāng)前時(shí)間-設(shè)備A當(dāng)前時(shí)間≈((設(shè)備A發(fā)給設(shè)備B兩者當(dāng)時(shí)時(shí)間差)+(設(shè)備B回復(fù)設(shè)備A兩者當(dāng)時(shí)時(shí)間差))/2=1小時(shí)。
說明:由于設(shè)備A發(fā)送給設(shè)備B的時(shí)間,在設(shè)備B收到之時(shí)、設(shè)備A當(dāng)前的時(shí)間就從之前10點(diǎn)增加到了消息在到達(dá)設(shè)備B時(shí)途中所花費(fèi)的時(shí)間,因此T2-T1的時(shí)間差就多增加消息發(fā)給設(shè)備B途中所花費(fèi)的時(shí)間,并非兩者實(shí)時(shí)的時(shí)間差。同理T3-T4的時(shí)間差值就少計(jì)算了設(shè)備B回復(fù)給設(shè)備A消息途中花費(fèi)的時(shí)間差,并不是設(shè)備A收到消息當(dāng)時(shí)本地的時(shí)間減去此時(shí)設(shè)備A的時(shí)間,因?yàn)樵谠O(shè)備A收到消息時(shí),設(shè)備B的時(shí)間已經(jīng)在消息回復(fù)途中增加了。因此為了盡可能保持兩者時(shí)間的同步,時(shí)間差取的是平均值并非絲毫不差。
四、NTP時(shí)鐘同步方式(linux)
1、直接同步:
使用ntpdate命令進(jìn)行同步,直接進(jìn)行時(shí)間變更。如果服務(wù)器上存在一個(gè)12點(diǎn)運(yùn)行的計(jì)劃任務(wù),當(dāng)前服務(wù)器時(shí)間是13點(diǎn),但標(biāo)準(zhǔn)時(shí)間是11點(diǎn),使用此命令可能會(huì)造成任務(wù)重復(fù)執(zhí)行。因此使用ntpdate同步可能會(huì)引發(fā)風(fēng)險(xiǎn),因此該命令也多用于配置時(shí)鐘同步服務(wù)時(shí)第一次同步時(shí)間時(shí)使用。
2、平滑同步:
使用ntpd進(jìn)行時(shí)鐘同步,可以盡可能小的減少系統(tǒng)計(jì)劃任務(wù)數(shù)量的重復(fù)執(zhí)行,它每次同步時(shí)間的偏移量不會(huì)太陡,是慢慢來的。正因這樣,ntpd平滑同步可能消耗的時(shí)間會(huì)比較常,一時(shí)間難以看出系統(tǒng)時(shí)間變化。
描述:假設(shè)設(shè)備A當(dāng)前的時(shí)間是13:00,通過聯(lián)系時(shí)鐘同步服務(wù)器計(jì)算推算出了當(dāng)前的標(biāo)準(zhǔn)時(shí)間是8:00、與標(biāo)準(zhǔn)時(shí)間差5h。如果此時(shí)設(shè)備A采用平滑同步時(shí)間的工作方式,那么設(shè)備A并不會(huì)直接將當(dāng)前時(shí)間減少5h,調(diào)整到標(biāo)準(zhǔn)時(shí)間8:00。而是采用平滑的、一點(diǎn)一點(diǎn)的縮小與標(biāo)準(zhǔn)時(shí)間差。比如:一開始設(shè)備A先將本地當(dāng)前時(shí)間13:00向前偏移2h,調(diào)整到11:00點(diǎn);然后時(shí)間從11:00開始向后接著計(jì)時(shí),其間設(shè)備A就重復(fù)執(zhí)行了從11:00到13:00之間預(yù)先設(shè)置好的計(jì)劃任務(wù)如黃色框區(qū)域所包含的計(jì)劃任務(wù)。當(dāng)設(shè)備A時(shí)間到了15:00時(shí)又進(jìn)行了一次時(shí)間的平滑同步,將當(dāng)前系統(tǒng)時(shí)間由15:00點(diǎn)向前偏移了2h,假設(shè)偏移后的時(shí)間是14:00;之后系統(tǒng)開始從14:00繼續(xù)開始計(jì)時(shí),其間設(shè)備A只是重復(fù)執(zhí)行了第二個(gè)黃色框時(shí)間內(nèi)的計(jì)劃任務(wù)。當(dāng)設(shè)備系統(tǒng)時(shí)間為19:00時(shí),設(shè)備A又開始進(jìn)行時(shí)間的平滑同步,將系統(tǒng)當(dāng)前時(shí)間向前偏移1h變成18:00;然后繼續(xù)開始計(jì)時(shí),其間同樣只是重復(fù)執(zhí)行了從18:00到19:00之間第三個(gè)黃色框時(shí)間內(nèi)的計(jì)劃任務(wù)。通過以上過程,設(shè)備A總共執(zhí)行了3次時(shí)間的平滑同步:減2h---->減2h----->減1h。設(shè)備A系統(tǒng)時(shí)間總共減少了5個(gè)小時(shí),最終減少的時(shí)間和標(biāo)準(zhǔn)時(shí)間差相同以此通過幾次時(shí)間平滑偏移完成了系統(tǒng)時(shí)間和標(biāo)準(zhǔn)時(shí)間的同步一致,并且盡可能小的減少了系統(tǒng)內(nèi)的計(jì)劃任務(wù)因時(shí)間調(diào)整重復(fù)執(zhí)行的不同類型任務(wù)數(shù)量。
五、時(shí)間同步實(shí)現(xiàn)軟件(既是客戶端軟件也是服務(wù)端軟件)
*由于客戶端系統(tǒng)時(shí)間經(jīng)常時(shí)而不準(zhǔn),為了能讓其在任何情況下向NTP服務(wù)器自動(dòng)同步時(shí)間,需保持客戶、服務(wù)端程序在后臺(tái)持續(xù)運(yùn)行。
1、ntp: 將主機(jī)系統(tǒng)時(shí)間和世界協(xié)調(diào)時(shí)間UTC進(jìn)行同步,在局域網(wǎng)內(nèi)誤差可達(dá)0.1ms,在互聯(lián)網(wǎng)內(nèi)絕大地方時(shí)間誤差控制在1-50ms。
2、chrony: 紅帽系統(tǒng)8.0以后系統(tǒng)默認(rèn)安裝的ntp服務(wù)軟件,可使系統(tǒng)時(shí)間與NTP服務(wù)器、GPS接收器以及手表進(jìn)行同步。還可以作為NTP服務(wù)器為其它客戶端提供時(shí)鐘同步服務(wù)。在局域網(wǎng)內(nèi)誤差控制在幾十微秒,在互聯(lián)網(wǎng)上時(shí)間同步誤差控制在幾十毫秒內(nèi),時(shí)間同步更精準(zhǔn)。
六、chrony時(shí)鐘同步軟件介紹
兩個(gè)主要程序:
1、chronyd: 后臺(tái)運(yùn)行的NTP服務(wù)守護(hù)進(jìn)程,用于將內(nèi)核控制的系統(tǒng)時(shí)間和時(shí)鐘服務(wù)器時(shí)間進(jìn)行同步。并根據(jù)從NTP服務(wù)器獲取的時(shí)間信息計(jì)算出標(biāo)準(zhǔn)時(shí)間差,并以此對(duì)系統(tǒng)時(shí)間進(jìn)行補(bǔ)償調(diào)整。
2、chronyc: 客戶命令行工具,用于監(jiān)控性能并進(jìn)行多樣化配置。它既可以在運(yùn)行chronyd實(shí)例的計(jì)算機(jī)上進(jìn)行使用,也可以在一臺(tái)不同的遠(yuǎn)程計(jì)算機(jī)上進(jìn)行使用。
服務(wù)單元unit文件: /usr/lib/systemd/system/chronyd.service
監(jiān)聽端口: 323/udp,123/udp(為了兼容老版紅帽系統(tǒng)自帶的的ntp時(shí)間同步軟件)
配置文件:/etc/chrony.conf
七、/etc/chrony.conf配置文件介紹
- server-----指定本機(jī)要同步的NTP服務(wù)器IP地址或域名。iburst選項(xiàng)表示時(shí)間源可達(dá)時(shí),一下子發(fā)8個(gè)數(shù)據(jù)包而不是一個(gè)數(shù)據(jù)包向服務(wù)器同步時(shí)間。包間隔為2s,可加速用戶初始時(shí)間同步速度。
- driftfile----根據(jù)從時(shí)間源獲取的標(biāo)準(zhǔn)時(shí)間計(jì)算出系統(tǒng)本身調(diào)整時(shí)間的差值,并將其記錄到此處指定的文件中,以便系統(tǒng)重啟后為調(diào)整系統(tǒng)時(shí)間做補(bǔ)償。
- rtcsync----開啟內(nèi)核模式。使內(nèi)核控制的系統(tǒng)時(shí)間每11分鐘拷貝到實(shí)時(shí)時(shí)間RTC,即硬件時(shí)間內(nèi)。
- allow/deny? -----設(shè)置是否允許某臺(tái)主機(jī)、子網(wǎng)、或者網(wǎng)絡(luò)訪問到本系統(tǒng)NTP服務(wù)。
- cmdallow/cmddeny-------指定那臺(tái)主機(jī)可以通過chronyd使用控制命令。
- bindcmdaddress-----指定chronyd時(shí)間同步服務(wù)所監(jiān)聽的接口IP地址
- makestep------為客戶端的時(shí)鐘同步設(shè)置時(shí)間差閾值。只有用戶系統(tǒng)時(shí)間偏差超過所允許的時(shí)間閾值時(shí),進(jìn)行系統(tǒng)時(shí)間的調(diào)整。
- local stratum 10----即使上面server指令中的時(shí)間服務(wù)器不可用,也允許將本地時(shí)間作為標(biāo)準(zhǔn)時(shí)間授時(shí)給其它客戶端。我們知道NTP組網(wǎng)架構(gòu)有層級(jí)劃分:如阿里云服務(wù)器為企業(yè)內(nèi)部的A1設(shè)備授時(shí)------>A1設(shè)備又為企業(yè)的A2、A3設(shè)備提供時(shí)間同步服務(wù)------->A3設(shè)備又給企業(yè)內(nèi)的A4設(shè)備提供NTP服務(wù)。這樣站在阿里云服務(wù)器角度,阿里云服務(wù)器就屬于0層---->A1設(shè)備屬于1層------>A2、3設(shè)備屬于2層------>A4設(shè)備就屬于3層了(層:客戶機(jī)到達(dá)時(shí)鐘源服務(wù)器中間所經(jīng)歷的其它NTP服務(wù)器跳數(shù))。因此,"local stratum 10"就表示在server處的服務(wù)器不可訪問時(shí),本系統(tǒng)作為NTP服務(wù)器只給位于其下(從本服務(wù)器開始算起:服務(wù)器本身屬于0層)10層內(nèi)的設(shè)備提供授時(shí)服務(wù)。
八、chronyc命令
help----查詢更多有關(guān)chronyc的交互命令
accheck-----指定客戶端地址或域名檢查其是否可以訪問到本地ntp服務(wù)器
activity-----顯示當(dāng)前有多少NTP服務(wù)源在線/離線
sources [-v]-----顯示當(dāng)前時(shí)間源的同步信息
sourcestats [-v]------顯示當(dāng)前時(shí)間源的同步統(tǒng)計(jì)信息
add server? ------手動(dòng)添加一臺(tái)新的NTP服務(wù)器(并不會(huì)保存到配置文件中)
clients -----查看有哪些客戶端已訪問到本服務(wù)器
delete ------手動(dòng)刪除NTP服務(wù)器
settime -----手動(dòng)設(shè)置守護(hù)進(jìn)程時(shí)間
sracking-------顯示系統(tǒng)時(shí)間信息
九、網(wǎng)絡(luò)公共NTP服務(wù)
cn.pool.ntp.org------虛擬化集群的ntp服務(wù)器
ntp.aliyun.com-----阿里云linux公共NTP服務(wù)器
time.pool.aliyun.com------阿里云windows的NTP服務(wù)器
s1b.time.edu.cn--------清華大學(xué)NTP服務(wù)器
210.72.145.44--------國(guó)家授時(shí)中心服務(wù)器
十、Chrony時(shí)鐘同步搭建案例
實(shí)驗(yàn)環(huán)境:
實(shí)驗(yàn)描述:
NTP-Server/Client扮演客戶機(jī)角色向阿里云同步時(shí)間、同時(shí)也扮演內(nèi)網(wǎng)NTP時(shí)鐘源服務(wù)器角色向內(nèi)網(wǎng)主機(jī)Cliet提授時(shí)服務(wù)。
注意:
1、客戶端系統(tǒng)時(shí)間與NTP服務(wù)器系統(tǒng)時(shí)間差過大,客戶端將有可能不會(huì)執(zhí)行時(shí)間同步。
2、若本機(jī)系統(tǒng)為時(shí)鐘同步的Server和Client兩種角色,當(dāng)本地系統(tǒng)無法訪問指定的服務(wù)器進(jìn)行時(shí)鐘同步時(shí),則默認(rèn)也不允許向其它的客戶機(jī)提供授時(shí)服務(wù)。除非手動(dòng)配置允許對(duì)本地客戶端授時(shí)的層級(jí)。
Server端:
1、安裝NTP服務(wù)客戶端軟件chrony(紅帽8.0默認(rèn)已安裝)。
2、查看主機(jī)系統(tǒng)時(shí)間和硬件時(shí)間,為了時(shí)間同步測(cè)試將系統(tǒng)和硬件時(shí)間調(diào)錯(cuò)。
2、修改/etc/chrony.conf配置文件。
本系統(tǒng)向阿里云NTP服務(wù)器同步系統(tǒng)時(shí)間:
允許企業(yè)內(nèi)部的主機(jī)訪問本NTP服務(wù):
3、防火墻放行chrony監(jiān)聽的UDP_323和123端口。
4、開啟chronyd時(shí)鐘同步服務(wù)
5、查看系統(tǒng)時(shí)間同步狀況。
6、在NTP服務(wù)器端測(cè)試客戶端能否訪問到本機(jī)提供的ntp服務(wù)(可省略)。
Client端:
1、安裝chrony客戶端軟件(紅帽8.0默認(rèn)已安裝)。
2、修改/etc/chrony.conf配置文件來指定本機(jī)所要向哪臺(tái)NTP時(shí)鐘源同步時(shí)間。
3、將系統(tǒng)時(shí)間調(diào)錯(cuò),用于測(cè)試后面同步效果。
4、開啟chronyd服務(wù),并查看chrony.conf配置文件指定的NTP服務(wù)器是否處于運(yùn)行狀態(tài)。
5、查看系統(tǒng)時(shí)間同步狀況
6、切換到ntp服務(wù)器查看有哪些客戶機(jī)已訪問到本服務(wù)器(可省略)
文章來源:http://www.zghlxwxcb.cn/news/detail-687459.html
@聲明:“山月潤(rùn)無聲”博主知識(shí)水平有限,以上文章如有不妥之處,歡迎廣大IT愛好者指正,小弟定當(dāng)虛心受教!文章來源地址http://www.zghlxwxcb.cn/news/detail-687459.html
到了這里,關(guān)于NTP時(shí)鐘同步服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!