天天看點

利用北鬥衛星設計開發一款NTP時鐘伺服器

利用北鬥衛星設計開發一款NTP時鐘伺服器

利用北鬥衛星設計開發一款NTP時鐘伺服器

摘要:随着網絡的飛速發展,裝置的日益增多,許多網絡應用和網絡安全對時間同步問題提出了迫切需求。是以基于NTP的時間同步解決方案成為解決這些問題的合理選擇。本文介紹了時間同步技術中的NTP協定的原理、工作模式和體系結構,并結合校園網的實際網絡結構讨論了NTP在校園網中的應用,

關鍵字:時間同步,網絡時間協定

1、引言:

随着網絡的普及,許多機關都建了自己的園區網,使用的網絡裝置和伺服器日益增多。這些裝置都有自己的時鐘,而且是可以調節的。但是無法保證網絡中的所有裝置和主機的時間是同步的,因為這些時鐘每天會産生數秒、甚至數分鐘的誤差。經過長期運作,時間差會越來越大,這種偏差在單機中影響不太大,但在網絡環境下的應用中可能會引發意想不到的問題。如在分布式計算環境中,由于每個主機時間不一緻,會造成同一操作在不同主機的記錄時間不一緻,将導緻服務無法正常地進行。随着各種網絡應用的不斷發展,對時間的要求也越來越高,否則會引發許多的問題。

2、時間同步概述

将網絡環境中的各種裝置或主機的時間資訊(年月日時分秒)基于UTC(Universal Time Coordinated)時間偏差限定在足夠小的範圍内(如100ms),這種同步過程叫做時間同步[1]。

目前,有兩種重要的時間同步技術,即網絡時間協定(Network Time Protocol,NTP)協定和直接連接配接時間傳輸技術。其中直接連接配接時間傳輸技術,需要所有用戶端直接連接配接到标準時間源。NTP适用于網絡環境下,可以在一個無序的網絡環境下提供精确和健壯的時間服務。這裡我們隻讨論基于NTP原理的時間同步技術和應用。

3、NTP工作原理和應用

3.1、NTP協定概述

NTP最早由美國Delaware大學的教授設計實作的,由時間協定、ICMP時間戳消息及IP時間戳選項發展而來[2]。NTP用于将計算機客戶或伺服器的時間同步到另一伺服器或參考時鐘源。它使用UTC作為時間标準,是基于無連接配接的IP 協定和UDP協定的應用層協定,使用層次式時間分布模型,所能取得的準确度依賴于本地時鐘硬體的精确度和對裝置及程序延遲的嚴格控制。在配置時,NTP可以利用備援伺服器和多條網絡路徑來獲得時間的高準确性和高可靠性。實際應用中,又有確定秒級精度的簡單的網絡時間協定(Simple Network Time Protocol,SNTP)。

圖1是一個UDP分組中的NTP資訊。其中,LI是潤秒插入或删除訓示;VN是NTP協定版本号;Mode、Stratum和Precision分别代表工作模式、時鐘級别和本地鐘精度。Poll是目前發送NTP消息的時間間隔的期望值。Root Delay表示主要參考源的總延遲。Root Dispersion表示相對于主要參考源的正常差錯。Synchronizing Distance和Synchronizing Dispersion是目前往返延遲和相對于PRS的誤差範圍。Reference Timestamp代表目前時鐘參考源的種類和最近一次更新時間,為管理目的而設立。後面三個字段分别代表三個時間戳:Originate Timestamp發送方最後接觸包的時間,Receive Timestamp接收方收到包的時間,Transmit Timestamp接收方發送echo reply時最後接觸包的時間。Authenticator是密匙訓示标志和加密的校驗盒。

圖1:UDP分組中的NTP資訊[4]

3.2、NTP的工作原理

影響NTP 協定精确度最關鍵的原因在于由網絡延遲的随機性而引起的時鐘延遲計算的不準确。由于延遲不準确,是以無法依靠從時間伺服器到客戶機的單邊傳輸來傳遞精确的時間資訊。為了解決這個問題,在NTP協定中使用時間伺服器和客戶機之間的雙向資訊交換和時間戳(timestamp)的概念。圖2顯示了用這種方法确定延遲和偏移的基本原理。

如圖所示,Ti,Ti-1,Ti-2,Ti-3為A、B主機之間最近的4個時間戳的值。假設:

a=Ti-2-Ti-3;b= Ti-1- Ti。那麼A、B主機之間的往返傳輸延遲δi和B相對于A在Ti時刻的時間偏移量θi應該為:δi=a-b;θi=(a+b)/2

