windows時間服務器搭建

NTP(網絡時間協議)

網絡時間協議,英文名稱:Network Time Protocol(NTP)是用來使計算機時間同步的一種協議,它可以使計算機對其服務器時鐘源(如石英鐘,GPS等等)做同步化,它可以提供高精準度的時間校正(LAN上與標準間差小於1毫秒,WAN上幾十毫秒),且可介由加密確認的方式來防止惡毒的協議攻擊。NTP的目的是在無序的Internet環境中提供精確和健壯的時間服務。

原理

NTP提供準確時間,首先要有準確的時間來源,這一時間應該是國際標準時間UTC。 NTP獲得UTC的時間來源可以是原子鐘、天文臺、衛星,也可以從Internet上獲取。這樣就有了準確而可靠的時間源。時間按NTP服務器等級傳播。按照離外部UTC 源的遠近將所有服務器歸入不同的Stratum(層)中。Stratum-1在頂層,有外部UTC接入,而Stratum-2則從Stratum-1獲取時間,Stratum-3從Stratum-2獲取時間,以此類推,但Stratum層的總數限制在15以內。所有這些服務器在邏輯上形成階梯式的架構相互連接,而Stratum-1的時間服務器是整個系統的基礎。計算機主機一般同多個時間服務器連接, 利用統計學的算法過濾來自不同服務器的時間,以選擇最佳的路徑和來源來校正主機時間。即使主機在長時間無法與某一時間服務器相聯繫的情況下,NTP服務依然有效運轉。爲防止對時間服務器的惡意破壞,NTP使用了識別(Authentication)機制,檢查來對時的信息是否是真正來自所宣稱的服務器並檢查資料的返回路徑,以提供對抗干擾的保護機制。NTP時間同步報文中包含的時間是格林威治時間,是從1900年開始計算的秒數。

協議介紹

爲了許多原因整個網絡保持準確的時間是十分重要的。即使是小小的時間誤差也會引起大問題。如,依靠協調的時間以保證按次序進行發生的分配程序。安全的機制依靠整個網絡的協調的時間。由多個計算機執行的文件系統更新依靠時間的同步,空中控制系統提供空域圖像的描述,也需要時間的同步。既然飛行路線要求十分精確的時間(可以想像一下,如果空中控制的計算機時間不同步會是什麼樣的後果)。

UTC時間是使用多種不同的方法得到的,包括無線電和衛星系統。一些國家的用於高級服務的特別可以使用特別的接收機,包括GPS。但是,在每臺計算機都安裝這些接收機一是不實際,也是經濟的。作爲替代,指定的時間服務器的計算機上安裝這種接收機,並使用如NTP的協議來同步時間,從UTC分開的程度是被定義爲層,一個無線電釧(從指定的發射機或衛星導航設備上接收信息)是0層,直接與無線電鐘連接的是1層,從1層計算機上接收時間的是2層,依次如此。

術語網絡時間協議(NTP)適用於運行在計算機上的和客戶端/服務器程序和協議,程序由作爲NTP客戶端、服務器端或兩者的用戶編寫,在基本條件下,NTP客戶端發出時間請求,與時間服務器交換時間,這個交換的結果是,客戶端能計算出時間的延遲,它的彌補值,並調整與服務器時間同步。通常情況下,在設置的初始,在5至10分鐘有內6次交換。 一旦同步後,每10分鐘與服務器時間進行一次同步,通常要求單一信息交換。冗餘服務器和不同的網絡路徑用於保證可靠性的精確度,除了客戶端/服務器商的同步以外,NTP還支持同等計算機的廣播同步。NTP在設計上是高度容錯和可升級的。

發展

網絡時間協議(NTP)的首次實現記載在Internet Engineering Note之中,其精確度爲數百毫秒。稍後出現了首個時間協議的規範,即RFC-778,它被命名爲DCNET互聯網時間服務,而它提供這種服務還是藉助於Internet control Message Protocol (ICMP),即互聯網控制消息協議中的時間戳和時間戳應答消息作爲NTP。

NTP的名稱的首次出現是在RFC-958之中,該版本也被稱爲NTP v0,其目的是爲ARPA網提供時間同步。它已完全脫離ICMP,是作爲獨立的協議以完成更高要求的時間同步,它對於如本地時鐘的誤差估算和精密度等基本運算、參考時鐘的特性、網絡上的分組數據包及其消息格式進行了描述。但是不對任何頻率誤差進行補償,也沒有規定濾波和同步的算法。

美國特拉華大學(University of Delaware)的David L .Mills主持了由美國國防部高級研究計劃局DARPA、美國國家科學基金NSF和美國海軍水面武器中心NSWC資助的網絡時間同步項目,成功的開發出了NTP協議的第1, 2, 3版。

NTP version 1 出現於1988年6月,在RFC-1059中描述了首個完整的NTP的規範和相關算法。這個版本已經採用了client/server模式以及對稱操作,但是它不支持授權鑑別和NTP的控制消息。

1989年9月推出了取代RFC-958和RFC-1059的NTP v2版本即RFC-1119。

幾乎同時,DEC公司也推出了一個時間同步協議,數字時間同步服務DTSS(Digital Time Synchronization Service)。在1992 年3月,NTP v3版本RFC-1305問世,該版本總結和綜合了NTP先前版本和DTSS,正式引入了校正原則,並改進了時鐘選擇和時鐘濾波的算法,而且還引入了時間消息發送的廣播模式,這個版本取代了NTP的先前版本。NTP v 3 發佈後,一直在不斷地進行改進,NTP實現的一個重要功能是對計算機操作系統的時鐘調整。在NTP v3研究和推出的同時,有關在操作系統核心中改進時間保持功能的研究也在並行地進行。1994年推出了RFC-1589,名爲A KernelModel for Precision Time keening,即精密時01保持的核心模式,這個實現可以把計算機操作系統的時間精確度保持在微秒數量級。幾乎同時,改進建議。對本地時鐘調整算法,通信模式,新的時鐘驅動器,又提出了NTP v4適配規則等方面的改進描述了具體方向。 

