目前通信網(wǎng)絡(luò)結(jié)構(gòu)越來(lái)越復(fù)雜,通信網(wǎng)絡(luò)使用的設(shè)備也越來(lái)越復(fù)雜,隨著網(wǎng)絡(luò)的大型化與復(fù)雜化,如何有效地進(jìn)行網(wǎng)絡(luò)管理日益成為人們普遍關(guān)注的問(wèn)題。ISO定義的網(wǎng)絡(luò)管理包含五個(gè)功能域:配置管理、故障管理、性能管理、安全管理和計(jì)費(fèi)管理,其中性能管理的目標(biāo)是優(yōu)化網(wǎng)絡(luò)性能,提高運(yùn)行質(zhì)量。性能管理是測(cè)試組成網(wǎng)絡(luò)各個(gè)單元性能的過(guò)程,它包括測(cè)試網(wǎng)絡(luò)連接和當(dāng)前網(wǎng)絡(luò)段利用率、識(shí)別可能發(fā)生擁塞域、杜絕高出錯(cuò)率和檢測(cè)網(wǎng)絡(luò)傳輸狀態(tài)等,幫助用戶解決當(dāng)前網(wǎng)絡(luò)存在的問(wèn)題。 目前典型的網(wǎng)絡(luò)管理標(biāo)準(zhǔn)主要有兩大體系:OSI的CMIS(Common Management Information Service,公共管理信息服務(wù))/CMIP(Common Management In-formation Protocol,公共管理信息協(xié)議)和IETF的SNMP(Simple Network Management Protocol,簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)。SNMP由于易于實(shí)現(xiàn)和廣泛的TCP/IP應(yīng)用基礎(chǔ)而獲得廠商的支持。而且,由于SNMP不斷完善,SNMP中的安全問(wèn)題也得到了一定程度的解決,使SNMP得到更快的發(fā)展。 1 SNMP網(wǎng)絡(luò)管理模型 SNMP網(wǎng)絡(luò)管理模型包括四個(gè)關(guān)鍵性部件:管理站、管理代理、管理信息庫(kù)和網(wǎng)絡(luò)管理協(xié)議,如圖1所示。 (1)管理站(Manager)是一個(gè)獨(dú)立的設(shè)備或者是一個(gè)共享網(wǎng)絡(luò)中的一員,為管理者和網(wǎng)絡(luò)管理系統(tǒng)提供接口。 (2)管理代理(Agent),一般廠家的網(wǎng)絡(luò)產(chǎn)品如路由器、交換機(jī)等在出廠時(shí)都已配置好相關(guān)的SNMP管理代理,對(duì)于不支持SNMP協(xié)議的設(shè)備,可以開(kāi)發(fā)委托代理(proxy agent)來(lái)支持SNMP協(xié)議。管理代理的功能是響應(yīng)從網(wǎng)管站發(fā)出的讀取請(qǐng)求(Get)和設(shè)置請(qǐng)求(Set),并且給網(wǎng)管站發(fā)送事件及告警信息(Trap)。 (3)管理信息庫(kù)(MIB)存放了該設(shè)備上被管對(duì)象資源的所有信息,每個(gè)被管對(duì)象有一個(gè)惟一對(duì)象的對(duì)象標(biāo)識(shí)符(OID)。 (4)SNMP網(wǎng)絡(luò)管理協(xié)議主要具有以下三個(gè)功能:取值(Get)使網(wǎng)管站能夠從代理處獲取相關(guān)對(duì)象的值;設(shè)置值(Set)使網(wǎng)管站能夠在代理上設(shè)置相關(guān)對(duì)象的值;告警信息(Trap)使代理能夠通知管理站、代理端(Agent)的管理信息庫(kù)MIB值的重大變化以及其他重要事件發(fā)出。 2 性能管理模塊的設(shè)計(jì) 2.1 性能管理模塊基本結(jié)構(gòu) 根據(jù)上述對(duì)SNMP網(wǎng)絡(luò)管理模型的討論,設(shè)計(jì)了一種性能管理模塊的基本結(jié)構(gòu),如圖2所示。該性能管理模塊主要包括性能數(shù)據(jù)采集、性能分析和數(shù)據(jù)管理存儲(chǔ)三個(gè)部分。其中,數(shù)據(jù)管理存儲(chǔ)主要是針對(duì)數(shù)據(jù)庫(kù)管理的具體技術(shù),這里主要討論性能數(shù)據(jù)采集和性能分析技術(shù)及其實(shí)現(xiàn)問(wèn)題。 2.2 性能數(shù)據(jù)采集 性能數(shù)據(jù)的采集方式主要有三種:循環(huán)定時(shí)模式、實(shí)時(shí)模式和事件驅(qū)動(dòng)模式。 循環(huán)定時(shí)模式 預(yù)先配置好定時(shí)時(shí)間間隔,由服務(wù)器端進(jìn)行采集,采集的數(shù)據(jù)存入數(shù)據(jù)庫(kù),也可以根據(jù)需要同時(shí)發(fā)往控制臺(tái),用于統(tǒng)計(jì)分析的性能參數(shù)主要采用該模式進(jìn)行數(shù)據(jù)采集。 實(shí)時(shí)模式 由用戶在控制臺(tái)進(jìn)行操作,用于采集被管設(shè)備的當(dāng)前性能數(shù)據(jù),采集的數(shù)據(jù)馬上送回用戶界面,控制臺(tái)程序在判斷其是否超過(guò)閾值后,將數(shù)據(jù)以某種形式實(shí)時(shí)呈現(xiàn)給用戶,本類數(shù)據(jù)主要用于監(jiān)測(cè)當(dāng)前性能,一般不存儲(chǔ)到數(shù)據(jù)庫(kù),不作為歷史數(shù)據(jù)進(jìn)行查詢。事件驅(qū)動(dòng)模式 通過(guò)對(duì)關(guān)鍵事件的預(yù)定義,Agent在這些事件發(fā)生時(shí),向管理者發(fā)送Trap報(bào)文。事件驅(qū)動(dòng)對(duì)監(jiān)視狀態(tài)變化不很頻繁的對(duì)象時(shí)用處很大,并且可以在網(wǎng)絡(luò)設(shè)備發(fā)生異常情況時(shí),及時(shí)向管理者發(fā)出報(bào)警信息。 2.3 性能分析 性能分析一般分為歷史性能分析和實(shí)時(shí)性能分析。歷史性能分析包括對(duì)歷史信息(如:性能日志及性能報(bào)告等)的查詢、檢索,從數(shù)據(jù)庫(kù)提取性能歷史數(shù)據(jù),進(jìn)行分析、計(jì)算性能指標(biāo),再經(jīng)過(guò)統(tǒng)計(jì)和整理,以直觀的圖形顯示和表數(shù)據(jù)來(lái)反映性能分析的結(jié)果,并生成性能日志,管理員可以設(shè)定時(shí)間范圍,選擇該時(shí)間段內(nèi)設(shè)備的某種屬性信息進(jìn)行統(tǒng)計(jì),還可以選用各種圖形顯示方式,直觀地查看性能狀態(tài)。 實(shí)時(shí)性能分析 提供實(shí)時(shí)數(shù)據(jù)采集、分析和可視化的工具(如MIB瀏覽器),可以對(duì)流量、負(fù)載、丟包、設(shè)備溫度、內(nèi)存利用率、網(wǎng)絡(luò)延遲等網(wǎng)絡(luò)設(shè)備和線路的性能指標(biāo)進(jìn)行實(shí)時(shí)監(jiān)控,并可設(shè)置數(shù)據(jù)采集的時(shí)間間隔。 3 性能管理模塊的編程實(shí)現(xiàn) 在性能管理模塊的開(kāi)發(fā)過(guò)程中,可利用SNMP++類庫(kù)來(lái)實(shí)現(xiàn)數(shù)據(jù)采集模塊的開(kāi)發(fā),SNMP++是由HP公司提供的一個(gè)開(kāi)放的軟件包,它能夠較好地實(shí)現(xiàn)SNMP協(xié)議,利用它的成員函數(shù)get(),getnext(),get-bulk(),set(),trap()可以編程實(shí)現(xiàn)對(duì)設(shè)備和主機(jī)性能數(shù)據(jù)的采集。SNMP++提供跨平臺(tái)可移植的API。任何使用SNMP++編寫(xiě)的網(wǎng)絡(luò)管理應(yīng)用程序,不需要做任何改變就可以移植到其它平臺(tái)。SNMP++在Target類中提供了超時(shí)和重傳機(jī)制,直接設(shè)置參數(shù)就可以實(shí)現(xiàn)超時(shí)和重傳功能。同時(shí)SNMP++可以運(yùn)行在各種不同協(xié)議之上,它采用面向?qū)ο蟮脑O(shè)計(jì)方法,把WinSNMP的API函數(shù)封裝成一個(gè)個(gè)相關(guān)的類,大大簡(jiǎn)化了SNMP網(wǎng)絡(luò)管理軟件開(kāi)發(fā)的復(fù)雜性和開(kāi)發(fā)難度。以下給出網(wǎng)絡(luò)性能管理的部分關(guān)鍵對(duì)象(表1)和性能參數(shù)的計(jì)算公式。大多MIB組都提供性能數(shù)據(jù)變量。 端口狀態(tài)ifOperStatus有三種取值,1(up)代表當(dāng)前接口正處于使用狀態(tài);2(down)代表當(dāng)前接口處于關(guān)閉狀態(tài);3(test)代表接口正處于測(cè)試狀態(tài)。 端口當(dāng)前狀態(tài)保持時(shí)間=sysUpTime—if-LastChange 對(duì)于一段時(shí)間丁內(nèi),MIB變量值的變化:△(MIB-variable)=MIB-Value(t1)-MIB-Value(t0) 接口收到的包的總數(shù):TOTAL_INPUT_PACK-ETS=△ifInUcastPkts+△ifInNUcastPkts 發(fā)出的包的總數(shù):TOTAL_OUTPUT_PACK-ETS=△ifOutUcastPkts+△ifOutNUcastPkts 輸入丟包率=△ifInDiscards/(△ifInUcastPkts+△ifInNUcastPkts)*100% 輸出丟包率=△ifOutDiscards/(△ifInUcastPkts+△ifInNUcastPkts)*100% 輸入差錯(cuò)率=△ifInErrors/(△ifInUcastPkts+△ifInNUcastPkts)*100% 輸出差錯(cuò)率=△ifOutErrors/(△ifOutUcastPkts +△ifOutNUcastPkts)*100% 接口輸入流量=ifInOctets*8/sysUpTime 接口輸出流量=ifOutOctets*8/sysUpTime 接口利用率=((△ifInOctes+△ifOUtOetets)*8)/(T*ifSpeed)*100% 同樣可以計(jì)算其他參數(shù),如: IP吞吐量=(△ipInRecieves+△ipOutRequests+△ipForwDatagrams)/T UDP吞吐量=(△udpInDatagrams+△udpNoPorts+△udpInErrors+△udpOutDatagrams)/T 下面給出了SNMP++編程的關(guān)鍵步驟(標(biāo)“*”): 4 結(jié) 語(yǔ) 基于目前廣泛應(yīng)用的SNMP設(shè)計(jì)了網(wǎng)絡(luò)管理系統(tǒng)中的性能管理模塊,采用HP公司提供的SNMP++類庫(kù)和編程工具Visual C++進(jìn)行了具體實(shí)現(xiàn),該工具可以作為復(fù)雜通信網(wǎng)絡(luò)管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的參考。隨著網(wǎng)絡(luò)技術(shù)的進(jìn)一步發(fā)展,開(kāi)放、異構(gòu)的復(fù)雜網(wǎng)絡(luò)管理系統(tǒng)將成為進(jìn)一步研究的重點(diǎn)。 |