由于在網絡傳輸中分組傳輸的流量不确定,可能時大時小,而且通常是以突發的方式到達客戶機,是以傳輸延遲不是一個穩态随機過程。但是,我們可以通過對傳輸延遲的測量來對完成偏差的修正。在圖2中,B相對于A的真實時間偏移是θ。假設用x表示從A到B的真實傳輸延遲,那麼有:x+b=Ti-2–Ti-3=a。由于x必須為正,即有x=a–θ≥0,是以θ≤a。同理,我們可得出b≤θ,是以有b≤θ≤a,即:b=(a+b)/2-(a-b)/2≤θ≤(a+b)/2+(a-b)/2=a。相當于:θi -(δi)/2≤θ≤θi +(δi)/2。

這意味着,真實的時鐘偏內插補點是以測量所得的偏內插補點為中心的,而其可能的變化範圍則等長于測量所得的延遲。每一條NTP消息都包含最新的3個時間戳,第4個時間戳則由消息的到達時刻确定。是以,伺服器和客戶機都可以單獨确定時間偏移。這種對稱的連續采樣的時間傳輸方法的優點是對發送和接受的消息的順序沒有要求,是以不需要可靠的傳輸途徑。很顯然,最終的準确度将取決于發送和接受路徑的統計特性。

3.3、NTP的工作模式

NTP的工作模式有三種:

客戶/伺服器模式:客戶機周期性地向伺服器請求時間資訊,伺服器用來同步客戶機但不能被客戶機同步。客戶機首先向伺服器發送一個NTP 包,其中包含了該包離開客戶機時的時間戳,當伺服器接收到該包時,依次填入包到達時的時間戳、交換包的源位址和目的位址、填入包離開時的時間戳,然後立即把包傳回給客戶機。客戶機在接收到響應包時再填入包傳回時的時間戳。客戶機用這些時間參數就能夠計算出2個關鍵參數:包交換的往返延遲和客戶機與伺服器之間的時鐘偏移。客戶機使用時鐘偏移來調整本地時鐘,以使其時間與伺服器時間一緻[2]。

主/被動對稱模式:與客戶/伺服器模式基本相同。唯一差別在于雙方均可同步對方或被對方同步。

廣播模式:沒有同步的發起方。在每個同步周期中,伺服器向網絡廣播廣播帶有自己時間戳的消息包,所有的目标節點被動接收這些消息,以此調整自己的時間。一般用于網絡延時非常小,或者對時間精度要求不高的地方,如同區域網路内,使用廣播模式可節省帶寬。

3.4、NTP系統體系結構

NTP采用層次式時間分布模型。網絡體系結構主要包括主時間伺服器、從時間伺服器、客戶機和各節點之間的傳輸路徑。主時間伺服器與高精度時間源進行同步,為其他節點提供時間服務。各用戶端從時間伺服器經由主伺服器獲得時間同步。正常情況下,節點(包括時間伺服器和客戶機)隻用最可靠、最準确的伺服器及傳輸路徑進行同步,是以通常的同步路徑為一個層次結構。其中,主時間伺服器位于根節點,其他從時間伺服器随同步精度增加而位于靠近葉子節點的層上,主機和學校伺服器處于葉子節點。NTP将傳輸路徑分為主動同步路徑和備份同步路徑,兩者都同時進行時間資訊包的傳輸,但節點隻用主動同步路徑資料進行同步處理[2]。

圖3:客戶/伺服器模式的一個實作模型[3]

該模型中,本地時鐘程序:處理由修正子產品得出的偏移量并且用NTP中專用算法對本地時鐘的相位和頻率進行調節。傳送程序:由和每個遠端實體對應的不同定時器觸發,用以從資料庫中收集資訊,并向遠端實體發送NTP消息。每個消息包括發送時的本地時間戳,前一次收到的時間戳,還有用來判斷同步網絡層次結構以及管理連接配接的資訊。接收程序:接收NTP消息,計算出遠端時鐘和本地時鐘之間的偏移量。修正子產品:處理與各個遠端實體之間的偏移量,并用NTP中的一個算法選擇最佳的一個。本地時鐘程序:處理由修正子產品得出的偏移量并且用NTP中專用算法對本地時鐘進行調節。

4.NTP在校園網中的應用

在我校校園網絡内,存在大量網絡裝置、伺服器和主機,它們承載了校園網中的計費、維護、管理等功能,對時間的準确度需求比較高,要求在網絡之間傳遞的資訊能夠在時間上保持高度一緻。

時間同步在校園網内的應用主要集中在一下幾個方面:

1、 網絡管理系統的日志審計:當網絡中出現惡意攻擊行為或網絡故障問題時,需要網絡管理者根據有關網絡裝置中産生的日志進行分析和判斷,以便于查找攻擊源和對網絡造成的危害及産生的原因。但是如果網絡中時間不能同步,那麼同一個行為在不同裝置中産生的日志将不能序列化。也就無法對這些問題進行分析和解決。另外當網管中心采用多點日志記錄時,如果網絡各個節點時間不同步,也将造成日志記錄的混亂。若需要這些資訊快速準确進行故障定位,準确的時間是必不可少的[1]。

