(揚州職業(yè)大學信息工程學院,江蘇 揚州225000)
計算機主機的時間主要是通過內(nèi)部BIOS芯片的原子震蕩周期來計時,然而由于不同的芯片之間多少存在差異,因此造成BIOS時間與UTC時間(國際標準時間)總會存在差異。所以,為了避免計算機時間長期積累下導致的時間偏差越來越大,就必須定期對電腦時間進行調整。用戶可以通過手表、時鐘或者是電視時間來進行時間校準,對于計算機用戶來說,最方便的是通過Internet上的時間服務器校準電腦時間(稱之為時間同步[1])。時間同步在網(wǎng)絡中應用十分廣泛,尤其是對時間精確要求較高的地方,例如交通運輸業(yè)的時間顯示系統(tǒng)、電信網(wǎng)絡中的計費系統(tǒng)、網(wǎng)絡考試系統(tǒng)等,如果計算機時鐘不精確,那么這些應用很多將不能正常工作。因此,時間同步應用顯得格外重要。
對于個人計算機而言,時間同步很容易實現(xiàn),如常用的Windows系統(tǒng)中就自帶了時間同步功能,只要設置好時間服務器的地址或域名,能夠訪問Internet,就可以和網(wǎng)絡中的時間服務器進行時間同步。但若在一個公司的局域網(wǎng)中,如果讓每個員工通過手動的方式每隔一段時間去校準時間,不但不利于管理,而且校準目標時間源也不一定準確。公司局域網(wǎng)絡中不同計算機的時間偏差尤其是客戶機/服務器之間的時間偏差,就會對一些要求時間同步的服務產(chǎn)生影響,如為了管理方便,服務器設置到下班時間時用戶賬號過期,用戶無法訪問Internet網(wǎng)絡;如果用戶的計算機時間與服務器的時間不同步,當用戶認為下班時間未到,正準備發(fā)送郵件時,而在服務器的時間上,用戶的賬號已經(jīng)過期,從而導致用戶無法發(fā)送郵件。針對以上問題,可以在局域網(wǎng)中建立一個能提供精確時間的服務器,局域網(wǎng)內(nèi)的所有計算機統(tǒng)一通過這臺時間服務器進行時間同步,從而保證局域網(wǎng)中的所有計算機的時間一致?;谝陨纤枷耄P者以開源操作系統(tǒng)Debian Linux為時間服務器平臺,基于NTP協(xié)議,提出了基于Debian環(huán)境下構建局域網(wǎng)時間同步系統(tǒng)的解決方案。
為了實現(xiàn)時間同步,需要運用NTP(Network Time Protocol)協(xié)議,該協(xié)議是用來使計算機時間同步的一個Internet標準協(xié)議,它可以使計算機對其服務器或時鐘源做同步化,可以提供高精準度的時間校正,且可借由加密確認的方式來防止惡毒的協(xié)議攻擊[2]。
要在局域網(wǎng)內(nèi)實現(xiàn)時間同步,需要創(chuàng)建NTP服務器。NTP服務器采用層次結構(stratum)來處理時間的同步化。在因特網(wǎng)中已經(jīng)提供了一些主要與次要的時間服務器,這些均屬于第一層及第二層的時間服務器(stratum-1,stratum-2),一般來說,在進行NTP主機的架設時,選擇國內(nèi)的上層NTP來同步時間即可,如中國國家授時中心提供的NTP服務器,如果這部NTP屬于stratum-2,那主機即為stratum-3。另外,在選擇上層NTP時,一般會選擇多部上層NTP服務器,這樣可以避免因為某部NTP服務器突然故障,其他主機仍然可以提供NTP主機進行時間同步[3-4]。
在局域網(wǎng)中,NTP服務可以看成C/S的工作模式,其工作原理如下圖1所示。
圖1 NTP工作原理圖
以校園局域網(wǎng)為例,一般校園網(wǎng)的網(wǎng)絡結構是分為2層的星型結構,即中心交換機層和供各個節(jié)點接入的桌面交換機層。中心交換機可以采用1臺高檔的企業(yè)級交換機,提供多個千兆網(wǎng)絡端口。各個節(jié)點的桌面交換機連接到中心交換機上,這些桌面交換機內(nèi)部相當于一個小型局域網(wǎng)。根據(jù)時間同步的原理以及校園局域網(wǎng)的網(wǎng)絡結構,筆者設計了如下的NTP同步方案(見圖2),給整個校園局域網(wǎng)提供準確可靠的時間同步服務。在整個局域網(wǎng)內(nèi)部設置1~2臺基于Debian Linux平臺的時間服務器,通過中心交換機與Internet連接,與因特網(wǎng)上提供的時間服務器進行時間同步。設置2臺時間服務器可以確保局域網(wǎng)中至少有1臺NTP服務器為下層提供時間同步服務,NTP服務器設置在局域網(wǎng)防火墻的后面,僅對局域網(wǎng)內(nèi)部提供時間同步服務。各部門的部門服務器、客戶機通過桌面交換機與中心交換機連接,與局域網(wǎng)內(nèi)的NTP服務器相連實現(xiàn)時間同步。
圖2 局域網(wǎng)NTP同步示意圖
Linux操作系統(tǒng)一直以其開源、穩(wěn)定、安全的特點作為服務器操作系統(tǒng)的首選,Linux有很多發(fā)行版,這里選擇以最新的Debian 6.0作為NTP服務器的系統(tǒng)平臺。在Debian系統(tǒng)上配置NTP服務器,可按如下步驟實現(xiàn):
1)安裝NTP軟件包 通過apt-get install ntp命令在線安裝,也可以從網(wǎng)上下載源碼安裝。
2)配置NTP服務 NTP服務的配置文件為/etc/ntp.conf,其中最關鍵的配置參數(shù)為server段,該段的參數(shù)是用來指明上層時間服務器的位置,可以設置多個上層時間服務器以保證時間同步。如:
3)啟動 NTP服務 輸入啟動腳本/etc/init.d/ntp start。
4)監(jiān)視NTP服務 輸入命令ntpq-p來查看客戶機與服務器之間的關系。
值得注意的是,NTP服務的端口是123,使用的是UDP協(xié)議,因此NTP服務器的防火墻必須對外開放udp 123這個端口,另外,NTP服務通常需要一段時間進行時間同步,所以在NTP剛剛啟動的時候是不能正常提供時鐘服務,如果配置正確一般5min后即能正常工作。
客戶機的主要任務是連接到局域網(wǎng)內(nèi)的時間服務器,以保持客戶機的時鐘與服務器同步。分別以Debian Linux和Windows客戶機為例說明客戶機的配置。
1)Linux客戶機 在Linux客戶機上進行時間同步,只要執(zhí)行ntpdate命令即可,如ntpdate 192.168.0.1(192.168.0.1是局域網(wǎng) NTP服務器的IP地址),如果想定時進行時間校準,可以使用crond服務來定時執(zhí)行,例如:在/etc/crontab中加入308* * *root/usr/sbin/ntpdate 192.168.0.1一行,表示每天8∶30Linux客戶機會自動與NTP服務器進行時間校準。
2)Windows客戶機 在 Windows客戶機上進行時間同步:雙擊桌面任務欄上的時間,彈出 “日期和時間”屬性窗口,選擇Internet時間,在服務器中填入NTP服務器的IP地址或者域名,然后點擊立即更新,系統(tǒng)時間就會立即更新。如果想定時更新,把左上角的自動與Internet時間服務器同步選中,然后點擊右下角的應用即可。
NTP服務的配置及使用都非常簡單,并且占用的資料非常小,但它卻可以使網(wǎng)絡擁有一個非常精確的系統(tǒng)時間,不僅為管理員在不同的系統(tǒng)上處理、收集日志和管理提供了較為準確的信息,而且對于一些對時間精度要求較高的系統(tǒng),是非常出色的解決方案。
[1]朱嶺.基于NTP協(xié)議的局域網(wǎng)時間同步方案 [J].池州學院學報,2008,22(5):13-15.
[2]汪華,李波,楊遠恒.在網(wǎng)絡中搭建基于NTP服務的時間同步系統(tǒng) [J].貴州氣象,2010,34(5):24-26.
[3]宋妍,朱爽.基于NTP的網(wǎng)絡時間服務系統(tǒng)的研究 [J].計算機工程與應用,2003(36):147-149.
[4]黃沛芳.基于NTP的高精度時鐘同步系統(tǒng)實現(xiàn) [J].計算機技術與應用,2009(7):122-127.