于建鋒

摘 要:空中交通管制量隨著不斷快速增長的航班量不斷加大,使得各種管制綜合信息管理系統在整個空中交通管制中的重要性越發明顯。目前,民航中南地區空管局區域管制中心應用了大量的管制綜合信息管理系統(包括前置系統、FIPS系統、協同放行與協同決策系統等;以下簡稱管綜系統)。從空中交通管制的實際需要出發,各個管綜系統服務器的系統時鐘與標準北京時間需要盡可能地保持一致。如何保證管綜系統服務器的系統時鐘的可靠同步,是一個不容忽視的問題。因沒有對管綜系統服務器的系統時鐘進行保護,出現過因時鐘源服務器時間跳變導致的各管綜系統服務器無法正常對外提供服務的故障。文章作者通過應用NTP協議,實現對管綜系統服務器的系統時鐘進行保護這一目標。文章介紹了NTP(Network Time Protocol)協議的相關知識,給出了管綜系統服務器在域環境下的配置方法以及注意要點。
關鍵詞:NTP;系統時鐘保護;時間同步;管制綜合信息系統
1 NTP的原理和工作模式
NTP(Network Time Protocol)是由美國德拉瓦大學的David L. Mills教授提出,將計算機服務器或客戶端的時間同步到另一個參考時間源或服務器。NTP協議的詳細說明在RFC-1305文檔中。除可以估算封包在網絡上的往返延遲外,NTP還可獨立地估算計算機時鐘偏差,從而實現在網絡上的高精準度計算機校時。目前在局域網中可以精確到0.1ms,一般情況下,NTP可以提供1-50ms的可信賴性的同步時間源和網絡工作路徑。
1.1 NTP的基本原理
T1:NTP客戶端發送查詢請求數據包的時間戳(以客戶端本地時間系統為基準)
T2:NTP服務器收到查詢請求數據包的時間戳(以服務器本地時間系統為基準)
T3:NTP服務器回復時間信息包的時間戳(以服務器本地時間系統為基準)
T4:NTP客戶端收到時間信息包時間戳(以客戶端本地時間系統為基準)
d:請求、回復數據包在線路上傳輸所需要的時間
θ:客戶端本地時間與服務器端本地時間的差值
現已知T1、T2、T3、T4,希望求得θ以調整客戶端時鐘有:
則可解得:
可以看到,θ、d值只與T2與T1的差值、T4與T3的差值相關,而與T2與T3的差值無關,即θ值與服務器處理請求所需的時間無關。據此,客戶端即可通過T1、T2、T3、T4計算出客戶端與服務器的時差θ去調整客戶端本地的時鐘,從而得到與服務端一致的精準時鐘。
1.2 NTP的工作模式
NTP的工作模式分為三種,分別是:主/被動對稱模式;客戶/服務器模式和廣播模式。在實際生產現場,常用的工作模式為廣播模式。通過NTP時鐘源服務器為各個NTP客戶端提供時鐘信號,時鐘源服務器不論客戶處于哪種工作模式下,主動發出時鐘信號,NTP客戶端根據收到的時間信息調整客戶端的時鐘,此時忽略數據包在網絡傳輸時引起的延時,雖然在準度上有所降低,但可在局域網中滿足精準度要求低于秒級的應用。
2 管綜系統服務器在域環境下的配置方法
目前,管綜系統服務器都是建立在Windows Server操作系統上的。Windows 操作系統包含 W32Time組件,該組件實現了NTP協議。在Windows操作系統的系統服務中,Windows Time系統服務通過W32Time組件維護在網絡上的客戶端和服務器的時間和日期同步。通過對Windows Time系統服務的正確配置,可以讓各個管綜系統服務器從域服務器接收準確的時間,并實現自動的同步;且在域服務器出現大幅度的時間跳變時,拒絕跟隨域服務器的時鐘,保護管綜系統服務器的時鐘不受影響。
2.1 W32Time服務的開啟
在Windows Server 2008以及Windows Server 2012中,Windows Time系統服務默認情況下是跟隨操作系統自動啟用的。可通過命令行直接開啟時間服務,具體的指令為:net stop w32time &&net start w32time。
2.2 管綜系統服務器的配置方法
目前管綜系統各服務器都納入前置、FIPS域,接受前置、FIPS域管理服務器的管理。按照Windows操作系統的域管理策略,管綜各服務器定期接收并跟隨域服務器發布的時鐘。管綜系統各服務器的接收時鐘服務的方式采用了缺省配置,缺少自我保護機制,設置為直接跟隨域服務器的時鐘,如果域服務器時鐘意外情況出現巨變,也會跟隨,導致管綜服務器時鐘巨變。2016年1月20日管綜系統域控虛擬機DC1的系統時間跟隨了物理刀片硬件BIOS時間,發生了系統時間跳變。由于虛擬機DC1作為前置、FIPS域的域管理服務器,因此在虛擬機DC1的系統時間發生跳變后,部分管綜系統的服務器由于時間同步的作用,也相繼發生了系統時間跳變的故障。
將管綜服務器的時鐘服務配置為只接收域服務器提供的合理范圍內的時鐘變更要求(比如5秒-600秒內);如域服務器出現時鐘跳變,導致提供了超出合理范圍的時鐘變更要求,則拒絕跟隨域服務器的時鐘。保持原有的時鐘以避免因域服務器的時鐘跳變,影響該臺管綜服務器的時鐘。
對管綜服務器的注冊表的如下所示的注冊表項進行設置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W
32Time\Config中的MaxNegPhaseCorrection、MaxPosPhaseCorrection將其值設定為600。(該設置以s為單位,如本地時鐘與域服務器時鐘誤差在600s內,則本地時鐘跟隨域服務器時鐘;如誤差超過600s,則本地時鐘不跟隨域服務器時鐘)
將MaxAllowedPhaseOffset的值設定為5,(該配置以s為單位,如本地時鐘與域服務器時鐘誤差在5s內,則本地時鐘不按照域服務器時鐘進行更新;如誤差超過5s,則本地時鐘跟隨域服務器時鐘修改本地時間)
3 結束語
通過實驗環境的驗證,上述配置能夠實現對管綜服務器的時鐘保護這一目標。通過對管綜服務器的正確配置能夠保護管綜系統服務器在設定的范圍內正常地跟隨域服務器的時鐘;且在域服務器出現時鐘跳變超出設定范圍時,能夠保護管綜系統服務器的時鐘不跟隨時鐘源時鐘跳變。
參考文獻
[1]張紅,王志強.NTP協議及其在電信網絡中的應用[J].工業,2004.
[2]RFC 1305. Network Time Protocol(Version 3)Specification,Implementation and Analysis,1992.
[3]RFC 1769.Simple Network Time Protocol(SNTP),1995.
[4]傅宇峰.時間同步系統的實現和應用[J].華為技術報,2002.