2、 應用認證過程:校園網内的一些應用系統及以後要建的一卡通系統,在進行使用者認證的時候,要求網絡中時間必須同步。因為認證中的數字時間戳服務要求用戶端使用本地時間作為參數與認證伺服器端交換認證資訊包。如果不能做到網絡中的時間同步,那麼系統就會遇到問題,而且認證過程中還有可能受到重播攻擊。

3、 與時間有關的應用系統:嚴格要求記錄資料送出時刻的網絡應用系統,必須保證送出時間的準确性和不可更改性。另外,對用戶端進行限時操作的應用系統也要求時間同步。

4、 校園網備份系統:在備份伺服器和客戶機之間進行增量備份要求這兩個系統之間的時間同步。

5、 確定系統之間的遠端系統調用能夠正常進行:因為為了保證一個系統調用不會重複進行,該系統調用隻在一個時間間隔内有效。如果系統間的時鐘不同步。該系統調用可能在還沒有發生之前就因為逾時而不能進行

6、 計費系統:網絡計費系統中也要用到數字時間戳服務,是以也要求精确的時間同步。

校園網中各種應用系統及安全系統、網絡管理系統推動了網絡裝置、伺服器等對時間同步的需求。如果不能進行準确的時間同步,我們就得花費大量的時間來解決各種各樣的可能會出現的問題。

總而言之,時間同步技術對網絡管理和網絡應用是非常重要的。為了保證校園網内各裝置和系統之間時間的同步,我們需要解決三方面的問題:一是盡量選取非常精确的時間源;二是将精确的時間傳送到需要時間服務的網絡裝置或主機,保證在傳輸過程中誤差盡量小;三是用絕對時間同步時間裝置,充分利用裝置各自的時間校準機制自動實作時間同步,盡量排除人工因素。

為此結合校園網實際情況,按NTP的分層結構建構一個校園時間同步網,見圖4。目前,校園網網絡結構按實體範圍劃分為幾個區域,各區域有一台三層交換機作為核心裝置,這些核心裝置通過網絡中心的一台核心三層交換機接入Internet。我們采用網絡中心的核心裝置作為Internet上已公開的時間伺服器(國際時間伺服器見http://www.eesic.udel.edu/ntp/;中國教育網内時間伺服器見http://www.time.edu.cn/mem.htm)的用戶端,直接從Internet上的時間伺服器取得準确的時間,然後做為校園網内的一級時間伺服器,為整個校園網絡提供時間服務;其他幾個區域内的核心裝置作為網絡中心核心裝置的用戶端,從網絡中心的核心裝置上取得時間;校園網中分布層的網絡裝置作為核心層的用戶端,從各自所處區域的核心裝置上取得時間,并為校園網内終端使用者提供時間服務。設定上一級時間伺服器的配置指令如下:

(config)#ntp server x.x.x.x:其中x.x.x.x是要保持一緻的上一級時間伺服器的ip位址。

為了保持時間的準确性,校園網内的各種伺服器一般可根據連接配接情況直接從最近連接配接的核心裝置來取得時間,而各核心裝置之間可以采用主/被動對稱模式工作,它們同時可以互相之間進行協調,以保持時間的一緻性。設定對等關系的配置指令如下:(config)#ntp peer x.x.x.x 其中x.x.x.x為對等地位的時間伺服器的ip位址

校園内的伺服器根據作業系統不同,分别采用不同配置指令或軟體:對于Windows2000,可以使用Windows自帶的指令,在指令行方式下輸入:net time/set sntp :x.x.x.x 其中:x.x.x.x為時間伺服器ip位址,可以有一個或多個,之間用空格分開。也可使用免費軟體,如:ntptime等。對于Linux,可采用rdate或netdate與時間伺服器進行時間同步。

核心層裝置的時間服務非常重要,如果受到攻擊,将會影響很大範圍的服務。是以我們可以采用設定授時驗證要求和通路控制政策來防止對核心裝置的非授權通路和改動,以確定校園網内時間的準确、可靠和安全。對時間伺服器端和對應用戶端進行的NTP配置步驟如下:

1、啟用NTP認證:

(switch-config)#ntp authenticate

2、配置NTP認證用的密碼,使用MD5加密,需要和ntp server保持一緻

(switch-config)#ntp authentication key 1 md5 keyword

3、配置雙方信任的key

(switch-config)#ntp trusted – key 1

4、配置通路控制政策,隻允許對符合access-list listnumber條件主機提供時間服務

(switch-config)#ntp acess-group peer listnumber

以上指令必須在需要認證的核心裝置和對應用戶端同時部署,而且配置指令必須一緻:

圖4 校園時間同步網

5.總結

本文讨論了NTP協定的工作原理和工作模式。并針對校園網對時間服務的需求結合校園網的實際情況提出了采用NTP協定分層模式的校園時間同步網的解決辦法。以後随着校園網的建設,對時間服務有要求的網絡應用會越來越多。在網絡安全方面對時間服務的要求也會越來越高,這方面的研究還有待于深入。

繼續閱讀