路由器時(shí)間配置與NTP同步實(shí)戰(zhàn)指南)
搞網(wǎng)絡(luò)運(yùn)維的同仁應(yīng)該都遇到過(guò)這種尷尬場(chǎng)面兩臺(tái)核心交換機(jī)上的日志時(shí)間差了半個(gè)多小時(shí)排障時(shí)對(duì)著日志怎么都對(duì)不上或者證書(shū)有效期校驗(yàn)突然失敗業(yè)務(wù)莫名中斷最后才發(fā)現(xiàn)是設(shè)備時(shí)鐘回到了出廠時(shí)間。華為、華三的交換機(jī)路由器時(shí)間配置看著是個(gè)小活兒真到了生產(chǎn)環(huán)境里卻能折騰出一堆幺蛾子。這篇文章我就結(jié)合自己這幾年在現(xiàn)網(wǎng)的操作經(jīng)驗(yàn)把華為VRP平臺(tái)和華三Comware平臺(tái)的時(shí)間配置從頭到尾捋一遍包括手動(dòng)設(shè)置系統(tǒng)時(shí)間、時(shí)區(qū)、夏令時(shí)、NTP客戶端服務(wù)器模式、認(rèn)證以及各種讓人頭大的坑怎么排。剛接手機(jī)房的新網(wǎng)工能照著抄配置思路被時(shí)間同步問(wèn)題折磨過(guò)的老手也能從排錯(cuò)章節(jié)里找到些啟發(fā)。1. 時(shí)間配置不是小事先搞清楚這兩個(gè)層面的概念1.1 時(shí)鐘錯(cuò)亂在現(xiàn)網(wǎng)里到底會(huì)造成什么后果很多人覺(jué)得設(shè)備時(shí)間不就是看一眼準(zhǔn)不準(zhǔn)的問(wèn)題嗎真不是。日志時(shí)間錯(cuò)亂是最好發(fā)現(xiàn)的問(wèn)題也是最輕的后果。想象一下你排查一條鏈路故障核心交換機(jī)、出口路由器、防火墻的日志時(shí)間各差幾分鐘你按時(shí)間線把所有事件拉齊結(jié)果根本對(duì)不上號(hào)。本來(lái)五分鐘能定位的問(wèn)題硬生生耗了你兩小時(shí)。更麻煩的是Syslog服務(wù)器按時(shí)間歸類日志設(shè)備時(shí)間跑偏之后告警和事件會(huì)被記到錯(cuò)誤的時(shí)間窗口里后期審計(jì)溯源基本等于抓瞎。比日志更隱蔽的是證書(shū)和認(rèn)證問(wèn)題?,F(xiàn)在很多網(wǎng)絡(luò)用802.1X做準(zhǔn)入控制EAP-TLS認(rèn)證要校驗(yàn)設(shè)備和服務(wù)器證書(shū)的有效期設(shè)備時(shí)間如果差了幾個(gè)月甚至幾年證書(shū)校驗(yàn)必然失敗合法用戶也會(huì)被攔在門(mén)外。我自己就處理過(guò)一次一臺(tái)華三交換機(jī)重啟之后時(shí)間回到了2000年結(jié)果全網(wǎng)準(zhǔn)入全部報(bào)錯(cuò)用戶側(cè)的電腦、手機(jī)全都提示認(rèn)證失敗場(chǎng)面一度很混亂。類似的還有IPSec、SSL VPN這類依賴時(shí)間戳的隧道建立雙方時(shí)間差超過(guò)一定閾值就直接協(xié)商失敗。還有一個(gè)容易被忽略的地方SNMP Trap和網(wǎng)管平臺(tái)的告警時(shí)間。設(shè)備上報(bào)的Trap里帶的是設(shè)備本地時(shí)間網(wǎng)管平臺(tái)默認(rèn)按接收時(shí)間或Trap里的時(shí)間戳記錄。設(shè)備時(shí)間不準(zhǔn)網(wǎng)管平臺(tái)上的告警時(shí)間就亂了值班人員看告警根本分不清先后順序嚴(yán)重的時(shí)候連告警關(guān)聯(lián)分析都沒(méi)法做。所以時(shí)間配置不是“順手配一下”的事它是整個(gè)網(wǎng)絡(luò)可管理性的地基之一。1.2 手動(dòng)時(shí)間與NTP同步兩種手段各有分工設(shè)備上的時(shí)間體系可以分成兩層看。第一層是系統(tǒng)本地時(shí)鐘就是設(shè)備的主控板或者系統(tǒng)CPU維護(hù)的軟件時(shí)鐘。第二層是讓這個(gè)本地時(shí)鐘和外部時(shí)間源保持一致的機(jī)制最常見(jiàn)的就是NTPNetwork Time Protocol網(wǎng)絡(luò)時(shí)間協(xié)議。本地時(shí)鐘怎么來(lái)的設(shè)備上通常有RTC實(shí)時(shí)時(shí)鐘芯片或者靠超級(jí)電容維持設(shè)備斷電后時(shí)間能繼續(xù)走。但RTC本身精度有限而且如果設(shè)備斷電時(shí)間太長(zhǎng)、電池耗盡時(shí)間就會(huì)掉回出廠值。所以生產(chǎn)環(huán)境里絕對(duì)不能只靠手動(dòng)設(shè)置時(shí)鐘必須靠NTP從可靠的時(shí)間源周期同步。手動(dòng)設(shè)置時(shí)間和NTP之間也不是替代關(guān)系而是互補(bǔ)關(guān)系。NTP服務(wù)器不可達(dá)、設(shè)備初次上電、或者臨時(shí)做實(shí)驗(yàn)的時(shí)候手動(dòng)設(shè)置時(shí)間就是保底操作。而NTP跑起來(lái)之后本地時(shí)鐘會(huì)自動(dòng)被外部時(shí)間源校準(zhǔn)。簡(jiǎn)單說(shuō)手動(dòng)校時(shí)是“應(yīng)急方案”NTP是“長(zhǎng)效機(jī)制”。實(shí)際配置時(shí)我習(xí)慣先手動(dòng)把時(shí)間調(diào)到大致正確再配置NTP否則NTP同步過(guò)程中的跳變太大可能對(duì)依賴時(shí)間戳的業(yè)務(wù)造成瞬時(shí)影響。2. 手動(dòng)校時(shí)沒(méi)有時(shí)間源時(shí)的保底操作2.1 華為VRP設(shè)備手動(dòng)設(shè)置系統(tǒng)時(shí)間的完整命令華為的設(shè)備跑的是VRP平臺(tái)V5和V8在命令細(xì)節(jié)上略有差異但手動(dòng)校時(shí)這條命令基本一致。先通過(guò)Console口或者SSH登錄設(shè)備進(jìn)到用戶視圖執(zhí)行Huawei system-view [Huawei] clock timezone BJ add 08:00:00這條命令的作用是設(shè)置時(shí)區(qū)。clock timezone后面的參數(shù)分三段時(shí)區(qū)名稱、add或minus、偏移量。中國(guó)標(biāo)準(zhǔn)時(shí)間比UTC快8小時(shí)所以用add 08:00:00。時(shí)區(qū)名可以自定義不一定要叫BJ寫(xiě)CST、Beijing都行關(guān)鍵是讓日志里顯示的時(shí)間看起來(lái)直觀。設(shè)置完時(shí)區(qū)再設(shè)置具體的日期時(shí)間。在用戶視圖下執(zhí)行[Huawei] quit Huawei clock datetime 10:30:00 2024-11-20華為VRP上clock datetime的格式是“時(shí):分:秒 年-月-日”注意年月日之間是短橫線。執(zhí)行完以后可以用display clock驗(yàn)證Huawei display clock 2024-11-20 10:30:00 Thursday Time Zone (BJ) : UTC08:00看到時(shí)區(qū)正確、日期時(shí)間正確手動(dòng)校時(shí)就完成了。這里有個(gè)容易踩的坑如果在系統(tǒng)視圖下執(zhí)行clock datetime部分VRP版本也接受但為了兼容性我一般習(xí)慣退到用戶視圖再執(zhí)行。另外clock timezone只需要配一次設(shè)備會(huì)保存但clock datetime每次斷電重啟后如果RTC沒(méi)電還是會(huì)丟。2.2 華三Comware設(shè)備手動(dòng)設(shè)置系統(tǒng)時(shí)間的完整命令華三設(shè)備跑的是Comware平臺(tái)V5和V7命令風(fēng)格和華為VRP高度相似但細(xì)節(jié)上有些差異。先說(shuō)時(shí)區(qū)H3C system-view [H3C] clock timezone BJ add 08:00:00這和華三的基本一致。再看日期時(shí)間設(shè)置華三的格式是“時(shí):分:秒 年/月/日”注意日期用的是斜杠[H3C] quit H3C clock datetime 10:30:00 2024/11/20我用過(guò)的華三S5560、MSR系列都是這種寫(xiě)法。執(zhí)行后同樣用display clock確認(rèn)H3C display clock 2024-11-20 10:30:00 Thursday Time Zone (BJ) : UTC08:00兩家平臺(tái)放在一起對(duì)比命令幾乎就是一個(gè)模子刻出來(lái)的最大的區(qū)別就是日期分隔符華為用短橫線華三用斜杠。這個(gè)細(xì)節(jié)如果搞混了命令會(huì)直接報(bào)錯(cuò)。很多被華為華三雙平臺(tái)折騰過(guò)的人十有八九都在這里卡過(guò)殼。2.3 時(shí)區(qū)配置千萬(wàn)別跳過(guò)這一步坑了不少人新手配置時(shí)間最容易犯的錯(cuò)就是跳過(guò)時(shí)區(qū)直接配置日期時(shí)間。結(jié)果就是設(shè)備顯示的UTC時(shí)間比北京時(shí)間慢了8小時(shí)日志時(shí)間總是“不對(duì)”。實(shí)際上不是時(shí)鐘沒(méi)走準(zhǔn)而是時(shí)區(qū)沒(méi)設(shè)。時(shí)區(qū)的本質(zhì)是告訴設(shè)備“你顯示的基準(zhǔn)時(shí)間對(duì)應(yīng)哪個(gè)地區(qū)”NTP同步回來(lái)的時(shí)間戳本身是UTC格式設(shè)備需要靠時(shí)區(qū)配置轉(zhuǎn)成本地時(shí)間顯示。如果不配置時(shí)區(qū)設(shè)備顯示的就是UTC時(shí)間和當(dāng)?shù)貥?biāo)準(zhǔn)時(shí)間差出一大截。我見(jiàn)過(guò)有人為了省事不配置時(shí)區(qū)直接把系統(tǒng)時(shí)間手動(dòng)撥快8小時(shí)短時(shí)間里日志時(shí)間是“對(duì)”的但NTP一同步又會(huì)跳回UTC時(shí)間反而造成更大混亂。還有一個(gè)冷門(mén)問(wèn)題是夏令時(shí)。歐美很多國(guó)家有夏令時(shí)制度如果設(shè)備部署在這些地區(qū)需要在設(shè)備上配置夏令時(shí)規(guī)則。比如華為命令是clock daylight-saving-time華三也有類似的clock daylight-saving-time配置。但國(guó)內(nèi)沒(méi)有夏令時(shí)這部分基本用不上。我的建議是如果設(shè)備部署在中國(guó)大陸不要配置夏令時(shí)相關(guān)參數(shù)否則每年切換時(shí)間會(huì)帶來(lái)額外的維護(hù)負(fù)擔(dān)。如果設(shè)備在海外再按當(dāng)?shù)氐南牧顣r(shí)規(guī)則認(rèn)真配置這個(gè)后面如果有需要可以單獨(dú)寫(xiě)一篇。提示手動(dòng)校時(shí)之前最好先確認(rèn)設(shè)備當(dāng)前時(shí)間和真實(shí)時(shí)間差距有多大。如果設(shè)備時(shí)間落后了幾年直接配NTP會(huì)導(dǎo)致時(shí)間跳變幅度太大可能影響依賴時(shí)間戳的進(jìn)程。建議先手動(dòng)撥到一個(gè)接近真實(shí)值的時(shí)間再啟動(dòng)NTP做精細(xì)同步。3. NTP時(shí)間同步讓全網(wǎng)設(shè)備時(shí)間整齊劃一3.1 時(shí)間源規(guī)劃先決定誰(shuí)當(dāng)“授時(shí)中心”NTP的本質(zhì)是分級(jí)授時(shí)。設(shè)備之間根據(jù)距離時(shí)間源服務(wù)器的“層數(shù)”決定優(yōu)先級(jí)這個(gè)層數(shù)叫Stratum。Stratum 0是最頂層的原子鐘或GPS授時(shí)源Stratum 1是直接連接Stratum 0的時(shí)間服務(wù)器Stratum 2是從Stratum 1同步的設(shè)備以此類推。普通網(wǎng)絡(luò)設(shè)備能到Stratum 3、Stratum 4就算比較理想了。部署NTP的第一步不是敲命令而是想清楚時(shí)間源怎么規(guī)劃。如果網(wǎng)絡(luò)能訪問(wèn)公網(wǎng)直接讓核心設(shè)備從阿里云、國(guó)家授時(shí)中心等公共NTP服務(wù)器同步就行。如果網(wǎng)絡(luò)是隔離的內(nèi)網(wǎng)沒(méi)有外網(wǎng)權(quán)限就得選一臺(tái)或者兩臺(tái)設(shè)備作為主時(shí)間源讓它們作為“授時(shí)中心”其他設(shè)備都向它們同步。我常用的做法是在核心機(jī)房挑兩臺(tái)設(shè)備一臺(tái)做主NTP服務(wù)器一臺(tái)做備兩者都指向同一個(gè)外部時(shí)間源。其他接入層交換機(jī)、路由器、防火墻全部指向核心這兩臺(tái)設(shè)備的地址。這樣拓?fù)淝逦粫?huì)出現(xiàn)全網(wǎng)設(shè)備各找各的NTP源、時(shí)間互相對(duì)不齊的情況。另一個(gè)要注意的點(diǎn)是層級(jí)不能太深。如果設(shè)備A從公網(wǎng)NTP同步設(shè)備B從A同步設(shè)備C從B同步C的Stratum已經(jīng)高到3層甚至4層時(shí)間精度也會(huì)逐層打折。對(duì)于大多數(shù)企業(yè)網(wǎng)來(lái)說(shuō)兩層就夠用了。把設(shè)備指向核心交換機(jī)核心交換機(jī)指向公網(wǎng)NTP是最清爽的結(jié)構(gòu)。3.2 華為路由器交換機(jī)的NTP客戶端配置實(shí)踐華為設(shè)備配置NTP的入口通常在系統(tǒng)視圖。以一臺(tái)華為交換機(jī)向局域網(wǎng)內(nèi)的NTP服務(wù)器192.168.10.10同步為例Huawei system-view [Huawei] ntp-service enable [Huawei] ntp-service unicast-server 192.168.10.10第一條ntp-service enable是開(kāi)啟NTP服務(wù)不執(zhí)行這條后面的客戶端配置不生效。第二條ntp-service unicast-server是讓本設(shè)備以客戶端身份主動(dòng)向指定服務(wù)器發(fā)起時(shí)間同步請(qǐng)求。如果時(shí)間服務(wù)器支持多個(gè)版本個(gè)別場(chǎng)景下需要顯式指定NTP版本號(hào)[Huawei] ntp-service unicast-server 192.168.10.10 version 3默認(rèn)配置下設(shè)備會(huì)自動(dòng)協(xié)商N(yùn)TP版本華為和華三之間的互通一般沒(méi)有問(wèn)題。如果對(duì)接的是非主流設(shè)備版本協(xié)商失敗指定version 3通常能解決NTPv3也是目前兼容性最廣的版本。華為設(shè)備上NTP命令有兩種風(fēng)格老版本叫ntp-service新型號(hào)部分VRP V8平臺(tái)也支持ntp前綴比如ntp enable。如果設(shè)備上敲ntp-service時(shí)報(bào)未知命令可以試試去掉-service的寫(xiě)法不同版本命令集有差異這屬于正?,F(xiàn)象。3.3 華三路由器交換機(jī)的NTP客戶端配置實(shí)踐華三設(shè)備的NTP配置思路幾乎和華為一模一樣。以華三交換機(jī)向192.168.10.10同步為例H3C system-view [H3C] ntp-service enable [H3C] ntp-service unicast-server 192.168.10.10華三Comware V5和V7都認(rèn)這兩條命令。如果時(shí)間不通或者同步狀態(tài)異常也可以指定版本號(hào)[H3C] ntp-service unicast-server 192.168.10.10 version 3兩家設(shè)備作為客戶端互相指向只要網(wǎng)絡(luò)可達(dá)基本都能正常同步。不過(guò)我在華三設(shè)備上遇到過(guò)一種情況設(shè)備上有多個(gè)VRF實(shí)例NTP報(bào)文的源地址落在錯(cuò)誤的VRF里導(dǎo)致時(shí)間同步失敗。解決方法是給NTP指定源接口這個(gè)后面會(huì)細(xì)說(shuō)。如果局域網(wǎng)里沒(méi)有外部時(shí)間源還有一種做法是把某臺(tái)華三設(shè)備配置成NTP服務(wù)器其他設(shè)備都來(lái)同步它。命令是[H3C] ntp-service master 5這里的5是指定Stratum層級(jí)。ntp-service master表示本設(shè)備以本地時(shí)鐘作為時(shí)間源對(duì)外提供授時(shí)服務(wù)。華為設(shè)備也有對(duì)應(yīng)命令[Huawei] ntp-service master 5這個(gè)命令非常好用但一定要謹(jǐn)慎。設(shè)備自身的時(shí)鐘如果精度不高它會(huì)把自己的“不準(zhǔn)”傳染給全網(wǎng)。所以把某臺(tái)設(shè)備設(shè)成master之前先確認(rèn)這臺(tái)設(shè)備的時(shí)間已經(jīng)盡可能準(zhǔn)確否則就是大家一起錯(cuò)。3.4 認(rèn)證和源接口讓NTP更穩(wěn)的兩個(gè)進(jìn)階配置NTP報(bào)文本身是明文UDP如果網(wǎng)絡(luò)里有惡意設(shè)備冒充時(shí)間服務(wù)器向全網(wǎng)設(shè)備廣播錯(cuò)誤時(shí)間整個(gè)網(wǎng)絡(luò)的時(shí)間體系就會(huì)崩潰。所以可靠的NTP配置一定要加認(rèn)證。華為設(shè)備的NTP認(rèn)證配置[Huawei] ntp-service authentication enable [Huawei] ntp-service authentication-keyid 1 authentication-mode md5 cipher HuaweiTime [Huawei] ntp-service reliable authentication-keyid 1 [Huawei] ntp-service unicast-server 192.168.10.10 authentication-keyid 1配置分四步全局開(kāi)啟認(rèn)證、定義一個(gè)密鑰ID和密碼、把這個(gè)密鑰設(shè)為可信密鑰、在客戶端服務(wù)器配置里引用這個(gè)密鑰。華三的命令幾乎一致[H3C] ntp-service authentication enable [H3C] ntp-service authentication-keyid 1 authentication-mode md5 cipher H3CTime [H3C] ntp-service reliable authentication-keyid 1 [H3C] ntp-service unicast-server 192.168.10.10 authentication-keyid 1注意服務(wù)器端也要配置相同的密鑰ID和密碼否則認(rèn)證失敗設(shè)備之間無(wú)法完成時(shí)間協(xié)商。我在實(shí)際配置中經(jīng)??吹接腥酥慌淞丝蛻舳藳](méi)配服務(wù)器端結(jié)果display ntp-service status里一直報(bào)認(rèn)證失敗這個(gè)細(xì)節(jié)很值得提醒。另一個(gè)進(jìn)階配置是指定源接口。設(shè)備上可能有多個(gè)接口、多個(gè)VRF如果不指定NTP報(bào)文的源接口系統(tǒng)會(huì)選擇最優(yōu)路由對(duì)應(yīng)的接口作為源地址。這在某些復(fù)雜拓?fù)淅飼?huì)導(dǎo)致時(shí)間服務(wù)器回包被策略攔掉。指定源接口可以讓時(shí)間同步流量走固定路徑[Huawei] ntp-service source-interface Vlanif 10華三的接口名習(xí)慣不同注意是Vlan-interface而不是Vlanif[H3C] ntp-service source-interface Vlan-interface 10這個(gè)差異特別容易在雙平臺(tái)環(huán)境中搞混華為叫Vlanif華三叫Vlan-interface本質(zhì)是一個(gè)東西但名字不同。配完源接口后時(shí)間服務(wù)器的回包只會(huì)發(fā)到該接口所在網(wǎng)段排查起來(lái)也方便得多。4. 配置驗(yàn)證與疑難排錯(cuò)從display命令到常見(jiàn)問(wèn)題4.1 display ntp-service命令輸出怎么看配置完NTP不是就完事了必須驗(yàn)證同步狀態(tài)。華為設(shè)備上最常用的查看命令是Huawei display ntp-service status輸出會(huì)有一段關(guān)鍵信息我直接拿一個(gè)正常狀態(tài)的例子說(shuō)明clock status: synchronized clock stratum: 3 reference clock ID: 192.168.10.10 nominal frequency: 250.0000 Hz actual frequency: 250.0000 Hz clock precision: 2^16 clock offset: 0.0000 ms root delay: 15.32 ms root dispersion: 4.09 ms peer dispersion: 3.20 ms重點(diǎn)看三行clock status必須是synchronized如果是unsynchronized說(shuō)明沒(méi)同步上clock stratum正常應(yīng)該比時(shí)間源高1層如果顯示16代表設(shè)備認(rèn)為沒(méi)有可用時(shí)間源reference clock ID顯示的是當(dāng)前同步的時(shí)間源地址如果這個(gè)地址不是你預(yù)期的那臺(tái)服務(wù)器說(shuō)明設(shè)備選錯(cuò)源了。想看得更細(xì)可以用Huawei display ntp-service sessions這個(gè)命令列出設(shè)備當(dāng)前所有NTP會(huì)話每條會(huì)話里能看到remote、local、reach、poll、offset、delay這些字段。reach是一個(gè)八進(jìn)制計(jì)數(shù)器用來(lái)統(tǒng)計(jì)最近八次探測(cè)的響應(yīng)情況。如果reach的值是0說(shuō)明一次都沒(méi)回應(yīng)過(guò)網(wǎng)絡(luò)基本不通如果reach變成377這種滿值說(shuō)明時(shí)間服務(wù)器響應(yīng)正常。offset是本地時(shí)鐘和時(shí)間源的差值單位毫秒正常情況下應(yīng)該很小超過(guò)幾百毫秒就要關(guān)注了。華三設(shè)備的查看命令別搞混Comware V5和V7的寫(xiě)法類似H3C display ntp-service status同樣看clock status和clock stratum。華三的輸出里有時(shí)會(huì)出現(xiàn)clock offset為0但狀態(tài)不是synchronized的情況這通常是設(shè)備剛剛配置NTP還沒(méi)完成第一輪協(xié)商等幾分鐘再看就好了。4.2 常見(jiàn)時(shí)間配置故障速查表我在這個(gè)表里整理了幾類高頻問(wèn)題、排查方向和解決思路都是實(shí)際項(xiàng)目里反復(fù)用到的現(xiàn)象可能原因排查方向設(shè)備狀態(tài)顯示unsynchronized網(wǎng)絡(luò)不可達(dá)或UDP 123被ACL攔截ping時(shí)間源地址檢查中間設(shè)備ACL能ping通但一直同步不上NTP版本不匹配或認(rèn)證失敗指定version 3檢查認(rèn)證密鑰是否一致時(shí)鐘同步了但時(shí)間顯示差8小時(shí)時(shí)區(qū)未配置或配置錯(cuò)誤執(zhí)行clock timezone BJ add 08:00:00重啟后時(shí)間回到2000年板載RTC電池耗盡更換硬件電池啟NTP自動(dòng)恢復(fù)reach值不穩(wěn)定或?yàn)?鏈路丟包或NTP報(bào)文被策略丟棄連續(xù)ping測(cè)試檢查QoS策略和ACLstratum值顯示16設(shè)備認(rèn)為沒(méi)有合法時(shí)間源確認(rèn)源地址配了正確的keyid且密鑰可信多個(gè)NTP源時(shí)方向混亂配置了多個(gè)服務(wù)器沒(méi)規(guī)劃主備只保留核心兩臺(tái)合理配置Stratum層級(jí)認(rèn)證提示失敗雙方keyid或密碼不匹配display ntp-service status查看認(rèn)證失敗計(jì)數(shù)排查時(shí)間問(wèn)題時(shí)我的習(xí)慣是先看最基礎(chǔ)的網(wǎng)絡(luò)連通性直接ping時(shí)間源。如果ping得通再看設(shè)備上有沒(méi)有ACL或安全策略擋了UDP 123端口。很多二層三層交換機(jī)之間的NTP不通不是命令寫(xiě)錯(cuò)而是中間設(shè)備的安全策略沒(méi)放行NTP報(bào)文。注意NTP走的是UDP 123端口不是TCP。4.3 模擬器環(huán)境里的時(shí)間配置特殊注意事項(xiàng)用eNSP和HCL做實(shí)驗(yàn)時(shí)時(shí)間配置的坑和真機(jī)完全不一樣。eNSP里的華為設(shè)備默認(rèn)時(shí)間通常和宿主機(jī)一致但虛擬設(shè)備之間互相做NTP同步時(shí)有時(shí)會(huì)因?yàn)槟M器的時(shí)間推進(jìn)機(jī)制和真實(shí)NTP算法不匹配出現(xiàn)同步很慢甚至不同步的現(xiàn)象。我自己在eNSP里做實(shí)驗(yàn)的體會(huì)是如果只是為了驗(yàn)證NTP配置生效可以先手動(dòng)把兩臺(tái)設(shè)備的時(shí)間故意錯(cuò)開(kāi)再配置NTP觀察設(shè)備能否慢慢靠近。但模擬器里的clock datetime設(shè)置比較隨意NTP同步可能需要幾分鐘甚至更久不要一看到unsynchronized就急著改配置。HCL模擬器里華三設(shè)備的表現(xiàn)也類似虛擬設(shè)備沒(méi)有真實(shí)的RTC時(shí)間完全靠宿主機(jī)的CPU時(shí)鐘模擬精度和真實(shí)設(shè)備相比差距明顯。所以模擬器的定位就是驗(yàn)證命令語(yǔ)法和配置流程驗(yàn)證完以后關(guān)于時(shí)間精度、同步狀態(tài)這些指標(biāo)還是以真機(jī)為準(zhǔn)。不要在模擬器上糾結(jié)時(shí)間差了幾十毫秒那是模擬環(huán)境正常的誤差。5. 我在現(xiàn)網(wǎng)折騰時(shí)間配置踩過(guò)的一些坑5.1 三個(gè)真實(shí)教訓(xùn)第一個(gè)教訓(xùn)是剛?cè)胄袝r(shí)候的事。一臺(tái)華為交換機(jī)需要對(duì)接第三方NTP服務(wù)器我配置了服務(wù)器地址狀態(tài)也顯示synchronized但時(shí)間始終差了一個(gè)多小時(shí)。我排查了網(wǎng)絡(luò)、ACL、版本折騰半天發(fā)現(xiàn)是NTP服務(wù)器本身是另一個(gè)時(shí)區(qū)的時(shí)間源它把本地時(shí)間當(dāng)成了UTC返回給我。這不是設(shè)備的問(wèn)題是時(shí)間源的問(wèn)題。從那以后我每次對(duì)接新的NTP服務(wù)器都會(huì)先在一臺(tái)測(cè)試設(shè)備上驗(yàn)證它返回的時(shí)間基準(zhǔn)對(duì)不對(duì)再批量下發(fā)。第二個(gè)教訓(xùn)是華三設(shè)備的ntp-service master如果配了不設(shè)Stratum默認(rèn)值會(huì)讓客戶端把它當(dāng)成高精度源。有一次我把一臺(tái)普通的接入交換機(jī)設(shè)成了master還忘了指定層級(jí)結(jié)果全網(wǎng)幾臺(tái)設(shè)備都向它同步而那臺(tái)交換機(jī)的本地時(shí)鐘本身就不準(zhǔn)。第二天巡檢時(shí)發(fā)現(xiàn)所有設(shè)備時(shí)間都慢了兩分鐘。這個(gè)事故之后我給自己定了個(gè)規(guī)矩不用ntp-service master做生產(chǎn)授時(shí)除非時(shí)間源是GPS或銣鐘普通交換機(jī)做master只能是臨時(shí)兜底而且必須指定Stratum為5以上。第三個(gè)教訓(xùn)是關(guān)于配置文件遷移的。華三Comware V5升級(jí)到V7時(shí)NTP相關(guān)命令大部分兼容但部分display命令的輸出字段變了監(jiān)控腳本里正則表達(dá)式?jīng)]更新導(dǎo)致網(wǎng)管系統(tǒng)誤報(bào)時(shí)間同步失敗。這個(gè)不算配置錯(cuò)誤但提醒我在升級(jí)前一定要檢查監(jiān)控腳本的兼容性而不只是看設(shè)備側(cè)命令能不能敲進(jìn)去。5.2 落地建議與個(gè)人習(xí)慣每次在華為和華三設(shè)備上調(diào)完時(shí)間我都會(huì)順手在筆記本上記錄一份“時(shí)間配置速查表”因?yàn)檫@兩個(gè)平臺(tái)的命令真的只有細(xì)微差別卻年年有人栽跟頭。我的速查表其實(shí)就是三行華為VRP的clock datetime用短橫線華三Comware用斜杠兩家的NTP命令都叫ntp-service開(kāi)頭接口名華為叫Vlanif華三叫Vlan-interface。記熟這三條雙平臺(tái)的時(shí)間配置基本不會(huì)出錯(cuò)。另外生產(chǎn)環(huán)境里如果暫時(shí)沒(méi)有可靠的外部NTP源我會(huì)寧愿先手工把全網(wǎng)時(shí)間校準(zhǔn)到同一基準(zhǔn)也不要讓每個(gè)設(shè)備各自為政??恐按蠹铱雌饋?lái)都差不多”的想法拖一天日志和告警就會(huì)亂一天。折騰過(guò)幾次因?yàn)闀r(shí)間對(duì)不上導(dǎo)致的證書(shū)和認(rèn)證事故之后你就明白全網(wǎng)時(shí)間統(tǒng)一這件事真值得排在配置項(xiàng)的前面。