夏建磊+王雅卓
摘 要 基于NTP協(xié)議的原理及應用,在Red Hat Linux操作系統(tǒng)中架設(shè)NTP服務(wù),介紹相關(guān)配置;在高校校園網(wǎng)中提供時間同步服務(wù),有效的解決了數(shù)字化校園系統(tǒng)中重要服務(wù)器時間不一致的問題。
關(guān)鍵詞 Linux;NTP;時間同步;數(shù)字化校園
中圖分類號:TP393 文獻標識碼:A 文章編號:1671-7597(2014)13-0116-02
隨著信息技術(shù)的發(fā)展,運行在網(wǎng)絡(luò)中的設(shè)備及服務(wù)器的數(shù)量和業(yè)務(wù)類型越來越多。計算機主機的時間主要是通過內(nèi)部BIOS芯片來計時,不同芯片之間存在差異而造成主機時間與標準時間不一致。
許多高校都具有較完善的校園網(wǎng)運行環(huán)境,也都建立了數(shù)字化校園應用系統(tǒng),主要包括教務(wù)管理系統(tǒng)、校園一卡通系統(tǒng)、財務(wù)管理系統(tǒng)等一系列子系統(tǒng),每個子系統(tǒng)中也都包含一系列的應用服務(wù)器;經(jīng)過系統(tǒng)的長期運行,每臺設(shè)備和主機上的時間都會和標準時間存在或多或少的差異;主機間時間不同步會引發(fā)許多問題,例如:一卡通系統(tǒng)圈存機時間異常,會引發(fā)學生繳費、消費記錄和實際時間的沖突;Oracle數(shù)據(jù)庫服務(wù)器時間異常,會引起雙機冗余異常等。針對我校的實際情況,在校園網(wǎng)中搭建一臺NTP時間同步服務(wù)器則顯得尤為重要,我們在Linux系統(tǒng)中搭建NTP服務(wù),為數(shù)字化校園系統(tǒng)的重要服務(wù)器提供時間服務(wù)。
1 NTP協(xié)議及工作原理
1)NTP協(xié)議簡介。網(wǎng)絡(luò)上的時間同步是通過NTP(Network Time Protocol)協(xié)議來實施的,它是一種同步網(wǎng)絡(luò)設(shè)備和服務(wù)器時鐘的動態(tài)、穩(wěn)定和容錯的協(xié)議。使用NTP的目的是對網(wǎng)絡(luò)內(nèi)具有時鐘的設(shè)備進行時間同步,使網(wǎng)絡(luò)內(nèi)所有設(shè)備的時間保持一致。運行NTP的服務(wù)器,既可以接受上層時間服務(wù)器的同步,又可以為客戶機提供時間同步服務(wù)。
2)NTP工作原理。校園網(wǎng)中的網(wǎng)絡(luò)設(shè)備和計算機可能會因為網(wǎng)絡(luò)或流量的問題,不能跟互聯(lián)網(wǎng)上的時間服務(wù)器進行通信而影響時間同步;可以在校園網(wǎng)中架設(shè)一臺NTP時間服務(wù)器,以客戶端方式獲取外部時間服務(wù)器的標準時間,再為校園網(wǎng)內(nèi)部的設(shè)備提供時間同步服務(wù)。
互聯(lián)網(wǎng)上提供的時間服務(wù)器屬于上層時間服務(wù)器,在架設(shè)NTP主機時,一般情況下選擇國內(nèi)的上層NTP來同步時間,如國家授時中心提供的NTP服務(wù)器。為避免某臺NTP服務(wù)器突然故障,一般會選擇多部上層NTP服務(wù)器,這樣其他主機仍然可以提供時間同步服務(wù)。
局域網(wǎng)中的NTP服務(wù)采用Client/Server(客戶機/服務(wù)器)工作模式,服務(wù)器安裝并啟動NTP服務(wù),Client向NTP Server發(fā)送調(diào)校時間的消息,NTP Server給Client送出當前的標準時間,Client收到標準時間后調(diào)整自己的時間達到時間同步。
2 Linux系統(tǒng)中NTP服務(wù)的實現(xiàn)
Linux操作系統(tǒng)具有開源、穩(wěn)定和安全的特點,深受客戶的認可;我們選擇Red Hat Enterprise Linux 5.6作為NTP服務(wù)器的系統(tǒng)平臺;在我校VMware虛擬化平臺中部署該操作系統(tǒng),在系統(tǒng)上配置NTP服務(wù)器,包含NTP服務(wù)的安裝和設(shè)置。
1)NTP服務(wù)的安裝。一般Linux發(fā)行版會自帶NTP軟件包,在系統(tǒng)終端中運行命令“# rpm -qa | grep ntp”,根據(jù)返回信息查看是否已安裝該軟件包;若沒有找到,則說明沒有安裝,從光盤中找到軟件包,通過命令“rpm –ivh ntp-4.2.2p1-9.el5_4.1”進行安裝。
2)與NTP及系統(tǒng)時間相關(guān)的文件和命令。/etc/ntp.conf(這個文件是NTP服務(wù)的主要配置文件);/bin/date(Linux系統(tǒng)中查詢和修改日期與時間命令);/sbin/hwclock(date命令調(diào)整時間后,需要使用hwclock才能將修改后的時間寫入BIOS);/usr/sbin/ntpd(NTP服務(wù)的守護進程文件,啟動之后才能提供NTP服務(wù));/usr/sbin/ntpdate(客戶端用來連接NTP服務(wù)器命令文件)。
3)設(shè)置ntp.conf文件。
①設(shè)定客戶端同步規(guī)則。
格式:restrict ip地址 mask子網(wǎng)掩碼 參數(shù);其中ip地址可以為default,指所有ip。
參數(shù)解釋(如果未設(shè)定參數(shù)表示對該IP或子網(wǎng)沒有任何
限制):
ignore:關(guān)閉所有的NTP聯(lián)機服務(wù),客戶端無法使用該服務(wù)器進行時間同步;nomodify:客戶端不能更改服務(wù)端的時間參數(shù),但是可以通過服務(wù)端進行網(wǎng)絡(luò)校時;notrust:客戶端除非通過認證,否則其來源將被視為不信任子網(wǎng);noquery:不提供客戶端的時間查詢。
我們設(shè)置規(guī)則為restrict default nomodify,允許所有客戶端通過該NTP服務(wù)器進行時間同步,但不允許客戶端更改服務(wù)器端的時間參數(shù)。
②設(shè)定上級時間服務(wù)器。
格式:Server IP地址或域名 [prefer]
IP地址或域名為指定的上級時間服務(wù)器,[prefer]表示主要以該上級服務(wù)器進行時間同步。設(shè)置上級時間服務(wù)器組(server 0.pool.ntp.org、server 1.pool.ntp.org、server 2.pool.ntp.org),每組服務(wù)器的域名下有十多臺標準時間服務(wù)器;使用“dig 0.pool.ntp.org”命令可查看組中的上級時間服務(wù)器。
③driftfile記錄時間差異。
設(shè)定方式:driftfile [可以被ntpd寫入的目錄與文件]
在driftfile參數(shù)后面的文件中記錄與上級時間服務(wù)器通信時所用的時間,driftfile后面需要使用完整的路徑文件名,不能是連接文件,并且文件的權(quán)限需要設(shè)定為ntpd守護進程且可以寫入,所記錄的數(shù)值單位為百萬分之一秒(ppm);我們不對該方式進行修改。endprint
④NTP的啟動與觀察。修改/etc/sysconfig/ntpd文件,“SYNC_HWCLOCK=yes”,使服務(wù)器系統(tǒng)時間和硬件時間保持一致。設(shè)置好ntp.conf后就可以啟動ntp服務(wù)器了,具體操作命令如下:#service ntpd start(啟動ntpd服務(wù));#service ntpd stop(停止ntpd服務(wù));#service ntpd restart(重新啟動ntpd服務(wù));#chkconfig ntpd on(設(shè)置ntpd服務(wù)隨操作系統(tǒng)啟動而自啟動);執(zhí)行“netstat -tlunp | grep ntp”可以查看ntpd服務(wù)是否正常啟動并提供服務(wù);啟動NTP后約在15分鐘內(nèi)才會和上層NTP服務(wù)器順利連接上。ntpd服務(wù)啟動后需要等幾分鐘,客戶機才能與其進行時間同步,否則會提示“no server suitable for synchronization found”錯誤。
需要指出的是在啟動ntpd服務(wù)之前,先手動執(zhí)行“ntpdate 0.pool.ntp.org”,從上層服務(wù)器更新一下時間服務(wù)器自身的時間,保證所提供時間的準確性,執(zhí)行該命令時需使ntpd服務(wù)器為停止狀態(tài),否則系統(tǒng)會提示“the NTP socket is in use”。
我們可以通過ntpstat命令列出NTP服務(wù)器是否跟上層服務(wù)器聯(lián)機通信;通過ntpq –p命令列出目前我們的NTP與相關(guān)的上層NTP的狀態(tài),是否順利的更新了自己的時間。
3 在數(shù)字化校園系統(tǒng)中的應用
1)在一卡通系統(tǒng)數(shù)據(jù)庫服務(wù)器中的應用。一卡通系統(tǒng)數(shù)據(jù)庫部署在Windows Server2003操作系統(tǒng)中,采用Oracle RAC方式部署,為保證Oracle雙機的正常運行,在兩臺服務(wù)器上分別做時間同步如下:
雙擊系統(tǒng)桌面任務(wù)欄右下角的時間,彈出“日期和時間屬性”窗口,選擇“Internet時間”選項卡,在服務(wù)器地址欄中填入NTP服務(wù)器的IP地址或域名,點擊“立即更新”,系統(tǒng)時間就會更新;選中“自動與Internet時間服務(wù)器同步”,則定時與服務(wù)器同步(默認一周同步一次);具有Windows操作系統(tǒng)的客戶機同步方法同上。
2)在數(shù)字化校園系統(tǒng)IDS中的應用。IDS(統(tǒng)一身份認證系統(tǒng))服務(wù)器部署在Red Hat Enterprise Linux 5操作系統(tǒng)中,按照雙機冗余的方式部署,在兩臺服務(wù)器上分別做時間同步:
在操作系統(tǒng)終端中以root用戶執(zhí)行ntpdate命令手動進行時間同步,如ntpdate 服務(wù)器的IP地址或域名;也可以定時進行時間校準,例如:在/etc/crontab中加入“30 1 * * * /usr/sbin/ntpdate 服務(wù)器IP地址或域名”一行,表示每天1點30分Linux客戶機會自動與NTP服務(wù)器進行時間校準;具有Linux操作系統(tǒng)的客戶機同步方法同上。
3)在VMware ESXi4.1時間配置中的應用。許多高校的數(shù)字化校園系統(tǒng)中采用VMware虛擬化平臺,以ESXi4.1為例簡單介紹NTP的設(shè)置如下:使用VMware vSphere Client連接vCenter,選中需要設(shè)置的主機,依次點擊“配置-時間配置-屬性”進入“時間配置”界面;點擊“選項”按鈕,在“常規(guī)”選項卡界面中,選擇“與主機一起啟動和停止”;在“NTP設(shè)置”選項卡中,添加NTP服務(wù)器的IP地址或域名,并選中“重啟NTP服務(wù)以應用更改”,并點擊“確定”來添加NTP服務(wù)器。
4 結(jié)束語
Linux下NTP服務(wù)的安裝和配置比較簡單,在局域網(wǎng)中占用的網(wǎng)絡(luò)資源也比較?。凰軌蛱峁┚_的系統(tǒng)時間,為客戶機提供時間同步服務(wù),減輕了系統(tǒng)維護人員的工作量;在校園網(wǎng)內(nèi)架設(shè)NTP時間服務(wù)器是使網(wǎng)內(nèi)設(shè)備和主機時間達到一致的比較有效、可行的方式。在我校數(shù)字化校園系統(tǒng)的重要應用中,提供時間同步服務(wù);保證一卡通系統(tǒng)數(shù)據(jù)庫Oracle RAC雙機的正常運行、學生繳費、消費記錄時間的準確性;VMware虛擬化平臺群集中主機和虛擬機的時間保持同步;隨著數(shù)字化校園應用系統(tǒng)的增加,NTP服務(wù)的應用范圍將更加寬廣。
參考文獻
[1]汪華,李波,楊遠恒.在網(wǎng)絡(luò)中搭建基于NTP服務(wù)的時間同步系統(tǒng)[J].貴州氣象,2010,34(5):24-26.
[2]黃沛芳.基于NTP的高精度時鐘同步系統(tǒng)實現(xiàn)[J].計算機技術(shù)與應用,2009(7):122-127.
[3]吳婷婷,陸靜.Debian環(huán)境下局域網(wǎng)時間同步系統(tǒng)的構(gòu)建[J].長江大學學報,2011(11).
作者簡介
夏建磊(1984-),男,河南漯河人,助理工程師,碩士,研究方向:計算機技術(shù)。
王雅卓(1985-),男,河南滎陽人,助理工程師,碩士,研究方向:計算機技術(shù)。endprint