前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的snmp協(xié)議主題范文,僅供參考,歡迎閱讀并收藏。
關(guān)鍵詞:snmp;網(wǎng)絡(luò)管理
中圖分類號:TP393.02 文獻標識碼:A文章編號:1007-9599 (2011) 18-0000-02
Topology Improved Algorithm Study on SNMP
Xing Hai
(Shanghai Jinjiang Inn Co.,Ltd.,Shanghai201102,China)
Abstract:SNMP topology discovery algorithm is an algorithm for network topology,popular for its ease of use of the original,this article focuses on the shortcomings with the original algorithm proposed improvement ideas.
Keywords:SNMP;Network management
一、SNMP拓撲發(fā)現(xiàn)技術(shù)簡介
SNMP(Simple Network Management Protocol)簡單網(wǎng)絡(luò)管理協(xié)議是一種應用層協(xié)議,由三個元素組成:
(一)SNMP管理者:運行網(wǎng)絡(luò)管理進程的主機,發(fā)送管理者操作的指令給并接收來自的響應,負責網(wǎng)絡(luò)的全部監(jiān)控和控制工作。
(二)SNMP者:駐扎在被管理設(shè)備中,它將各種與設(shè)備相關(guān)的信息實時保存在設(shè)備的MIB中,通過原語與管理者進行通信。
(三)管理信息庫MIB:用來標識被管理資源,SNMP通過查訊MIB中相應對象的值,實現(xiàn)網(wǎng)絡(luò)設(shè)備狀態(tài)監(jiān)控。
SNMP定義了GetRequest,GetNextRequest,SetRequest,GetResponse和Trap5種通信原語實現(xiàn)信息交互。
二、SNMP拓撲原算法
MIB庫中的IP路由表(ipRouteTable)是對路由表的抽象,原算法就是通過查找路由表中保存的路由信息來拓撲的。算法從網(wǎng)絡(luò)管理者的缺省路由開始,采用廣度或深度優(yōu)先遍歷無向圖的算法對整個網(wǎng)絡(luò)進行遍歷,逐級找出所有的路由器和子網(wǎng)。
原算法過程簡單,系統(tǒng)開銷小,存在幾類問題:
(一)路由器多址問題。原SNMP算法把每個網(wǎng)關(guān)地址都作為獨立的路由器處理,現(xiàn)實網(wǎng)絡(luò)中一個路由器是配有多個端口地址會造成拓撲結(jié)果偏差。
實際網(wǎng)絡(luò):
探測出的網(wǎng)絡(luò):
(二)TimeOut問題。有些網(wǎng)絡(luò)出于私密性考慮,會禁止路由器對TraceRoute包的探測報文響應,此時返回“TimeOut”超時標識,造成拓撲結(jié)果偏差。
實際網(wǎng)絡(luò):
探測出的網(wǎng)絡(luò):
(三)算法效率問題。為獲得準確的網(wǎng)絡(luò)結(jié)構(gòu),拓撲發(fā)現(xiàn)算法需要對路由表中的IP地址進行逐一探測。要提高算法執(zhí)行效率,需要進行路由表冗余過濾。對由表中ipRouteDest的值為255.255.255.255,127.0.0.0的;ipRouteNextHop的值為環(huán)回地址的都要進行過濾。
(四)路由器和三層交換機的區(qū)分問題。有些三層交換機會啟路由功能,若在拓撲時不需要區(qū)分設(shè)備類型會造成拓撲結(jié)果偏差。
三、SNMP改進算法
結(jié)合以上問題,有一種改進算法,思路如下:
(一)定義一個vRoute的二叉樹,存放路由器信息。定義一個subnet數(shù)據(jù)結(jié)構(gòu),存放子網(wǎng)信息。定義一個cRoute數(shù)據(jù)結(jié)構(gòu),存放和當前網(wǎng)絡(luò)連接的網(wǎng)絡(luò)信息。
(二)將當前機器的默認網(wǎng)關(guān)作為種子節(jié)點初始化,將IP地址轉(zhuǎn)化為字符串后插入到二叉樹中。(例如:IP地址為10.0.1.100,轉(zhuǎn)換為1001100)
(三)當前路由器的所有端口地址寫入到二叉樹中。
(四)訪問當前路由器中的路由表,得到每一項ipRouteNextHop和ipRouteType,字符串轉(zhuǎn)化后不重復的插入到二叉樹。遇到ipRouteDest指向自己,ipRouteNextHop的值為環(huán)回地址,ipRouteType的值不是3或4的,先過濾掉。
(五)如果ipRouteNextHop代表的路由器不在二叉樹中,且ipRouteType值為3,說明目標子網(wǎng)和路由器直連,此時直接啟動子網(wǎng)發(fā)現(xiàn)線程。
(六)如果ipRouteNextHop代表的路由器不在二叉樹中,且ipRouteType值為4,此時將當前路由器信息和ipRouteNextHop的路由器信息加入到cRoute中,啟動路由器發(fā)現(xiàn)線程。
(七)循環(huán)以上步驟,直到所有路由器和子網(wǎng)都被遍歷。
(八)為提高效率,以上拓撲采用多線程并行方式。
四、展望
由于每種拓撲方案都有缺陷,因此探測盲點在日常的網(wǎng)絡(luò)管理中難免產(chǎn)生。要減少盲點就要綜合使用多種拓撲方式,讓各種拓撲方法互補遺缺。在實際過程中將拓撲效率高的方法優(yōu)先使用也能有效的縮短拓撲探測時間、提高拓撲探測效率。
參考文獻:
[1]尤瀾濤,朱巧明,李培峰.一種快速網(wǎng)絡(luò)拓撲發(fā)現(xiàn)算法的設(shè)計與實現(xiàn)[J].2007,9
[2]周俊生.一個IP網(wǎng)絡(luò)拓撲自動發(fā)現(xiàn)系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程,2002,Vol12.
[3]潘星辰.基于SNMP網(wǎng)絡(luò)拓撲發(fā)現(xiàn)算法的研究與改進[D][碩士學位論文].大連:大連海事大學,2007
[4]林之光.基于SNMP的網(wǎng)絡(luò)拓撲發(fā)現(xiàn)算法的研究與實現(xiàn)[D][碩士學位論文].大連理工大學,2008
【關(guān)鍵詞】SNMP協(xié)議;廣播電視中心機房;實時監(jiān)控;運用
一、廣播電視中心機房管理現(xiàn)狀
作為黨和政府的宣傳喉舌職能,有線電視的安全播出顯得尤其重要,而其前端中心機房是有線電視傳輸系統(tǒng)中的核心的核心,它是整個傳輸網(wǎng)的心臟。中心機房有諸多設(shè)備、設(shè)施,一方面它要接收、處理和分配由上級傳輸網(wǎng)傳輸來的各種電視信號,另一方面還要加載本級自辦電視節(jié)目的信號。因此,前端機房器材、設(shè)備的安全、技術(shù)指標安全、用電安全、各類配套設(shè)施安全以及故障的及時發(fā)現(xiàn)和處理,直接影響著外部網(wǎng)絡(luò)信號,直接影響到千家萬戶收看電視。
二、SNMP網(wǎng)絡(luò)管理協(xié)議
SNMP是英文simple network management protocol縮寫,它的定義是計算機網(wǎng)絡(luò)管理系統(tǒng)中的重要組成部分,規(guī)定網(wǎng)絡(luò)管理器與被管之間通信的標準。SNMP是一種狀態(tài),比如在中心機房有些設(shè)備有問題了,可以通過程序監(jiān)測到后,發(fā)短信給管理者報警,并生成運行日志等。SNMP網(wǎng)絡(luò)管理系統(tǒng)管理辦法是將網(wǎng)絡(luò)中的各個設(shè)備分成兩大類:網(wǎng)絡(luò)管理工作站和網(wǎng)絡(luò)各類元素。網(wǎng)絡(luò)管理工作站它是一臺服務(wù)器,主要運行網(wǎng)絡(luò)管理應用軟件,其主要職能是監(jiān)控和管理網(wǎng)絡(luò)元素,它是整個監(jiān)控系統(tǒng)的核心;網(wǎng)絡(luò)元素是指存在在網(wǎng)絡(luò)中的龐大器材、設(shè)備集合,如光接收機、光發(fā)射機、混合器、調(diào)制解調(diào)器、UPS電源、放大器、電視信號的監(jiān)視設(shè)備以及降溫空調(diào)等。作為SNMP網(wǎng)絡(luò)管理協(xié)議,任何一個網(wǎng)絡(luò)元素運行一個SNMP(Agent)進程,網(wǎng)絡(luò)管理工作站及服務(wù)器就作出相應管理響應,也就是說可以通過SNMP管理工具可以收集設(shè)備數(shù)據(jù)信息,管理者可以獲取設(shè)備的特性、數(shù)據(jù)流量、通信超載情況和錯誤、預警等,還可以根據(jù)實際情況操作端口。管理工作站和被管理網(wǎng)絡(luò)元素之間通信主要以GET、SET、TRAP為操作,正常情況下,管理工作站會通過主動通過GET操作,監(jiān)控被管節(jié)點的工作狀態(tài)是否正常。但是SNMP管理協(xié)議是一閉環(huán)操作系統(tǒng),在管理工作站主動監(jiān)控的同時,在被管節(jié)點MB上也會設(shè)制一個工作異常的工作閥值,當網(wǎng)絡(luò)元素的工作閥值大于預設(shè)值時,網(wǎng)絡(luò)元素就會運行TRAP操作,向管理工作站發(fā)出異常報告,管理工作站收到報告后,可以通GET操作,查詢異常異常節(jié)點或相信節(jié)點,并對其及時判斷來獲取更多的異常信息,現(xiàn)代WBM技術(shù)是基于Web的SNMP網(wǎng)絡(luò)管理模型,它在分布性,人性化的用戶界面,層次性強等方面存大強大的優(yōu)勢,廣受用戶青睞。
三、SNMP在廣播電視中心機房運用的方案
采用WBM技術(shù),可以有效的監(jiān)控管理到目前廣播電視中心機房諸多設(shè)備運行情況。
(1)設(shè)計軟件。開發(fā)軟件Visual c++、Borland delphi7、
JAVA都可以實現(xiàn)基于SNMP的網(wǎng)絡(luò)編程,后臺數(shù)據(jù)庫可用Miscrkskft SQL Server2000就可滿足所開發(fā)系統(tǒng)對數(shù)據(jù)的存儲、管理和檢索等功能。
(2)總體思想.我們可以通過對中心機房設(shè)備以及對SNMP協(xié)議的研究,設(shè)計和構(gòu)建了C/S架構(gòu)的三層網(wǎng)絡(luò)性能監(jiān)測系統(tǒng)結(jié)構(gòu)模型,通過SNMP協(xié)議實現(xiàn)對機房的監(jiān)控。監(jiān)控的整個網(wǎng)絡(luò)可分為三個層次,包括數(shù)據(jù)采集層、數(shù)據(jù)處理層和數(shù)據(jù)顯示層。數(shù)據(jù)采集層包含元素數(shù)據(jù)采集模塊和性能數(shù)據(jù)庫,一般的可管理網(wǎng)絡(luò)設(shè)備都支持SNMP協(xié)議。我們可以安裝網(wǎng)絡(luò)管理系統(tǒng)統(tǒng)一管理所有的網(wǎng)絡(luò)設(shè)備,這也是網(wǎng)絡(luò)大型管理的基本方法之一。數(shù)據(jù)采集模塊將是機房監(jiān)控的第一環(huán)節(jié),是程序運行最原始的基礎(chǔ),數(shù)據(jù)的準確性和及時性將直接影響到程序的運行。在這里數(shù)據(jù)的采集都運用多線采集,也就是允許執(zhí)行多個任務(wù),它將為數(shù)據(jù)的及時更新提供強有力的保證。數(shù)據(jù)采集層叫基礎(chǔ)的MIB,它可以是以數(shù)據(jù)庫和文本的方式存在。第二層是數(shù)據(jù)分析層,主要有數(shù)據(jù)處理模塊,這一層主要將采集的數(shù)據(jù)利用基本的公式計算出實時和歷史數(shù)據(jù)性能指標值,所計算的數(shù)據(jù)主要反映接口利用率、丟失率、錯誤率等,其中接口利用率反映各種通信通道的利用情況,利用率高說明通信通道利用的充分,但是過高的利用率預示信道成為潛在的網(wǎng)絡(luò)瓶頸,可以通過升級的辦法加以解決。第三層是數(shù)據(jù)顯示層,主要有數(shù)據(jù)顯示模塊,閥值設(shè)定和報警模塊。數(shù)據(jù)顯示模塊含實時顯示子模塊和歷史顯示子模塊,實時顯示模塊可以用即點即現(xiàn),在網(wǎng)絡(luò)的拓撲圖顯示出來,歷史顯示模塊是按條件查詢的方式進行,它可以查到任何時間網(wǎng)絡(luò)的運行情況,這一層還有重要的任務(wù)就是設(shè)定合理的閥值,閥值一旦被設(shè)定,當網(wǎng)絡(luò)運行性能達到這個值時,系統(tǒng)自動會向管理使用者報告。
四、結(jié)語
SNMP是目前應用最為廣泛的網(wǎng)絡(luò)管理協(xié)議,本文分析了SNMP在廣電系統(tǒng)的運用,通過SNMP管理協(xié)議可以實現(xiàn)了對機房的實時監(jiān)控,此方案的運用:一方面它能為機房的設(shè)備、器材運行異常及時反映出來,還可對故障的快速診斷提供了依據(jù),成為可靠信息的來源地;另一方面減少了機房管理人員的負擔,實現(xiàn)了對機房智能化的實時監(jiān)控。
參 考 文 獻
簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)是目前TCP/IP網(wǎng)絡(luò)中應用最為廣泛的網(wǎng)絡(luò)管理協(xié)議。目前SNMP協(xié)議主要包括三個版本:SNMP v1、SNMP VZ以及最新的SNMP v3。SNMP v3采用了新的SNMP擴展框架,解決了SNMP協(xié)議以前版本在安全性和管理方面表現(xiàn)不理想的問題。支持SNMP v3是網(wǎng)絡(luò)設(shè)備的趨勢。網(wǎng)絡(luò)設(shè)備通過平臺處理SNMP協(xié)議,設(shè)計一種支持SNMPV3的平臺,對于路由器、交換機等網(wǎng)絡(luò)設(shè)備具有重要意義。
平臺的結(jié)構(gòu)和SNMP V3處理機制
平臺的結(jié)構(gòu)
基于SNMP的管理體系架構(gòu)中,存在著SNMP管理實體(系統(tǒng)網(wǎng)管)和SNMP實體(被管網(wǎng)元)兩種基本元素。管理實體和實體按系統(tǒng)功能可進一步細分為SNMP引擎和SNMP應用,見圖1的SNMP管理體系架構(gòu)。
SNMP引擎主要實現(xiàn)SNMP的協(xié)議相關(guān)的處理,包括SNMP消息的收發(fā),SNMP消息的解析,SNMP的PDU處理等工作。在一個管理域的范圍內(nèi),一個SNMP引擎snmpEnginelD作為唯一標識。SNMP引擎中,針對V1、V2、V3版SNMP消息,提供三種消息處理模型,當SNMP消息進入SNMP引擎后,根據(jù)SNMP消息的版本號,將SNMP消息分派給不同的消息處理模型處理。
SNMP應用主要實現(xiàn)不同的管理功能(如配置,性能,告警管理)。在實體,主要存在著命令應答器(用于對SNMP引擎接受到的SNMP請求,產(chǎn)生SNMP應答),通知生成器(用于實體主動產(chǎn)生的TRAP,通知的生成)兩種應用。
SNMP V3消息處理機制
SNMP V3消息中加入了安全級別、安全模型、安全參數(shù)、訪問OID的上下文名和訪問OID的contextEngineID等參數(shù)。在SNMP引擎的V3消息處理模型的消息處理過程中,需要引入安全子系統(tǒng),用于清除SNMP消息被篡改,消息源偽裝,SNMP消息隱私暴露,SNMP消息過肘等問題:需要加入訪問控制子系統(tǒng),防止對未授權(quán)的OID進行非法操作。
sNMp引擎在接收到傳入的SNMP v3消息后,先通過安全子系統(tǒng)USM模塊的處理,將SNMP消息被解析成SNMP PDU;然后SNMP PDU經(jīng)過訪問控制子系統(tǒng)的VACM模塊和命令應答器,經(jīng)過處理生成應答PDU,然后交給安全子系統(tǒng)USM模塊產(chǎn)生SNMP V3應答消息。對于通知生成器,在原始通知提交到SNMP引擎后,先經(jīng)過訪問控制子系統(tǒng)VACM模塊的處理,通過后再交給安全子系統(tǒng)USM模塊,加工成SNMP V3消息,最后由SNMP引擎發(fā)送出去。
在SNMP引擎中,USMS模塊和VACM模塊運行之前,需要在本地配置數(shù)據(jù)庫(LCD)中配置相關(guān)參數(shù)。管理實體與實體的USM配置需要保持一致,為了實現(xiàn)數(shù)據(jù)的同步,實體提供訪問USM,VACM的LCD的SNMP訪問接口,以實現(xiàn)對USM、VACM的遠程配置。
關(guān)鍵技術(shù)實現(xiàn)方法
USM認證與私密化流程:
USM是SNMP V3框架中安全子系統(tǒng)中的一種基于用戶的安全模型,來解決SNMP消息在網(wǎng)絡(luò)傳輸過程中可能遭受的安全威脅。USM對應三種安全級別,分別是:無認證無私密化,認證無私密化和認證且私密化。USM認證與私密化過程如下:
1 管理實體選擇的安全級別為“認證且私密”,安全模型為 “USM”,管理實體需要在LCD中選擇一個與本安全級別匹配的用戶名。
2 管理實體USM模塊根據(jù)LCD中該用戶的私密化算法,對SNMP消息中的范圍PDU部分進行加密,并將私密化參數(shù)填入到SNMP消息中。
3 管理實體USM模塊根據(jù)LCD中該用戶的認證算法,認證密鑰,計算出待認證的SNMP消息的認證參數(shù),將該認證參數(shù)填充到SNMP V3消息中。
4 實體的SNMP引擎接收到管理實體的SNMP v3消息后,解析出消息中的安全級別、安全模型、用戶名、認證參數(shù)、私密化參數(shù),交付給USM模塊
5 實體的USM模塊根據(jù)用戶名查詢LCD,得到該用戶的認證算法、認證密鑰,計算出待認證的SNMP消息的認證參數(shù),同原SNMP消息所攜帶的認證參數(shù)相比較,如相同則通過認證,否則認證失敗。
6 實體的USM模塊根據(jù)SNMP消息中的私密化參數(shù),以及LCD中用戶的私密化算法,對PDU進行解密。
7 USM模塊將通過認證,并解密的SNMP消息,提供給SNMP引擎進一步處理。
8 實體的SNMP引擎生成了SNMP消息,準備發(fā)送給管理實體之前的“認證且私密”過程,與上述過程類似。
對于“認證無私密”的處理過程,則可省略上述過程的2、6兩步。
VACM的驗證流程
在通常的網(wǎng)管實踐中,常常遇到一系列安全問題,如非法的管理者,對某OID進行操作:合法的管理者,對某未授權(quán)的OID進行操作等等。這些問題實際上是宴體中的SNMP應用(包括命令應答器,通知生成器)在處理SNMP消息中的PDU時需要控制的,VACM(基于視圖的訪問控制模型)是這樣一種訪問控制方案,通過在實體的VACM MIB定義的用戶所能訪問的MIB視圖的對應關(guān)系,來決定一個SNMP協(xié)議操作,是否能夠訪問一個MIB對象。VACM LCD的表格如表1所示。
除此之外,IPV4和IPV6的兼容設(shè)計、SNMP并發(fā)處理機制等也非常重要。
【 關(guān)鍵詞 】 網(wǎng)絡(luò)管理軟件;簡單網(wǎng)絡(luò)管理協(xié)議;開發(fā)包;SNMP++
【 中圖分類號 】 TP393 【 文獻標識碼 】 A
1 引言
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)規(guī)模的擴大,過去單純依賴人工管理網(wǎng)絡(luò)已經(jīng)變得不現(xiàn)實,需要專業(yè)的網(wǎng)絡(luò)管理軟件輔之人工分析才能完成網(wǎng)絡(luò)管理。網(wǎng)絡(luò)管理軟件功能通常包括配置管理、故障管理、性能管理、安全管理、計費管理。這些網(wǎng)絡(luò)功能的實現(xiàn)目前主要借助于簡單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol ,SNMP)。SNMP是管理IP網(wǎng)絡(luò)中設(shè)備的標準協(xié)議?;ヂ?lián)網(wǎng)上的許多設(shè)備都支持SNMP,包括交換機、路由器、工作站、服務(wù)器、打印機等。
2 SNMP 和網(wǎng)絡(luò)管理
2.1 SNMP
現(xiàn)今復雜的網(wǎng)絡(luò)離不開路由器、交換機、服務(wù)器等網(wǎng)絡(luò)基礎(chǔ)設(shè)施,對這些基礎(chǔ)設(shè)施進行管理是一件令人生畏的事情,因為管理人員不但要保證這些設(shè)備正常工作,同時還需要對這些設(shè)備進行性能優(yōu)化等工作。1998年,在這種網(wǎng)絡(luò)管理需求背景下提出了SNMP。SNMP 已經(jīng)成為網(wǎng)絡(luò)管理的事實標準。
2.2 管理者和
在SNMP體系結(jié)構(gòu)中,有兩種實體:管理者(Managers)和(Agents)。管理者和都是軟件系統(tǒng)。管理者通常運行在服務(wù)器系統(tǒng)中,運行在網(wǎng)絡(luò)設(shè)備上。管理者負責向發(fā)起輪詢請求,同時接受從發(fā)送過來的trap信息。負責跟蹤設(shè)備上的各種操作情況,根據(jù)管理者的請求信息訪問設(shè)備中相應對象的值或設(shè)置設(shè)備中相應對象的值,然后把結(jié)果返回管理者;或者發(fā)現(xiàn)了設(shè)備中預定義的trap事件發(fā)生,則主動向管理者發(fā)送trap信息。
2.3 SMI和MIBs
管理信息結(jié)構(gòu)(Structure of Management Information, SMI)負責定義管理對象以及它們的行為。每個擁有它負責跟蹤的網(wǎng)絡(luò)管理對象列表。例如,路由器接口工作狀態(tài)就是一個網(wǎng)絡(luò)管理對象。維護的網(wǎng)絡(luò)管理對象列表定義了管理者能判斷網(wǎng)絡(luò)設(shè)備網(wǎng)絡(luò)情況的管理信息。
管理信息庫( Management Information Base , MIB)可以認為是負責跟蹤的管理對象信息數(shù)據(jù)庫。任何能被管理者訪問的統(tǒng)計信息或者狀態(tài)信息都在MIB中定義。
SMI 提供了定義MIB的方法,而MIB是對象的定義??梢詫崿F(xiàn)許多MIBs,但所有都必須實現(xiàn)的MIB稱為MIB-II。MIB-II的主要目標是提供TCP/IP網(wǎng)絡(luò)管理信息。
3 SNMP 應用編程接口和SNMP++
3.1 SNMP 應用編程接口
目前存在多種簡單網(wǎng)絡(luò)管理協(xié)議應用編程接口,基于這些編程接口可以方便地進行網(wǎng)絡(luò)管理應用編程。這些編程接口中大部分需要程序員非常熟悉SNMP協(xié)議的內(nèi)部工作原理以及SNMP的資源管理,同時,大部分編程接口依賴于特定的平臺,產(chǎn)生的SNMP代碼特定于操作系統(tǒng)或者網(wǎng)絡(luò)操作系統(tǒng)平臺,難于移植。
3.2 SNMP++
SNMP++將面向?qū)ο缶幊痰膬?yōu)點融入了網(wǎng)絡(luò)管理編程中,它是基于C++的SNMP協(xié)議應用程序編程接口。
SNMP++提供了SNMP語法類,包括Object Identification (Oid)類、OctetStr類、TimeTicks類、Counter32 類、Gauge32 類、Counter64類、Address 類、Variable Binding類、Pdu 類、SnmpMessage 類、Target 類、Snmp類,這些類的詳細說明可以參見相關(guān)網(wǎng)站信息,在此不再贅述了。
4 SNMP++ 編程
4.1 下載SNMP++開發(fā)包
開發(fā)者可以從網(wǎng)站http://上下載SNMP++開發(fā)包。目前,最新的版本是SNMP++v2.8 和SNMP++v3.2。SNMP++v2.8是一個實現(xiàn)SNMPv1/V2c協(xié)議操作的C++ 編程接口。SNMP++v3.2在SNMP++v2.8基礎(chǔ)上進行了擴展,增加了對SNMPv3的支持,同時修復了一些bug。
開發(fā)包包括目錄:consoleExamples目錄、include目錄、src目錄等。開發(fā)者可以研究consoleExamples目錄下的相關(guān)例子,從而掌握如何實現(xiàn)網(wǎng)絡(luò)管理軟件的開發(fā)。include 目錄和src目錄下的文件是一些開發(fā)資源,如果開發(fā)者直接使用這些頭文件和源文件,將會使得網(wǎng)絡(luò)管理軟件文件龐大,因此,通常情況下,開發(fā)者都會把這些文件編譯為一個靜態(tài)庫加以使用。
4.2 創(chuàng)建靜態(tài)鏈接庫
以Visual C++6.0開發(fā)環(huán)境為例,首先開發(fā)者創(chuàng)建一個Win32 靜態(tài)鏈接庫工程,然后將所有的SNMP++開發(fā)包中的源文件和頭文件加入到工程的相應源文件和頭文件目錄中,設(shè)置Project 菜單下的子菜單Setting的 C/C++屬性頁,選擇Code Generation和Debug Multithreaded,最后,設(shè)置Build 菜單的子菜單Build 則生成一個靜態(tài)鏈接庫。開發(fā)者可以直接使用該靜態(tài)鏈接庫完成網(wǎng)絡(luò)管理軟件的相關(guān)開發(fā)工作。
4.3 使用靜態(tài)鏈接庫
同樣,創(chuàng)建一個Win32 平臺應用程序,在項目中增加SNMP++ 靜態(tài)鏈接庫 ws2_32.lib,同時在項目源文件中增加靜態(tài)鏈接庫的相應頭文件。
基于SNMP++網(wǎng)絡(luò)管理軟件程序基本流程:
首先,開啟Snmp類的socket。然后,準備好SNMP通信基本參數(shù),如設(shè)置SNMP協(xié)議版本、通信端口、共同體名等,如果沒有對這些基本參數(shù)進行設(shè)置,程序采用默認參數(shù):SNMP協(xié)議版本為1,端口為161,共同體名為public。接著,根據(jù)網(wǎng)絡(luò)管理目標,設(shè)置IP地址,要獲取或設(shè)置的網(wǎng)絡(luò)管理信息。創(chuàng)建一個SNMP會話。如果會話創(chuàng)建成功,開始snmp 相關(guān)操作,如get操作、set操作、get_next操作。如果操作成功,則從變量綁定中獲取相應的網(wǎng)絡(luò)管理信息。最后,關(guān)閉Snmp socket,釋放資源。
5 編程實踐
假設(shè)路由器r2621的接口f0/0的IP地址為172.168.0.1,sysContact 網(wǎng)絡(luò)管理對象設(shè)置為字符串China,共同體名設(shè)置為字符串public。下面給出C++編程代碼:
#include "stdafx.h"
#include "snmp_pp/snmp_pp.h"
#include
#define SYSCONTACT "1.3.6.1.2.1.1.4.0"
void set_system_location()
{int status;
CTarget ctarget( (IpAddress) "172.168.0.1");
Vb vb( SYSCONTACT);
Pdu pdu;
Snmp snmp( status);
if ( status != SNMP_CLASS_SUCCESS) {cout
vb.set_value("China");
pdu += vb;
status = snmp.set( pdu, ctarget);
cout
void main()
{Snmp::socket_startup();
snmp_version version = version1;
set_system_location();
Snmp::socket_cleanup();}
網(wǎng)絡(luò)管理軟件不同于一般的應用軟件,需要對網(wǎng)絡(luò)管理軟件所在主機和網(wǎng)絡(luò)管理程序所在設(shè)備進行相應的SNMP參數(shù)設(shè)置。因此,在運行網(wǎng)絡(luò)管理程序之前,還需要做好兩項準備工作:
(1)管理端也需要開放SNMP服務(wù),同時設(shè)置共同體名public,該共同體名具有讀寫權(quán)限。
(2)對路由器r2621進行基本配置。
示例如下:
r2621>en
r2621#conf ter
r2621#interfa f0/0
r2621#ip address 172.168.0.1 255.255.255.0
r2621#no shutdown
r2621#exit
r2621#snmp-server community public
6 結(jié)束語
論文討論了網(wǎng)絡(luò)管理軟件的編程方法,研究了網(wǎng)絡(luò)管理基本原理以及SNMP++開發(fā)包,同時給出了網(wǎng)絡(luò)管理軟件的開發(fā)過程和方法。
當前,基于XML的網(wǎng)絡(luò)管理軟件是研究熱點,下一步我們將研究如何把XML技術(shù)和Web技術(shù)應用于網(wǎng)絡(luò)管理軟件開發(fā)中。
參考文獻
[1] A Simple Network Management Protocol (SNMP) [S/OL]. http:///rfc/rfc1157.txt.
[2] Structure and Identification of Management Information for TCP/IP-based Internets [S/OL].http:///rfc/rfc1155.txt.
[3] Management Information Base for Network Management of TCP/IP-based internets: MIB-II [S/OL]. http:///rfc/rfc1213.txt.
[4] SNMP++:C++ Based Application Programmers Interface for the Simple Network Management Protocol. http:///develop/snmp_pp/index.htm.
[5] 王雪飛,王申強.網(wǎng)絡(luò)線路數(shù)據(jù)流量監(jiān)視的實現(xiàn)[J].信息網(wǎng)絡(luò)安全,2012,143(11):60-62.
[6] 劉雪飛,張光磊,王申強.網(wǎng)絡(luò)設(shè)備接口工作狀態(tài)監(jiān)控的實現(xiàn)[J].信息網(wǎng)絡(luò)安全,2012年,138(6):51-53.
關(guān)鍵詞:SNMP;HFC雙向網(wǎng)絡(luò);流量;誤碼率
中圖分類號:TP319 文獻標識碼:A 文章編號:1009-3044(2013)26-5840-03
隨著HFC網(wǎng)絡(luò)雙向改造的深入開展以及網(wǎng)絡(luò)規(guī)模的日益擴大,網(wǎng)絡(luò)管理的重要性以及迫切性日益突出,業(yè)已成為HFC雙向網(wǎng)絡(luò)良好運行必不可少的保證。對于缺少網(wǎng)絡(luò)管理系統(tǒng)的網(wǎng)絡(luò),獲知網(wǎng)絡(luò)故障總是被動等待的,總要等到用戶報障后,才開始進行故障點的診斷和維修,需要花費較長的時間,不利于雙向業(yè)務(wù)的開展,極大地降低了客戶滿意度。為保障網(wǎng)絡(luò)安全高效、穩(wěn)定地運行,對HFC網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備的流量信息進行監(jiān)測是實現(xiàn)網(wǎng)絡(luò)管理及時發(fā)現(xiàn)網(wǎng)絡(luò)出現(xiàn)的異常情況的重要手段,本系統(tǒng)利用SNMP協(xié)議讀取網(wǎng)絡(luò)設(shè)備管理信息庫MIB中的相關(guān)數(shù)據(jù)并通過各種相關(guān)運算得到網(wǎng)絡(luò)設(shè)備流量的信息,從而可以實現(xiàn)有效的管理監(jiān)視。
1 簡單網(wǎng)絡(luò)管理協(xié)議SNMP
簡單網(wǎng)絡(luò)管理協(xié)議SNMP[1](Simple Network Management Protocol)是由Internet活動委員會(IAB)制定的、基于TCP/IP協(xié)議族的各種互聯(lián)網(wǎng)絡(luò)的管理標準。利用SNMP,網(wǎng)絡(luò)管理者可以從網(wǎng)絡(luò)設(shè)備中收集網(wǎng)絡(luò)設(shè)備的狀態(tài)以及各類相關(guān)信息如流量、端口最大速率等;網(wǎng)絡(luò)設(shè)備也可以利用SNMP主動提供設(shè)備告警事件。
1.1 SNMP基本原理
SNMP采用的是工作站的模型,即對網(wǎng)絡(luò)的管理與維護是通過被監(jiān)測的網(wǎng)絡(luò)設(shè)備上的SNMP客戶端程序來實現(xiàn)的,該程序持續(xù)監(jiān)聽管理站發(fā)來的命令與請求,并對此進行響應。管理站與站之間的通信協(xié)議是UDP協(xié)議(面向無連接的數(shù)據(jù)報協(xié)議),一般而言,網(wǎng)絡(luò)設(shè)備上使用SNMP的UDP端口為161,管理站使用的UDP端口為162。
1.2 管理信息庫 MIB
管理信息庫MIB定義了可訪問的網(wǎng)絡(luò)設(shè)備的屬性,這些信息包括可供管理程序讀寫的控制信息和狀態(tài)信息,由對象識別符OID (Object Identifier)唯一指定。MIB采用樹型結(jié)構(gòu)進行命名,SNMP協(xié)議通過對MIB庫的樹形節(jié)點的讀和寫來訪問和操作網(wǎng)絡(luò)設(shè)備中的信息。OID是依據(jù)MIB樹形結(jié)構(gòu)從根節(jié)點到該對象所經(jīng)節(jié)點的編號系列組成的[2],如: 1.3.6.1.2.1.1.1表示對設(shè)備的描述,1.3.6.1.2.1.1.3表示設(shè)備上一次開機的時間,1.3.6.1.2.1.1.5表示設(shè)備的名稱等。
1.3 SNMP的數(shù)據(jù)單元
SNMP 定義了5中類型的協(xié)議數(shù)據(jù)單元:Get-Request、Get-Next-Request 、Get-Response、Set-Request以及Trap。共計可以分為3類:
1) Get類:SNMP管理站用Get-Request方法從擁有SNMP的網(wǎng)絡(luò)設(shè)備中查詢信息,而SNMP 則用Get-Response消息響應。Get-Next-Request用于查詢特定的對象中的下一個元素。
2) Set類:SNMP管理站用Set-Request對網(wǎng)絡(luò)設(shè)備進行遠程配置管理和設(shè)置性能參數(shù)的門限等。
3) Trap類:SNMP使用Trap向SNMP管理站發(fā)送非請求類消息,一般用于描述某一事件的發(fā)生如告警信息等,以實現(xiàn)故障管理。
2 設(shè)備流量以及誤碼率的的監(jiān)測
影響HFC雙向網(wǎng)絡(luò)性能的關(guān)鍵是網(wǎng)絡(luò)設(shè)備的各端口的流量以及誤碼率,通過對網(wǎng)絡(luò)設(shè)備的流量和誤碼率的分析是判斷網(wǎng)絡(luò)異常的先決條件。本系統(tǒng)采用SNMP協(xié)議來實現(xiàn)對網(wǎng)絡(luò)設(shè)備的流量監(jiān)測。在MIB庫中,反映網(wǎng)絡(luò)流量和誤碼的對象OID(1.3.6.1.2.1.2.2.1)的節(jié)點存在于Interface接口組的ifInOctets、ifOutOctets、ifInErrors、ifOutErrors等中,其中ifInOctets對象表示接口收到的總字節(jié)數(shù),ifOutOctets對象表示接口輸出的總字節(jié)數(shù),ifInErrors對象表示接口收到的錯誤總字節(jié)數(shù),ifOutErrors對象表示接口發(fā)出的錯誤總字節(jié)數(shù)。表1總結(jié)了流量以及誤碼率在網(wǎng)絡(luò)設(shè)備監(jiān)控中所使用的公式:
從上表中可以看出,各個指標的計算,都需要相鄰兩次采集的數(shù)值之差運算得到的,反映的是一段時間內(nèi)的采集數(shù)據(jù)的平均值。由公式可知,Δt決定了系統(tǒng)采集的精度,也就是系統(tǒng)采集的間隔時間,也稱之為系統(tǒng)采集的輪詢周期。因為,系統(tǒng)采集的輪詢周期的設(shè)置成為了反映整個監(jiān)測系統(tǒng)指標精確的關(guān)鍵,若輪詢周期設(shè)置時間過長,影響系統(tǒng)的實時性,不能反映采集周期內(nèi)突變狀態(tài);若輪詢周期設(shè)置較短,則導致設(shè)備負荷較大,從而影響設(shè)備的正常運行。根據(jù)經(jīng)驗以及考慮設(shè)備的運行負載,本監(jiān)控系統(tǒng)將各類指標的輪詢周期設(shè)置為2分鐘。
3 流量以及誤碼率監(jiān)控的系統(tǒng)設(shè)計以及實現(xiàn)
3.1 監(jiān)控系統(tǒng)設(shè)計
系統(tǒng)采用B/S結(jié)構(gòu)模式,模塊化設(shè)計。如圖1所示的系統(tǒng)結(jié)構(gòu)圖,系統(tǒng)由接口適配層、應用層、信息表示層和Web層四部分組成,系統(tǒng)功能實現(xiàn)的核心部分集中在服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護和使用,在擴展系統(tǒng)功能時,只需更新服務(wù)器上的應用模塊,無需做客戶端維護,系統(tǒng)的適應性、擴展性和穩(wěn)定性強,使用方便。系統(tǒng)的開發(fā)語言是C#,使用的數(shù)據(jù)庫是SQL Server數(shù)據(jù)庫。
3.2 分布式并發(fā)采集
考慮到順序采集情況下,單個設(shè)備采集需要的時間t與設(shè)備數(shù)量m之間的乘積t*m可能會導致輪詢間隔大于指定的輪詢周期,系統(tǒng)采用了多線程技術(shù)和分布式方案。多線程技術(shù)減少了CPU等待時間,提高了服務(wù)器資源利用率;分布式采集為今后更大的網(wǎng)絡(luò)規(guī)模提供了解決方案。
3.3 圖形化展現(xiàn)
流量以及誤碼率監(jiān)控系統(tǒng)在采集到相關(guān)指標數(shù)據(jù)后,根據(jù)表1的公式,來計算各類監(jiān)控指標,為了讓維護管理人員能夠直觀便捷的了解系統(tǒng)狀況,系統(tǒng)采用了圖形的方式給出了各類參數(shù)的實時數(shù)據(jù)。當出現(xiàn)異常流量時,流量監(jiān)控系統(tǒng)會發(fā)出相應的告警信息。如圖2:某一端口的輸入流量(InOctetes)以及輸出流量(OutOctets)。圖3:系統(tǒng)設(shè)備中端口利用率的告警(紅色表示告警)。
4 總結(jié)
本文基于SNMP協(xié)議訪問網(wǎng)絡(luò)設(shè)備性能參數(shù),以實現(xiàn)對網(wǎng)絡(luò)設(shè)備流量以及誤碼率的監(jiān)控功能,構(gòu)建了一種能夠?qū)崟r對網(wǎng)絡(luò)設(shè)備端口進行監(jiān)測的模型,其實現(xiàn)主要包括兩部分,其一,通過SNMP 協(xié)議訪問監(jiān)控節(jié)點的MIB,實現(xiàn)對節(jié)點流量以及誤碼率的監(jiān)控;其二,對監(jiān)控結(jié)果設(shè)置閾值,監(jiān)控流量超過門限時進行流量的告警。該模型設(shè)計可以有效評價網(wǎng)絡(luò)的運行狀態(tài),當出現(xiàn)流量以及誤碼率異常時可以及時的采取措施,避免了故障發(fā)現(xiàn)延遲的情況。
參考文獻:
[1] [美]Mark A.Miller,P.E. 用SNMP 管理互聯(lián)網(wǎng)絡(luò)[M]. 晏明峰譯. 中國水利水電出版社,2001.
關(guān)鍵詞:多級分部計算機 網(wǎng)絡(luò)管理 實踐研究分析
中圖分類號:TP393.07 文獻標識碼:A 文章編號:1007-9416(2015)09-0000-00
我國計算機網(wǎng)絡(luò)技術(shù)早已進入老百姓生活的加重,但是由于網(wǎng)絡(luò)載荷過大,國內(nèi)的網(wǎng)絡(luò)形式越來越復雜,網(wǎng)絡(luò)接通與運行的速度越來越慢,網(wǎng)絡(luò)木馬病毒傳播等問題日益顯現(xiàn)出來,如何才能夠保障計算機網(wǎng)絡(luò)能夠安全、持續(xù)、穩(wěn)定的運行,讓計算機網(wǎng)絡(luò)技術(shù)充分的發(fā)揮出來,是計算機網(wǎng)絡(luò)學術(shù)領(lǐng)域和網(wǎng)絡(luò)用戶所關(guān)注的焦點。
1 計算機網(wǎng)絡(luò)管理系統(tǒng)的概念
計算機網(wǎng)絡(luò)管理系統(tǒng)是在管理軟件的基礎(chǔ)上進行研發(fā)的新興管理方式,在通常情況下管理系統(tǒng)會對網(wǎng)絡(luò)的運行環(huán)境和方式進行實時的監(jiān)控,收集并分析網(wǎng)絡(luò)框架中的各項信息,以及根據(jù)這些信息的分析結(jié)果做出相應的處理。目前,我國計算機網(wǎng)絡(luò)管理的管理功能主要有以下幾點:
(1)性能管理,(2)故障管理,(3)計費管理,(4)配置管理,(5)安全管理。
在以上幾大管理模式中,故障管理是最為常用和常見的管理模式,故障管理主要是使用一些具有檢測性的技術(shù)來對網(wǎng)絡(luò)中的故障進行檢測,并且做出相應的處理,從而解決網(wǎng)絡(luò)中的故障。計算機網(wǎng)絡(luò)管理的最終目的就是要讓網(wǎng)絡(luò)實現(xiàn)安全、穩(wěn)定和持續(xù)的運轉(zhuǎn),讓網(wǎng)絡(luò)中的各項資源能夠進行科學的分配,資源的使用更加高效,從而間接的優(yōu)化網(wǎng)絡(luò)現(xiàn)有的結(jié)構(gòu),降低網(wǎng)絡(luò)企業(yè)維護網(wǎng)絡(luò)的成本。因此,安全管理是眾多管理中最為重要的管理模式。
2 簡單網(wǎng)絡(luò)管理協(xié)議SNMP
2.1 SNMP協(xié)議
SNMP協(xié)議翻譯成中文就是簡單網(wǎng)絡(luò)管理協(xié)議,這種管理協(xié)議是目前計算機網(wǎng)絡(luò)管理中最為常用的網(wǎng)絡(luò)管理協(xié)議,管理效果較為明顯,并得到了眾多學者和網(wǎng)絡(luò)用戶的支持。SNMP協(xié)議是一種應用層協(xié)議,主要用于IP網(wǎng)絡(luò)節(jié)點的管理當中,IP網(wǎng)絡(luò)節(jié)點包含了服務(wù)器、工作站和入戶客戶端等。計算機網(wǎng)絡(luò)系統(tǒng)可以通過使用該協(xié)議來對MIB對象進行管理操作。網(wǎng)絡(luò)管理員通過使用SNMP協(xié)議可以對網(wǎng)絡(luò)進行高效的管理,及時發(fā)現(xiàn)和解決網(wǎng)絡(luò)中存在的問題,優(yōu)化網(wǎng)絡(luò)的運行狀態(tài)。此外,SNMP管理協(xié)議還可以根據(jù)計算機網(wǎng)絡(luò)的預設(shè)條件向管理人員主動發(fā)出警報文件。
2.2 SNMP協(xié)議參考模型
SNMP這種網(wǎng)絡(luò)管理協(xié)議主要是采用管理中與人合作的管理模式,首先SNMP協(xié)議必須要有一個管理站,簡單來說就是一個網(wǎng)路控制中心,每一個在網(wǎng)絡(luò)中受到監(jiān)控的對象都必須具備一個進程。因此,一個完整的SNMP網(wǎng)絡(luò)管理系統(tǒng)要有以下四個部分組成。
(1)網(wǎng)絡(luò)管理信息庫MIB:網(wǎng)絡(luò)管理的主要對象就是網(wǎng)絡(luò)資源,而當網(wǎng)絡(luò)資源集合起來時就形成了網(wǎng)絡(luò)資源信息庫,這個信息庫以一種動態(tài)數(shù)據(jù)庫的形式存在。SNMP管理協(xié)議中的管理對象就是指某一方面的信息變量,比如,網(wǎng)絡(luò)配置信息、安全信息文件和傳遞信息這些信息的變化。(2)管理人員:管理人員是整個計算機網(wǎng)絡(luò)管理的核心單位,是能夠?qū)嵤┯嬎銠C網(wǎng)絡(luò)管理工作的實體單位,管理員可以完成網(wǎng)絡(luò)管理中的各項管理工作。(3):這里所說的主要是指網(wǎng)絡(luò)管理設(shè)備中的軟件模塊,使用帶來可以實時了解到網(wǎng)絡(luò)設(shè)備的運行狀況、當前系統(tǒng)配置以及數(shù)據(jù)流量等相關(guān)信息。(4)SNMP網(wǎng)絡(luò)管理協(xié)議文件:在整個網(wǎng)絡(luò)管理過程中,管理員與之間通過SNMP協(xié)議來進行連接,從而實現(xiàn)Set、Cet和Trap等網(wǎng)絡(luò)技術(shù)控制。
3 分布式網(wǎng)絡(luò)管理的設(shè)計方式
分布式網(wǎng)絡(luò)管理對象的核心內(nèi)容就是解決或優(yōu)化對象跨平臺交互運行中的各種問題,通過在一定范圍內(nèi)創(chuàng)建區(qū)域管理框架來對本區(qū)域內(nèi)的網(wǎng)絡(luò)對象進行管理,同時對整個區(qū)域內(nèi)的網(wǎng)絡(luò)進行協(xié)調(diào)控制。
3.1 系統(tǒng)功能
(1)計費管理:計費管理系統(tǒng)主要通過使用SNMP協(xié)議中的GNRP報文來獲取用戶網(wǎng)路的使用數(shù)據(jù),然后系統(tǒng)定時從入戶端中獲取計費信息。(2)故障管理:計算機網(wǎng)絡(luò)故障管理主要是根據(jù)網(wǎng)絡(luò)流量的實際情況對網(wǎng)絡(luò)設(shè)備進行實時監(jiān)控,從而更加要有效的完成故障監(jiān)控、數(shù)據(jù)發(fā)報和鎖定故障接口等任務(wù),在這個過程中管理系統(tǒng)會向用戶提出警示,便于讓用戶在第一時間開展相應的處理措施。(3)性能管理:主要就是收集網(wǎng)絡(luò)設(shè)備中的相關(guān)數(shù)據(jù),同時進行數(shù)據(jù)分析、處理和存儲的操作,從而觀察網(wǎng)絡(luò)設(shè)備的運行是否正常。(4)配置管理:這項管理主要是對網(wǎng)絡(luò)以及網(wǎng)絡(luò)設(shè)備的配置進行檢查,根據(jù)網(wǎng)絡(luò)實際情況對其進行適當?shù)恼{(diào)節(jié)。(5)安全管理:網(wǎng)絡(luò)安全管理主要是對網(wǎng)絡(luò)中的各項信息和資源進行保護,從而保證用戶在使用網(wǎng)絡(luò)時的安全、持續(xù)和穩(wěn)定。
3.2 SNMP協(xié)議的工作方式
這里作者以以太交換機為例子,在我們常用的Windows系統(tǒng)中的計算機中有很多自帶的SNMP程序包,這些自帶的程序包可以運用于不同的語言程序當中,并可以讓網(wǎng)絡(luò)用戶按照自己意向來收集和修改相關(guān)管理信息。當然,管理系統(tǒng)在對以太交換機進行監(jiān)控時,必須使用SNMP中的相關(guān),這個時候的為軟件,這類將會在網(wǎng)絡(luò)端口自動收集用戶預設(shè)的網(wǎng)絡(luò)數(shù)據(jù)信息,然后將這些數(shù)據(jù)存儲起來并形成一個列表,列表當中會出現(xiàn)一個名叫公共區(qū)域的密碼。如果公共區(qū)域的密碼與所設(shè)置的密碼不相符,那么此條信息將會被刪除,同時管理系統(tǒng)還會向管理人員發(fā)生一條有人非法訪問SNMP的通知。
4 結(jié)語
總之,因為SNMP網(wǎng)絡(luò)管理系統(tǒng)具有多方面的優(yōu)勢,以成為世界計算機網(wǎng)絡(luò)領(lǐng)域中被廣泛使用的網(wǎng)絡(luò)管理系統(tǒng),但是該系統(tǒng)主要還是采用上中下級輪詢訪問的方式來獲取網(wǎng)絡(luò)數(shù)據(jù),從而顯得太被動,不利于未來網(wǎng)絡(luò)的發(fā)展形勢。
參考文獻
[1] 宋筱菁.多級分布計算機網(wǎng)絡(luò)管理系統(tǒng)研究與實踐[D].重慶大學,2013.
[2] 陳浩成.武警廣東總隊計算機網(wǎng)絡(luò)管理系統(tǒng)的設(shè)計與實現(xiàn)[D].國防科學技術(shù)大學,2012.
摘要 Mrtg(Multi Router Traffic Grapher,MRTG)是一個監(jiān)控網(wǎng)絡(luò)鏈路流量負載的工具軟件,它可以從所有運行SNMP協(xié)議的設(shè)備上(包括服務(wù)器、路由器、交換機等)抓取到信息,自動生成包含PNG格式的圖形,并以HTML文檔方式顯示給用戶。
關(guān)鍵詞 MRTG 網(wǎng)絡(luò)流量
隨著網(wǎng)絡(luò)應用的日益廣泛,有大量的數(shù)據(jù)在網(wǎng)絡(luò)中傳輸。為了全面衡量網(wǎng)絡(luò)運行狀況,就需要對網(wǎng)絡(luò)狀態(tài)做更細致、更精確的測量。SNMP協(xié)議的制訂為互聯(lián)網(wǎng)測量提供了有力支持。MRTG(MultiRouter Traffic Grapher, MRTG)就是基于SNMP的典型網(wǎng)絡(luò)流量統(tǒng)計分析工具。它的優(yōu)點是耗用的系統(tǒng)資源小,可以非常直觀地顯示流量負載,因此有很多外掛的程序也依附在MRTG下,通過SNMP協(xié)議從設(shè)備得到其流量信息,并將流量負載以包含PNG格式圖形的HTML文檔的方式顯示給用戶。
1 MRTG工作原理
MRTG是一個簡單的網(wǎng)絡(luò)軟件,它是利用SNMP協(xié)議,去偵測指定的運行有SNMP協(xié)議的網(wǎng)絡(luò)設(shè)備。每隔幾分鐘采樣并統(tǒng)計其設(shè)備流量,將統(tǒng)計結(jié)果繪成統(tǒng)計圖,這樣用戶能很容易地從統(tǒng)計圖上觀察出實際網(wǎng)絡(luò)的流量。統(tǒng)計圖如下?lt;/DIV>
關(guān)鍵詞:網(wǎng)絡(luò)管理技術(shù) CORBA技術(shù) B/S結(jié)構(gòu) XML技術(shù) SNMP協(xié)議
隨著網(wǎng)絡(luò)技術(shù)和應用的不斷發(fā)展,人們對網(wǎng)絡(luò)的依賴程度將越來越大,用戶已不再滿足于網(wǎng)絡(luò)連通性的要求,他們希望以更快的速度、更高的質(zhì)量、更好的安全性訪問網(wǎng)絡(luò)。但是,隨著網(wǎng)絡(luò)用戶數(shù)量的不斷壯大,為網(wǎng)絡(luò)的日常管理與維護帶來巨大的挑戰(zhàn)。為了維護日益龐大的網(wǎng)絡(luò)系統(tǒng)的正常工作,保證所有網(wǎng)絡(luò)資源處于良好的運行狀態(tài),必須有相應的網(wǎng)絡(luò)管理系統(tǒng)進行支撐。網(wǎng)絡(luò)管理系統(tǒng)中技術(shù)革新就顯得尤為重要,只有新技術(shù)不斷推陳出新,才能使網(wǎng)絡(luò)管理系統(tǒng)不斷向前發(fā)展。
一、網(wǎng)絡(luò)管理軟件技術(shù)熱點
網(wǎng)絡(luò)管理系統(tǒng)多年的發(fā)展,目前網(wǎng)絡(luò)管理軟件技術(shù)的熱點有以下幾個方面:
1.開放性。隨著用戶對不同設(shè)備進行統(tǒng)一網(wǎng)絡(luò)管理的需求日益迫切,各廠商也在考慮采用更加開放的方式實現(xiàn)設(shè)備對網(wǎng)管的支持。
2.綜合性。通過一個控制和操作臺就可提供對各個子網(wǎng)的透視、對所管業(yè)務(wù)的了解及提供對故障定位和故障排除的支持,也就是通過一個操作臺實現(xiàn)對互聯(lián)的多個網(wǎng)絡(luò)的管理。此外,網(wǎng)絡(luò)管理與系統(tǒng)管理正在逐漸融合,通過一個平臺、一個界面,提供對網(wǎng)絡(luò)、系統(tǒng)、數(shù)據(jù)庫等應用服務(wù)的管理功能。
3.智能化。現(xiàn)代通信網(wǎng)絡(luò)的迅速發(fā)展,使網(wǎng)絡(luò)的維護和操作越來越復雜,對操作使用人員提出了更高的要求。而人工維護和診斷往往花費巨大,而且對于間歇性故障無法及時檢錯排除。因此人工智能技術(shù)適時而生,用以作為技術(shù)人員的輔助工具。由此,故障診斷和網(wǎng)絡(luò)自動維護也是人工智能應用最早的網(wǎng)絡(luò)管理領(lǐng)域,目的在于解釋網(wǎng)絡(luò)運行的差錯信息、診斷故障和提供處理建議。
4.安全性。對于網(wǎng)絡(luò)來說,安全性是網(wǎng)絡(luò)的生命保障,因此網(wǎng)管軟件的安全性也是熱點之一。除軟件本身的安全機制外,目前很多網(wǎng)管軟件都采用SNMP協(xié)議,普遍使用的是SNMP v l、SNMPv2,但現(xiàn)階段的SNMP?v?l、SNMPv2協(xié)議對于安全控制還較薄弱,也為后續(xù)的SNMP協(xié)議發(fā)展提出挑戰(zhàn)。
5.基于Web的管理?;赪eb的管理以其統(tǒng)一、友好的界面風格,地理和系統(tǒng)上的可移動性及系統(tǒng)平臺的獨立性,吸引著廣大的用戶和開發(fā)商。而目前主流的網(wǎng)絡(luò)管理軟件都提供融合Web技術(shù)的管理平臺。
二、網(wǎng)絡(luò)管理技術(shù)發(fā)展趨勢
通過現(xiàn)階段網(wǎng)絡(luò)管理軟件中的一些技術(shù)熱點,我們可以去展望今后在網(wǎng)絡(luò)管理中出現(xiàn)的一些新的技術(shù),以期帶動網(wǎng)絡(luò)網(wǎng)絡(luò)管理水平整體性能的提升:
1.分布式技術(shù)。分布式技術(shù)一直是推動網(wǎng)絡(luò)管理技術(shù)發(fā)展的核心技術(shù),也越來越受到業(yè)界的重視。其技術(shù)特點在于分布式網(wǎng)絡(luò)與中央控制式網(wǎng)絡(luò)對應,它沒有中心,因而不會因為中心遭到破壞而造成整體的崩潰。在分布式網(wǎng)絡(luò)上,節(jié)點之間互相連接,數(shù)據(jù)可以選擇多條路徑傳輸,因而具有更高的可靠性。
基于分布式計算模式推出的CORBA是將分布計算模式和面向?qū)ο笏枷虢Y(jié)合在一起,構(gòu)建分布式應用。CORBA的網(wǎng)絡(luò)管理系統(tǒng)通常按照Client/Server的結(jié)構(gòu)進行構(gòu)造,運用CORBA技術(shù)完全能夠?qū)崿F(xiàn)標準的網(wǎng)絡(luò)管理系統(tǒng)。
2.XML技術(shù)。XML技術(shù)是一項國際標準,可以有效地統(tǒng)一現(xiàn)有網(wǎng)絡(luò)系統(tǒng)中存在的多種管理接口。其次XML技術(shù)具有很強的靈活性,可以充分控制網(wǎng)絡(luò)設(shè)備內(nèi)嵌式管理,確保管理系統(tǒng)間,以及管理系統(tǒng)與被管理設(shè)備間進行復雜的交互式通信與操作,實現(xiàn)很多原有管理接口無法實現(xiàn)的管理操作。
利用XML管理接口,網(wǎng)絡(luò)管理系統(tǒng)還可以實現(xiàn)從被管理設(shè)備中讀取故障信息和設(shè)備工作狀態(tài)等多種管理數(shù)據(jù)的操作。新管理接口的采用可以大大提高管理軟件,包括第三方管理軟件與網(wǎng)絡(luò)設(shè)備間進行管理信息交換的能力和效率,并可以方便地實現(xiàn)與網(wǎng)絡(luò)管理系統(tǒng)的集成。
而且由于XML技術(shù)本身采用了簡單清晰的標記語言,在管理系統(tǒng)開發(fā)與集成過程中能比較簡便地實施,這樣新管理接口的采用反而還會降低整個管理系統(tǒng)的開發(fā)成本。
3.B/S模式。B/S模式是基于Intranet的需求而出現(xiàn)并發(fā)展的。在B/S模式中,最大的好處是運行維護比較簡便,能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式接入網(wǎng)絡(luò)。其工作原理是網(wǎng)絡(luò)中客戶端運行瀏覽器軟件,瀏覽器以超文本形式向Web服務(wù)器提出訪問數(shù)據(jù)庫的要求,Web服務(wù)器接受客戶端請求后,將這個請求轉(zhuǎn)化為SQL語法,并交給數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器得到請求后,驗證其合法性,并進行數(shù)據(jù)處理,然后將處理后的結(jié)果返回給Web服務(wù)器,Web服務(wù)器再一次將得到的所有結(jié)果進行轉(zhuǎn)化,變成HTML文檔形式,轉(zhuǎn)發(fā)給客戶端瀏覽器以友好的Web頁面形式顯示出來。
在B/S模式下,集成了解決企事業(yè)單位各種網(wǎng)絡(luò)問題的服務(wù),而非零散的單一功能的多系統(tǒng)模式,因而它能提供更高的工作效率。B/S模式借助Internet強大的信息與信息傳送能力,可以通過網(wǎng)絡(luò)中的任意客戶端實現(xiàn)對網(wǎng)絡(luò)的管理。而且B/S模式結(jié)構(gòu)可以任意擴展,可以從一臺服務(wù)器、幾個用戶的工作組級擴展成為擁有成千上萬用戶的大型系統(tǒng),采用B/S網(wǎng)絡(luò)管理結(jié)構(gòu)模式從而實現(xiàn)對大型網(wǎng)絡(luò)管理。
4.支持SNMP v3協(xié)議。SNMP協(xié)議是一項廣泛使用的網(wǎng)絡(luò)管理協(xié)議,是流傳最廣,應用最多,獲得支持最廣泛的一個網(wǎng)絡(luò)管理協(xié)議。其優(yōu)點是簡單、穩(wěn)定和靈活,也是目前網(wǎng)管的基礎(chǔ)標準。
SNMP協(xié)議歷經(jīng)多年的發(fā)展,已經(jīng)推出的SNMP v3是在SNMP v1 、SNMP v2兩個版本的基礎(chǔ)上改進推出,其克服了SNMP v1 和SNMP v2兩個版本的安全弱點,功能得到來極大的增強,它有適應性強和安全性好的特點。
盡管新版本的SNMP v3協(xié)議還未達到普及,但它畢竟代表著SNMP協(xié)議的發(fā)展方向,隨著網(wǎng)絡(luò)管理技術(shù)的發(fā)展,它完全有理由將在不久的將來成為SNMP v2的替代者,成為網(wǎng)絡(luò)管理的標準協(xié)議。
三、結(jié)語
隨著計算機技術(shù)的日新月異,網(wǎng)絡(luò)管理技術(shù)也會隨著各種新技術(shù)的運用而不斷向前進步,從而為眾多的網(wǎng)絡(luò)提供方便、快捷和有效的管理。
參考文獻:
[1]李明江.SNMP簡單網(wǎng)絡(luò)管理協(xié)議[M].北京:電子工業(yè)出版社,2007.
目前,由于實際技術(shù)水平和應用條件的限制,網(wǎng)絡(luò)管理主要集中在網(wǎng)元管理層和網(wǎng)絡(luò)管理層,真正業(yè)務(wù)級的管理還只停留在理論研究階段。網(wǎng)元管理層直接管理物理網(wǎng)絡(luò),是整個管理系統(tǒng)的基礎(chǔ)。對電信網(wǎng)絡(luò)運營商來說,隨著通信業(yè)務(wù)量需求的成倍增長,網(wǎng)絡(luò)規(guī)模的日益膨脹,網(wǎng)元設(shè)備的種類和數(shù)量不斷增加,各個網(wǎng)元都有自己的管理系統(tǒng),這給網(wǎng)絡(luò)的管理維護帶來了很多困難。為了提高網(wǎng)絡(luò)管理的效率,很有必要對各網(wǎng)元進行集中管理,實現(xiàn)在一個統(tǒng)一的平臺上管理各種設(shè)備。為了適應網(wǎng)絡(luò)管理系統(tǒng)可擴展性的要求,我們將設(shè)計模式的思想融入網(wǎng)絡(luò)管理框架設(shè)計中,保證該框架具有良好的靈活性和可擴展性。
2網(wǎng)絡(luò)管理協(xié)議
當前最典型的網(wǎng)絡(luò)管理協(xié)議有基于OSI七層模型的公共管理信息協(xié)議(CMIP)和基于TCP/IP的簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)。OSI/CMIP系統(tǒng)管理模型是目前理論上最完備的網(wǎng)絡(luò)管理模型,是其他網(wǎng)絡(luò)管理模型的基本參考。但由于該模型比較復雜,實現(xiàn)代價高,因此并沒有得到廣泛的應用。相反,當初只是為了管理TCP/IP網(wǎng)絡(luò)的SNMP卻得到了迅速的發(fā)展和廣泛應用。SNMP網(wǎng)絡(luò)管理模型的突出特點是簡單、易于實現(xiàn),因而得到了廠商的支持。特別是在Internet上的成功應用,使得它的重要性越來越突出,已經(jīng)成為事實上的工業(yè)標準。
SNMP主要包括SMI(管理信息結(jié)構(gòu))、MIB(管理信息庫)和SNMP協(xié)議幾部分。SMI給出了管理對象定義的一般框架。MIB是設(shè)備所維護的全部被管理對象的結(jié)構(gòu)集合。SNMP協(xié)議包括SNMP操作、SNMP信息的格式以及如何在應用程序和設(shè)備間交換消息。SNMP采用/管理站模型進行網(wǎng)絡(luò)管理。
3基于SNMP的統(tǒng)一網(wǎng)管框架設(shè)計
3.1總體結(jié)構(gòu)設(shè)計
統(tǒng)一網(wǎng)管平臺提供一個高分布性,高擴展性的架構(gòu)來保證應用的開發(fā)者可以用不同的方法來布置他們的網(wǎng)元管理系統(tǒng)。從橫向分層的角度來看,平臺可以分為支撐層(SupportLayer)、框架層(FrameworkLayer)和應用層(ApplicationLayer)。
統(tǒng)一網(wǎng)管平臺從軟件結(jié)構(gòu)上講仍是C/S結(jié)構(gòu),包括網(wǎng)管服務(wù)器和網(wǎng)管終端兩大部分,通過網(wǎng)管服務(wù)器的級聯(lián)構(gòu)成多級網(wǎng)管,實現(xiàn)多級網(wǎng)管的無縫集成。其中框架層和支撐層位于服務(wù)器端,應用層位于客戶端。
3.2支撐層的設(shè)計
支撐層作為系統(tǒng)支撐平臺為應用提供系統(tǒng)級的服務(wù),包括消息服務(wù)、數(shù)據(jù)庫訪問和SNMP接口。支撐層是整個統(tǒng)一網(wǎng)管平臺的基礎(chǔ)。
3.2.1消息服務(wù)
消息服務(wù)為系統(tǒng)中所有模塊的交互提供支持,實現(xiàn)消息的路由轉(zhuǎn)發(fā),根據(jù)消息類型,轉(zhuǎn)發(fā)到相應的處理模塊。消息的格式如下所示:
版本號
消息頭
消息數(shù)據(jù)
消息頭的定義如下:
typedefstructmsg{
void*mlink;//指向結(jié)構(gòu)的指針,形成消息鏈表
PIDsender_pid;//發(fā)送進程標識
PIDreceiver_pid;//接收進程標識
BYTEmsg_type;//消息類型(2或3,表示同步或異步進程消息)
WORDevent_type;//事件類型
WORDmsg_length;//消息長度,不包括頭
}MSG_HEAD;
我們的系統(tǒng)使用的是非阻塞的異步消息機制,系統(tǒng)維護一個消息隊列,這個消息隊列用來存放系統(tǒng)各個模塊產(chǎn)生的消息。程序中有一小段程序代碼,叫做消息循環(huán),用來從隊列中取出消息,并且將它們發(fā)送給相應的消息處理程序。代碼片斷如下:
while(GetNmMessage(&msg,NULL,0,0))
{
TranslateNmMessage(&msg);
DispatchNmMessage(&msg);
}
3.2.2數(shù)據(jù)庫訪問
數(shù)據(jù)庫訪問模塊提供所有訪問數(shù)據(jù)庫的接口調(diào)用,并維護數(shù)據(jù)庫連接池,其他模塊只需向其申請數(shù)據(jù)庫連接即可。
3.2.3SNMP接口
網(wǎng)管系統(tǒng)與網(wǎng)元的交互是基于SNMP協(xié)議的,在SNMP協(xié)議棧的實現(xiàn)中,我們采用了被廣泛使用的CMU(CarnegieMellonUniversity)開發(fā)的開放源代碼CMU-SNMP軟件包,該軟件包對SNMPv2c做了很好的實現(xiàn)。但是對于上層的開發(fā)人員來說,調(diào)用起來不是很方便。例如,一次SNMP操作,就要先后調(diào)用以下這些函數(shù):
char*winsock_startup(void);
voidsnmp_synch_setup(structsnmp_session*Session);
structsnmp_session*snmp_open(structsnmp_session*session);
structsnmp_pdu*snmp_pdu_create(intcommand);
intsnmp_synch_response(structsnmp_session*Session,structsnmp_pdu*PDU,structsnmp_pdu**ResponsePDUP);
intsnmp_close(structsnmp_session*session);
為了方便業(yè)務(wù)開發(fā)人員,我們對該協(xié)議棧進行了簡單封裝。將CMU格式的SNMP消息結(jié)構(gòu)轉(zhuǎn)換為本網(wǎng)管平臺內(nèi)部使用的數(shù)據(jù)結(jié)構(gòu),并提供一系列便于使用的SNMP原子命令接口和其它輔助功能接口,為其上層應用和Trap監(jiān)聽進程提供統(tǒng)一的支持。
通常,通過SNMP協(xié)議向SNMP發(fā)送請求,是通過使用MIB中定義的對象標識符(OID)來標識的。OID是用句點隔開的一組整數(shù),使用起來很不方便,我們可以通過MIB樹中葉子的名稱來訪問和設(shè)置MIB樹中的數(shù)據(jù),而不是通過枯燥的數(shù)字,方便開發(fā)人員進行開發(fā)。
以RFC1213定義的MIB-Ⅱ中的..dod.internet.mgmt.mib-2.system.sysName為例,其定義如下:
sysNameOBJECT-TYPE
SYNTAXDisplayString(SIZE(0..255))
MAX-ACCESSread-write
STATUScurrent
DESCRIPTION
"Anadministratively-assignednameforthismanagednode.
Byconvention,thisisthenode''''sfully-qualifieddomain
name.Ifthenameisunknown,thevalueisthezero-length
string."
::={system5}
如果我們要查詢系統(tǒng)的名稱,我們在發(fā)送GetRequest命令時需要使用1.3.6.1.2.1.1.5.0去向SNMP檢索它,這一長串的OID字符串在程序中的可讀性很差。我們采取的措施是建立一個Hash表,在SNMP模塊初始化的時候先對程序所使用的MIB進行分析,對sysName這個字符串進行Hash操作,將sysName、OID和DisplayString保存在Hash表中。在向上層應用提供的SNMPAPI中只需要對sysName.0進行操作,就能查詢到sysName的值,而不是通過枯燥的數(shù)字,方便開發(fā)人員進行開發(fā)。MakeHash函數(shù)如下所示:
ULONGMakeHash(char*str,ULONGlen)
{
ULONGn;
n=0;
#defineHASHCn=*str+++65587*n
if(len>0)
{
intloop;
loop=(len+8-1)>>3;
switch(len&(8-1))
{
case0:
do
{
HASHC;
case7:HASHC;
case6:HASHC;
case5:HASHC;
case4:HASHC;
case3:HASHC;
case2:HASHC;
case1:HASHC;
}while(--loop);
}
}
returnn;
}
另外,由于我們使用的CMU的SNMP協(xié)議棧是非線程安全的,而我們的上層應用是基于多線程的,因此,我們在對其進行封裝的過程中一個重要的任務(wù)就是使其線程安全,目前我們采取的方法是采用事件機制,每個SNMP原子命令執(zhí)行前,都調(diào)用系統(tǒng)的同步機制函數(shù)等待一個事件對象mm_hSnmpEvent的觸發(fā)。
3.3框架層和應用層
針對網(wǎng)管系統(tǒng)這個特定的應用領(lǐng)域,我們抽取出一些公共的軟件框架,這些程序框架統(tǒng)稱為框架層。所有具體的管理應用都應該基于這個框架層提供的全部或者部分框架來開發(fā)。在具體的應用中,我們通過框架導出的API進行二次開發(fā),如圖1所示??蚣軐臃譃楣卜?wù)功能、公共應用功能、工作站功能和網(wǎng)元中介功能四個部分。公共服務(wù)功能提供網(wǎng)管系統(tǒng)所公有的,和具體網(wǎng)元無關(guān)的服務(wù)功能,如安全、日志等。和網(wǎng)元相關(guān)的管理功能,如告警、性能、配置等,抽取其中的公共部分稱為公共應用功能。工作站功能實現(xiàn)客戶端GUI的展現(xiàn)功能,并提供圖形控件。網(wǎng)元中介功能實現(xiàn)網(wǎng)管系統(tǒng)和網(wǎng)元之間的接口轉(zhuǎn)換和適配功能。
應用層就是在平臺框架層的基礎(chǔ)上,提供具體的管理應用功能,如配置管理、性能管理、故障管理、安全管理等。這些功能都是可以拆卸的,應用在使用統(tǒng)一網(wǎng)絡(luò)管理平臺的時候,可以根據(jù)自己的具體需要來選擇需要裝載那些管理功能。
4結(jié)束語
本文介紹了針對網(wǎng)元層的基于SNMP的網(wǎng)絡(luò)管理框架,該框架是在Windows平臺上利用VisualC++開發(fā)出來的,實現(xiàn)了在一個統(tǒng)一平臺上對各種網(wǎng)元進行管理,具有良好的靈活性和可擴展性。通過對各網(wǎng)元進行集中管理,極大地提高了網(wǎng)絡(luò)管理的效率。但是本系統(tǒng)依賴于Windows平臺,在移植性上尚存諸多不足。目前,Java平臺在移植性上做得比較成功,但是對于電信級的網(wǎng)管平臺來說,其性能并不能滿足要求,與此同時,CORBA應用日益成熟,C++領(lǐng)域高性能的分布式網(wǎng)絡(luò)框架ACE的異軍突起,為我們提供了跨平臺的最好選擇。我們可以用Java開發(fā)客戶端GUI,用ACE框架來實現(xiàn)服務(wù)器端的網(wǎng)管功能,用CORBA實現(xiàn)客戶端與服務(wù)器端的通信,從而真正實現(xiàn)高性能,可移植的網(wǎng)絡(luò)管理框架。
參考文獻
[1]ManiSubramanian.網(wǎng)絡(luò)管理-原理與實踐(影印版).北京:高等教育出版社,2001
[2]郭軍.網(wǎng)絡(luò)管理[M].北京:北京郵電大學出版社,2001
[3]賢道,安常青.網(wǎng)絡(luò)管理協(xié)議及應用開發(fā)[M].北京:清華大學出版社,1998
[4]DouglasMauro,KevinSchmidt.EssentialSNMP[M].O′Reilly&Associates,2001
[5]RFC1157.ASimpleNetworkManagementProtocol[S]
DesignandImplementationoftheUniformNetworkManagementSystemBasedonSNMP