截止到2010年6月,最新的NTP版本是第4版(NTPv4),其標準化文檔爲 RFC 5905,它繼承自RFC 1305所描述的NTP v3。網絡時間同步技術也將向更高精度、更強的兼容性和多平臺的適應性方向發展。網絡時間協議NTP是用於互聯網中時間同步的標準之一,它的用途是把計算機的時鐘同步到世界協調時UTC,其精度在局域網內可達0.1ms,在Internet上絕大多數的地方其精度可以達到1- 50ms .值得提一下的是,簡單的NTP(SNTP)version4已經在RFC2030描述了。主要NTP產品供應商:GlobalTime & Symmetricom。

系統結構

NTP系統結構

爲適應Internet的層次結構,NTP採用層次氏時間分佈模型。NTP系統的網絡結構包括主時間服務器、從時間服務器及客戶與節點間的傳輸路徑。主時間服務器與高精度同步時鐘源。從時間服務器經由主服務器或從其它服務器獲得同步。在正常情況下節點(包括從時間服務器及客戶)只用最可靠、最準確的服務器及傳輸路徑來進行同步,因此通常的同步路徑呈現爲一個層次結構。在該層次結構中,主服務器位於根節點,而其它服務器隨同步精度的增加而位於逐漸靠近葉子節點的層上。

NTP將傳輸路徑區分爲主動同步路徑(Active SynchronizationPaths)與備份同步路徑(Backup Synchronization Paths)兩者都進行時間消息包的傳輸,但節點只用主動同步路徑的數據進行同步處理。圖1顯示了上述結構。圖1中的每一個節點代表一個子網的服務器,數字爲節點的stratum號。帶箭頭的實線代表主動同步路徑及同步信息的流動方向;虛線代表被動同步路徑;標有x的路徑是可能出錯的。圖1(a)是初始的情形,圖1(b) x 是標有的路徑出錯時的情形。由這兩個圖可以看到,當上述標有x的路徑出錯時,節點c由stratum2降級爲stratum3 且啓用與節點的備份同步路徑爲主動同步路徑;同時,由於節點c的stratum數不再比節點f的低,而且這時有一個stratum 數比節點f低的節點b存在,因此節點與c與f間的路徑降爲被動的,而節點與b與f間的路徑升爲主動同步路徑。

時間處理過程

下圖顯示了NTP在一個同步節點上的處理流程。

NTP處理流程

NTP對時間的處理主要包括以下4部分。

1、針對一個時間服務器的數據過濾處理。這種處理的目的是改善通過一個時間服務器獲得的網絡延遲和時鐘偏差的估計精確度。

2、針對多個時間服務器的對等選擇與組合處理。NTP是通過利用多個服務器及多條網絡路徑來獲得高準確度與可靠性。

3、本地時鐘校正。爲維持時鐘的單調性,NTP並不將前兩步處理得到的時鐘偏差直接用來調整本地時鐘,而是通過一個環路濾波器轉換爲一個對可變頻率振盪器的控制量,來控制振盪器的振盪頻率,間接調整系統時鐘。

軟件實現

NTP首次實現是在1980年,當時同步精度只有幾百ms。1989年,Toronto大學的Dennis Fergusson開發了基於NTP第2版(RFC 1119)的一個實現,稱爲xntp。xntp是目前可公開獲得的NTP的一個主要實現版本,目前已發展到第3.5版。xntp支持大多數UNIX系統,如:AIX,HP-UX,Irix,Linux,SCO UNIX,Solaris 等。目前最新的3.5.93版已開始支持Windows2000/NT。Widnows2000/NT本身也提供了一個基於SNTP的時間服務。但是Widnows2000/NT的時間服務只是用來爲其身份驗證過程提供時間基準的,其同步精度只有2s。

xntp有如下主要特點:(1)實現了NTP的所有功能; (2) 即使網絡連接暫時不可用xntp也可以用過去的數據計算時鐘的漂移並自動進行校正;(3)xntp可獲得對本地時鐘質量的一個估計;(4)xntp 還包含了用於實現計算機時鐘與外部時鐘(GPS接收機、Mode 接收機等) 進行同步的系統接口及多種驅動程序。

xntp的配置包括設置工作模式、設置服務器地址、是否啓用身份驗證、配置頻率漂移數據文件及調整本地時鐘用到的參數等。具體方法及配置過程可參見xntp的文檔。

具體搭建過程

windows時間服務器的搭建非常簡單。

開始-運行中輸入gpedit.msc,回車,打開組策略編輯器。如圖所示:

定位到 計算機配置—管理模板—系統—Windows時間服務,雙擊"全局時間配置",選擇"已啓用"。

修改MaxNegPhaseCorrection的值爲900(即爲900秒,15分鐘)

修改MaxPosPhaseCorrection的值爲900(即爲900秒,15分鐘)

修改AnnounceFlags的值爲5

計算機配置—管理模板—系統—Windows時間服務—時間提供程序,"啓用Windows NTP服務端",選擇"已啓用"。

在服務中找到Windows Time服務,設置啓動類型爲自動即可。

注意事項:

w32ntp採用udp協議,使用123端口。所以如果服務器開了防火牆的情況下,一定要在入站規則中運行udp協議123端口通過。

客戶端配置如下圖:

在服務器(E)後面的文本框中輸入剛纔搭建的時間服務器的IP,點擊立即更新,幾秒後自動完成與時間服務器的同步。

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