我們過度的依賴網絡時間,一直都相信著網絡里的計算機都有精確的時間。然而我們不知道的是計算機時間與NTP時間往往很多都是不一致的對于一些獨立運行的系統(tǒng)不會有什么太大的影響,對于一個有著多種相互關聯的業(yè)務系統(tǒng)的供電企業(yè)而言,卻是致命的。
一方面是國網公司“SG186”工程要求,同一業(yè)務系統(tǒng)在上下級公司的縱向上要做到貫通,各種業(yè)務系統(tǒng)在公司內部的橫向上要做到集成。所以各業(yè)務系統(tǒng)傳遞的信息,在時間上必須保持高度一致,并準確地與北京時間同步。另一方面是一些自動化系統(tǒng),如電能量采集系統(tǒng)、調度自動化系統(tǒng)、配網自動化系統(tǒng)等,這些系統(tǒng)中的計費、維護、管理等功能,對時間的精確有著更苛刻的要求。
在我們依賴文件服務器、郵件服務器、互聯網網關以及其它無數網絡設備的背后,存在一個基本的信任就是:網絡里的計算機都有精確的時間。隨著公司計算機應用的廣度和深度不斷加大,網絡中的設備種類和業(yè)務類型越來越多,服務器的數量也與日俱增。傳統(tǒng)上,各種服務器、網絡設備使用的時間都是由設備內部時鐘來提供的。由于服務器、網絡設備本身的時鐘誤差是不可避免的,盡管這種誤差每天不大,但經過一段時間的累積就會出現大的時間差,從而導致網絡中各服務器、網絡設備的時間不一致。伴隨著企業(yè)計算的引人注目的增長以及真正類似UNIX的多任務機制在PC上實現,相應地,企業(yè)內產生了同步所有計算機/工作站的需求。
數據共享、分布式軟件開發(fā)和安全是當今三個最常用的也是最容易遭受攻擊的網絡應用。網絡管理員需要精確的時間信息來進行網絡操作,以確保這三種應用以及其它關鍵網絡應用的性能。一臺專門設計來在企業(yè)內部發(fā)布精確時間信息的時間服務器(NTP)在今天的網絡環(huán)境內成為一個基本組成部分。
你的計算機有正確的時間嗎?
每周,計算機時鐘都會有幾秒鐘的漂移,包括復雜的基于UNIX的工作站也是這樣。因此,任意兩臺計算機的時間差都可能達到幾分鐘甚至幾個小時??纯茨阒車挠嬎銠C,假如有兩臺計算機的時間是統(tǒng)一的、準確的時間,這將會是一件非常難得的事。
問題在于計算機只是機械的信任它處理的信息,就好像其它計算機知道準確的時間一樣。它們假設這是正確的,但是當假設錯誤時就會導致操作失敗。
網絡授時協(xié)議和GPS是救星
網絡授時協(xié)議使得網絡內的計算機有可能統(tǒng)一到準確的時間。NTP是互聯網TCP/IP協(xié)議族的一部分,它把網絡里的計算機時間同步到共同的時間源。在大的企業(yè)網內,有可能用到不同級別的時間服務器(NTP)來分發(fā)統(tǒng)一的時間。
有很多時間源可以來設置NTP的時間,精度由低到高包括:撥號連接,無線電接收機、互聯網NTP時間服務器(NTP)以及GPS衛(wèi)星系統(tǒng)?;ヂ摼W上有很多NTP服務器,但是它們的可靠性比較低,因為這取決于你的互聯網連接的可靠性、本地網的流量以及NTP服務器的可靠性和負載情況。而且,因為互聯網上的任何人都可以很容易的偽裝一個錯誤的時間,所以安全性降低了。GPS在世界任何地方都可以提供一個高可靠的時間標準給網絡管理員,GPS是設計來做導航和授時的,它由地球軌道上的帶有原子鐘的24顆衛(wèi)星組成。基于GPS的時間服務器(NTP)不但授時精度比互聯網上的時間服務器(NTP)高,而且時間還可以連續(xù)不斷的更新,就是說GPS時鐘可以每秒更新時間服務器(NTP)的時間,而不需要周期性的發(fā)送請求到其它時間服務器(NTP)請求時間,這只能在一個請求周期結束的時候才能更新本地時間服務器(NTP)的時間。
另一個網絡授時的重要問題是時間源的冗余。這在網絡分布比較廣闊的環(huán)境下很必要,比如分布在不同的建筑甚至在不同的大陸。數據流量很大的環(huán)境、從事重要任務的部門以及具有可疑可靠性數據鏈的網絡是另外一個問題,在這種場合冗余備份就更加重要。如果是在這種情況下,需要好幾個GPS時間服務器(NTP)提供必要的冗余,以確保即使網絡連接斷了也能使得所有的工作站保持時間同步。
依賴時間的網絡應用
有很多應用依賴計算機間準確的時間才能運作正常,如果計算機間的時間誤差比較大,這些應用和協(xié)議就可能完全失敗。
分布式軟件開發(fā)
網絡文件系統(tǒng)(NFS)是一個依賴時間的網絡應用,它完全依賴各個工作站給服務器上的文件提供時間戳。當一個文件被創(chuàng)建或者被修改了,終端工作站的時鐘被作為時間戳加在文件上。因此,如果客戶端的時鐘不同于服務器的時鐘,則文件的時間戳將有不同。很多應用,從磁盤備份到生成程序都使用時間戳來確定哪個文件是最新的。在這種情況下,錯誤的時間戳意味著重大的文件損失,也就是工時和機時的損失。
計算機程序員經常需要“make”程序來編譯代碼生成軟件應用程序,“make”程序完全依賴各個文件的時間戳來確定哪個文件最近被修改了,隨后決定哪個文件需要重新生成。如果“make”程序在一個分布式文件系統(tǒng)中應用,比如NFS,一臺終端標記的時間戳和其它終端標記的會有不同,除非時鐘是同步的。如果兩臺終端的時間不一致,這時運行“make”就會發(fā)生嚴重的錯誤。對于有些“make”程序,允許的時間偏差可以大一些,但是從典型意義上來說,與單獨一次編譯差不多,這段時間對于今天的計算機來說只不過是幾秒鐘而已。
很多情況下,有很多終端和一臺生成程序的主機。一個工程組可能保留一臺最快的計算機來生成所有的程序,或者可能是來自幾臺不同機器的同一個項目的很多程序員。客戶端使用自己的計算機編輯文件,而另外一臺計算機編譯這些文件。如果兩臺計算機的時間不同,導致的問題可能是好的話簡單的浪費了一臺計算機資源,或者嚴重的話就是不能包含一些最新生成的代碼。
安全
當你組織內部的計算機網絡不斷擴大,更多的部門依賴互聯網上的資源的時候,我們更關心這個重要的資源的安全性。
有幾個新程序可以使你的內部網更安全,他們的作用范圍從保護登錄名和口令信息到驗證分布式環(huán)境中至關重要的信息。下面討論幾個比較普遍的安全話題。
Kerberos是MIT開發(fā)的一個協(xié)議,用來在一個不安全的網絡內,比如說一個大學網,發(fā)送加密的口令信息。Kerberos允許在互聯網上安全
通信而不需要防火墻,并且支持很多通用的TCP/IP應用程序,例如telnet,ftp以及很多遠程過程調用RPC程序。
Kerberos允許用戶向Kerberos密鑰分發(fā)中心(KDC)服務器申請一個“加密票”,“加密票”包括用戶的口令和時間戳,兩者用計算機上常用的DES算法加密。時間戳用來防止網絡信息攔截機把攔截到的“加密票”偽裝成剛剛授權的“加密票”不斷的重復發(fā)送。“加密票”在一段時間內有效,這就要求客戶端機器時鐘和Kerberos服務器時鐘在這一段時間內同步。有代表性的,時間范圍是5分鐘,時間范圍越小網絡越安全。
如果時鐘漂移出允許的時間范圍,網絡上的用戶就不能使用Kerberos并且不能使用網絡。如果擴大時間范圍,則這個網絡對于網絡上的監(jiān)聽者來說就是容易攻破的。
和具有Kerberos的網絡一樣,安全的NFS和RPC程序運行允許DES密鑰通過以訪問文件服務器和做客戶端接入,雖然他們和Kerberos系統(tǒng)不同,但是他們使用相似的方法即在數據包內加上時間戳。和具有Kerberos的網絡一樣,如果客戶端和服務器超出密鑰的時間范圍,鏈接將中斷,用戶就不能使用請求的資源。如果沒有精確的時間源,這種安全措施就不能成為被廣泛支持的協(xié)議。
診斷和性能
利用時間戳診斷優(yōu)化網絡功能有好幾種方法,時間戳在這種情況下非常重要,可以確保網絡的最小標準和識別問題,這些會影響網絡的性能和效率。
電子郵件
電子郵件是計算機網絡中最重要的信息流,即使沒有本地網,許多公司也會利用MODEM在世界各地或者只是在一個房間內的一組人之間利用電子郵件相互通信。
時間戳可以用來衡量郵件服務器的性能和可靠性,并且設置性能標準,測定瓶頸服務器,判定哪個鏈接需要更寬的帶寬。同樣的郵件服務器要有時鐘同步才行。
網絡管理
SNMP被廣泛的用來管理和控制遠程設備,SNMP代理可以是集線器、交換機、網橋、路由器甚至計算機。這些網絡設備內的代理向網絡管理站(NMS)發(fā)送重要事件作為對故障和過載報警的響應。NMS站從整個網絡內收到數百的重要事件和報警,必須使得這些報警和時間相關聯。如果設備是錯誤的時間,則重大事件報告內也是包含的錯誤時間,這就很難確定是什么原因引起這種狀況,觸發(fā)這些重大事件報告。
SNMP同樣包含遠程網絡監(jiān)控(RMON)標準,可以在分布式的監(jiān)控設備里有效的設置攔截包和極限重大事件。這個標準允許用戶攔截包和報警,記錄他們的時間戳并和其它RMON設備的結果相關聯。還有,如果每個RMON設備的時鐘沒有同步,比較的結果和相關性就沒有意義,甚至導致錯誤的結論。
總的說來,現代網絡的分布計算環(huán)境有許多非常依賴精確時間的應用,包括電子郵件服務器、文件服務器以及C/S應用。用時間來標記這些文件創(chuàng)建以及后來修改的情況。這些時間戳由很多不同的機器產生,他們的時間的可靠性經常被忽略,等到發(fā)現有問題已經晚了。