專利名稱:Snmp通信系統(tǒng)和方法
技術領域:
本發(fā)明涉及一種SNMP(簡單網(wǎng)絡管理協(xié)議)通信系統(tǒng)和方法,特別涉及一種能夠進行大批量數(shù)據(jù)查詢和指定復雜條件進行數(shù)據(jù)處理的SNMP通信系統(tǒng)和方法。
背景技術:
SNMP是目前業(yè)界流行的網(wǎng)絡管理標準,為網(wǎng)絡管理系統(tǒng)提供了底層網(wǎng)絡管理的框架。SNMP協(xié)議的應用非常廣泛,諸多種類的網(wǎng)絡設備、軟件和系統(tǒng)都采用該協(xié)議來實現(xiàn)網(wǎng)絡管理管理功能。
SNMP的網(wǎng)絡管理模型包括以下關鍵元素SNMP管理站(SNMPManager)、SNMP代理(SNMP Agent)、管理信息庫(MIB)和被管理設備(Managed Device)。SNMP管理站一般是一個分立的設備,是網(wǎng)絡管理員與網(wǎng)絡管理系統(tǒng)之間的接口。被管理的設備是網(wǎng)絡中的一個節(jié)點,有時被稱為網(wǎng)元,被管理的設備可以是路由器、交換機、網(wǎng)橋、集線器、主機等,每個支持SNMP的網(wǎng)絡設備中都運行著一個SNMP代理;SNMP代理是駐留在被管理設備上的網(wǎng)絡管理軟件模塊,負責收集和存儲管理信息,記錄網(wǎng)絡設備的各種情況。管理信息庫是由SNMP代理維護的一個信息存儲庫,是一個具有分層特性的信息的集合,它可以被網(wǎng)絡管理系統(tǒng)所控制。管理信息庫中定義了各種數(shù)據(jù)對象,作為設在代理處的管理站訪問點的集合,管理站可以通過直接控制這些數(shù)據(jù)對象去控制、配置或者監(jiān)控網(wǎng)絡設備。
SNMP管理站通過SNMP代理來進行管理工作,SNMP代理的主要功能之一,就是協(xié)助SNMP管理站完成整個網(wǎng)絡的管理工作。SNMP代理定期收集被管理設備的重要信息,收集到的信息將用于確定獨立的網(wǎng)絡設備、部分網(wǎng)絡或者整個網(wǎng)絡運行的狀態(tài)時候正常。SNMP管理站定期查詢SNMP代理收集到有關被管理設備的運轉狀態(tài)、配置以及性能等信息。
SNMP管理站和SNMP代理之間運行的協(xié)議操作包括GetRequest、GetNextRequest、SetRequest、GetResponse,它們的含義如下GetRequest用于獲取指定被管理對象的值的請求報文;GetNextRequest用于連續(xù)獲取一組被管理對象的值的請求報文;SetRequest用于設置指定的被管理對象的值的報文;GetResponse用于設置指定的被管對象的請求報文,是上述三個協(xié)議操作的返回。
在傳統(tǒng)意義上,SNMP管理站通過網(wǎng)絡向SNMP代理發(fā)送GetRequest、GetNextRequest、SetRequest等請求,SNMP代理接收該請求,根據(jù)MIB(管理信息庫)中的MIB文件對被管理設備的管理對象進行操作,并向SNMP管理站發(fā)送GetResponse響應包返回操作結果。這里每個管理的對象都是確定的,其含義和標識通過MIB文件確定,每個管理對象都通過唯一的OID(對象標識符)標識。每個管理對象也是相互獨立的,互相之間也沒有關聯(lián)性,這也正是SNMP協(xié)議簡單通用的特性。
下面描述其通用的處理過程當SNMP管理站需要查詢被管設備某幾個管理對象的信息時,在GetRequest中指定這幾個管理對象的OID,SNMP代理接收到該請求后,通過內部接口從被管設備中獲取對應的信息,并返回GetResponse響應包回應這幾個管理對象的信息。例如,SNMP管理站若想查詢被管設備的對象sysDesc、sysObjectID(標準RFC1213中定義的system(系統(tǒng))組的節(jié)點)的信息,SNMP管理站在GetRequest請求包中指定sysDesc的OID值1.3.6.1.2.1.1.1.0和sysObjectID的OID值1.3.6.1.2.1.1.2.0,并將GetRequest請求包下發(fā)給SNMP代理,SNMP代理在GetResponse響應包中返回對應的值。
當SNMP管理站需要對被管設備某幾個管理對象進行設置時,在SetRequest中指定這幾個管理對象的OID和對應的值,SNMP代理就會將這幾個管理對象的操作設置到被管設備,并返回給SNMP管理站具體的操作結果。例如,SNMP管理站若想設置被管設備的對象sysContcat和sysName(標準RFC1213中定義的system組的節(jié)點,支持read-write(讀寫))的信息,SNMP管理站在SetRequest請求包中指定sysContact的OID值1.3.6.1.2.1.1.4.0和需要設置的具體的管理對象值;并指定sysName的OID值1.3.6.1.2.1.1.5.0和需要設置的具體的管理對象的值,并將SetRequest請求包下發(fā)給SNMP代理,SNMP代理將對應的值設置到被管設備,并在GetResponse響應包中返回對應的操作結果。
當被管設備的管理對象存在多個時,通常將其定義為mibTable,并通過表的索引來標識對應的管理對象。比如RFC1213中定義的ifTable端口組,此時SNMP管理站可通過GetNextRequest請求包來遍歷整張表的數(shù)據(jù),也可通過GetRequest請求包查詢具體某個索引的對象信息。
GetRequest、GetNextRequest和SetRequest請求包對應的響應包都是GetResponse。上面幾種模式的操作中,一般在GetRequest、GetNextRequest、SetRequest請求包中,管理對象和GetResponse響應包中的對象是一一對應的。在這種模式下,當用戶需要通過設置簡單的查詢條件,查詢一些比較復雜的被管設備的信息時,通過這種傳統(tǒng)意義上的Get或者Set操作就難以實現(xiàn)。例如,SNMP管理站希望指定一個號碼段查詢該號碼段的用戶相關信息,包括用戶的上網(wǎng)時間、運營商信息等,或者希望設置某個號碼段用戶的某個屬性信息,通過這種傳統(tǒng)意義上的Get或者Set操作是無法實現(xiàn)的,就算操作起來也相當麻煩(比如可以將用戶的號碼信息、上網(wǎng)時間、運營商信息等定義為一張mibTable,將號碼信息設置為表的索引,通過指定索引來輪詢操作該表),而且當用戶想要改變查詢或者設置的條件時,比如用戶想要設置某個號碼段在某個上網(wǎng)時間的某個屬性信息,通過上面定義的表也是無法實現(xiàn)的。此種情況下無法體現(xiàn)SNMP協(xié)議的簡單通用性,反而加大了網(wǎng)絡傳輸?shù)呢摀?br>
此外,SNMP協(xié)議對錯誤碼的定義是比較簡單的,一般在Get或者Set操作失敗時,通過在GetResponse包中返回一個錯誤碼來確定具體的錯誤信息。但在下面的應用場合,比如SNMP代理管理多個被管設備,某個Get或者Set操作需要SNMP代理同時從多個被管設備獲取信息,或者同時操作到多個被管設備,此時可能在多個被管設備上操作失敗,也可能在某個被管設備上操作失敗,而且失敗的原因也不一樣,只是通過一個簡單的錯誤碼是無法明確具體的錯誤信息的。
發(fā)明內容
本發(fā)明的目的在于提供一種SNMP通信系統(tǒng)和方法,使得SNMP管理站可以非常簡單地設置查詢條件或設置條件來查詢或設置復雜的管理對象。
依照本發(fā)明的SNMP通信系統(tǒng),其包括一SNMP管理站,一SNMP代理,以及被管設備,其中,SNMP管理站發(fā)送查詢條件或設置條件給SNMP代理,SNMP代理操作至相應的被管設備,被管設備根據(jù)SNMP管理站和被管設備預先確定的接口,解析該查詢條件或設置條件,執(zhí)行相應的查詢或設置操作。
在如上所述的SNMP通信系統(tǒng)中,當SNMP管理站發(fā)送查詢條件給SNMP代理以執(zhí)行查詢操作時,SNMP代理為該查詢分配一傳輸事務ID,并將其發(fā)送給SNMP管理站。
在如上所述的SNMP通信系統(tǒng)中,所述查詢條件包括期望查詢的返回記錄數(shù)。
在如上所述的SNMP通信系統(tǒng)中,如果查詢成功,SNMP代理將查詢結果描述信息存儲在查詢結果描述表中,將具體的查詢信息存儲在查詢結果記錄表中,SNMP管理站通過信息獲取請求,查詢查詢結果描述表和查詢結果記錄表,獲取具體的查詢結果。
在如上所述的SNMP通信系統(tǒng)中,如果查詢或設置失敗,SNMP代理將具體的錯誤信息存儲在錯誤信息記錄表中,SNMP管理站通過信息獲取請求,查詢錯誤信息記錄表,獲取具體的錯誤信息。
在如上所述的SNMP通信系統(tǒng)中,所述查詢條件包括對查詢結果進行排序的參數(shù),SNMP代理根據(jù)該參數(shù),對查詢結果進行排序,并將排序后的結果存儲在查詢結果描述表和查詢結果記錄表中。
在如上所述的SNMP通信系統(tǒng)中,如果SNMP代理在預定的時間內檢查到SNMP管理站沒有對與某一查詢結果進行操作,則將該查詢結果清除。
在如上所述的SNMP通信系統(tǒng)中,SNMP管理站可以針對一與查詢相對應的傳輸事務ID,發(fā)送請求包給SNMP代理,請求清除該查詢結果。
依照本發(fā)明的SNMP通信方法,其包括步驟a,預先設置SNMP管理站和被管設備之間的接口;步驟b,SNMP管理站發(fā)送查詢條件或者設置條件給SNMP代理,SMMP代理操作至相應的被管設備;步驟c,被管設備根據(jù)步驟a設置的接口,解析該查詢條件或設置條件,并執(zhí)行相應的查詢或設置操作。
在如上所述的SNMP通信方法中,在步驟b中,當SNMP管理站發(fā)送查詢條件給SNMP代理以執(zhí)行查詢操作時,SNMP代理為該查詢分配一傳輸事務ID,并將其發(fā)送給SNMP管理站。
在如上所述的SNMP通信方法中,所述查詢條件包括期望查詢的返回記錄數(shù)。
在如上所述的SNMP通信方法中,在步驟c中,如果查詢成功,則SNMP代理將查詢結果描述信息存儲在查詢結果描述表中,將具體的查詢信息存儲在查詢結果記錄表中,SNMP管理站通過信息獲取請求,查詢查詢結果描述表和查詢結果記錄表,獲取具體的查詢結果。
在如上所述的SNMP通信方法中,在步驟c中,如果查詢或設置失敗,SNMP代理將具體的錯誤信息存儲在錯誤信息記錄表中,SNMP管理站通過信息獲取請求,查詢錯誤信息記錄表,獲取具體的錯誤信息。
在如上所述的SNMP通信方法中,在步驟b中發(fā)送的查詢條件包括對查詢結果進行排序的參數(shù),在步驟c中,SNMP代理根據(jù)該參數(shù),對查詢結果進行排序,并將排序后的結果存儲在查詢結果描述表和查詢結果記錄表中。
在如上所述的SNMP通信方法中,進一步包括SNMP代理在預定的時間內檢查SNMP管理站是否對某一查詢結果進行操作的步驟,以及如果檢查到SNMP管理站沒有對該查詢結果進行操作時,將查詢結果清除的步驟。
在如上所述的SNMP通信方法中,SNMP管理站針對一與查詢相對應的傳輸事務ID,發(fā)送請求包給SNMP代理,請求清除該查詢結果的步驟。
依照本發(fā)明,通過定義一MIB接口,從而使得SNMP管理站可以非常簡單地設置查詢條件來查詢一些復雜的管理對象信息。
此外,SNMP代理為該查詢分配一傳輸事務ID,并將其發(fā)送給SNMP管理站,SNMP管理站需要根據(jù)這個傳輸事務ID來查詢具體的結果。從而每個SNMP管理站只能查詢與其自己發(fā)出的查詢條件相對應的查詢結果,而不能查詢其它SNMP管理站發(fā)出的查詢操作,因此加強了SNMP協(xié)議數(shù)據(jù)傳輸?shù)陌踩浴?br>
此外,在滿足查詢條件的記錄數(shù)信息很多(大批量數(shù)據(jù)查詢)時,SNMP管理站可以設置期望返回的記錄數(shù),以滿足實際的需求,從而減少SNMP代理所占用的內存。
此外,針對某個具體的操作,特別是批量操作時,在操作失敗時能夠獲取到完整的失敗信息。
圖1為本發(fā)明定義的MIB接口的示意圖;圖2為依照本發(fā)明的SNMP管理站,SNMP代理以及被管設備在執(zhí)行查詢操作時所執(zhí)行的流程圖;圖3為依照本發(fā)明的SNMP管理站,SNMP代理以及被管設備在執(zhí)行設置操作時所執(zhí)行的流程圖。
具體實施例方式
本發(fā)明提供一種擴充SNMP通訊實現(xiàn)的一種技術,通過定義通用的MIB接口和擴充SNMP代理(SNMP Agent)以及SNMP管理站(SNMP Manager)實現(xiàn)該MIB接口,以實現(xiàn)在網(wǎng)絡管理系統(tǒng)中大批量數(shù)據(jù)查詢和指定復雜條件進行數(shù)據(jù)處理。該技術解決了上面所說SNMP在查詢和設置時的一些缺陷,同時充分利用了SNMP協(xié)議的簡單通用性,通過一個通用的MIB接口,滿足SNMP管理站任意指定查詢或者設置條件的操作。
下面,描述依照本發(fā)明的SNMP通信方法的流程圖。
首先,在步驟A中定義一個通用的MIB接口,可針對所有的查詢或者設置的操作,該接口是SNMP管理站和被管設備預先確定的。依照該接口,被管設備可以識別該定義的MIB接口所包括的命令碼和具體的參數(shù)等等;該MIB接口包括條件設置區(qū),結果顯示區(qū),以及錯誤信息記錄區(qū),這將在下面參照圖1進行詳細描述。
步驟BSNMP管理站根據(jù)步驟A所設置的MIB接口,在條件設置區(qū)設置相關查詢或者設置的條件,通過SetRequest請求下發(fā)給SNMP代理,并預先設置一個傳輸事務ID值,以及希望返回的記錄數(shù)。SNMP代理將該請求轉換為被管設備可以識別的格式,并根據(jù)該請求所包含的信息,操作相應的被管設備(即,相應地操作至一個被管設備或多個被管設備)。接收到該請求的被管設備,根據(jù)步驟A定義的MIB接口,解析該查詢條件或者設置條件,進行查詢和設置,并將結果發(fā)送給SNMP代理。然后,SNMP代理響應相應的GetResponse包,并返回一個實際的傳輸事務ID值以及相應記錄數(shù);步驟CSNMP Manage根據(jù)返回的傳輸事務ID值以及對應的記錄數(shù),在結果顯示區(qū)中通過GetRequest或者GetNextRequest操作輪詢該查詢對應的結果信息;步驟D若在步驟B中SNMP代理返回操作失敗,則SNMP管理站通過返回的傳輸事務ID值,通過GetRequest或者GetNextRequest操作輪詢錯誤信息記錄區(qū),獲取具體的錯誤信息記錄。
其中,對于設置操作,步驟C可以不需要;其中,對于步驟B,若SNMP管理站希望返回所有的查詢記錄數(shù),可指定希望返回的記錄數(shù)為0,SNMP代理在響應包中會返回對應該查詢實際的記錄數(shù)。
如圖1所示,其描述了本發(fā)明所定義的MIB接口的具體內容,其包括條件設置區(qū)、結果顯示區(qū),以及錯誤信息記錄區(qū)。
在條件設置區(qū)中,包括下面幾個葉子節(jié)點OID定義hwConfigcommandCode具體的查詢或者設置條件,字符串類型。SNMP管理站通過指定該節(jié)點的值來設置查詢或者設置的條件,條件由管理站側和被管設備側協(xié)同確定,包括命令碼和具體的參數(shù),比如設置查詢某個路由信息,命令碼是Qry RouteInfo,具體的參數(shù)為Route=***,具體的參數(shù)可以包括多種,如設定起止路由段,設置時間等信息,只要和被管設備確定了這些相關參數(shù),管理站就可以任意指定相關的查詢條件;hwConfigcommandTransID針對某個查詢的傳輸事務ID,整數(shù)類型。傳輸事務ID是SNMP管理站和SNMP代理之間針對某個查詢操作的唯一標識,由SNMP代理進行分配。SNMP管理站在設置查詢條件時,指定該節(jié)點的值為0,SNMP代理在返回的響應包中分配具體的值;hwConfigrowCount期望返回的記錄數(shù),整數(shù)類型。SNMP管理站通過指定該節(jié)點的值設置針對某個查詢操作希望返回的記錄數(shù),這樣SNMP代理可以根據(jù)SNMP管理站設置的記錄數(shù)準備相應數(shù)據(jù),不需要將全部數(shù)據(jù)都準備,以節(jié)省SNMP代理的內存。若SNMP管理站希望返回滿足查詢條件的所有記錄數(shù),則指定該節(jié)點的值為0,SNMP代理在返回的響應包中返回對應查詢條件的具體的記錄數(shù)。
hwConfigCleanTransID在某個查詢結束后通知SNMP代理清除內存信息的事務ID,整數(shù)類型。SNMP管理站在某個查詢結束后,設置該節(jié)點的值為對應查詢的傳輸事務ID,SNMP代理接收該請求后清除對應查詢的內存。SNMP代理也可針對某個查詢定時檢查SNMP管理站是否有查詢操作,若沒有,SNMP代理也可自行清除對應的內存,以提高SNMP代理的性能。
結果顯示區(qū)包括兩張通用的mibTable表hwConfigResultDescTable和hwConfigResultTable。這兩個表hwConfigResultDescTable和hwConfigResultTable都存儲在SNMP代理中,SNMP代理根據(jù)每次查詢的結果,將相應的信息填入這些表中,SNMP管理站利用相應的索引,可以獲取相關的信息,這將在后面詳細描述。
hwConfigResultDescTable表包括針對某個查詢結果的描述信息,以傳輸事務ID作為索引,包括下面幾個節(jié)點定義hwConfigResultDescColumnIndex指定結果字段的MIB偏移量,給出本字段在hwConfigResultTable表中最后一個.后面的數(shù)值;hwConfigResultDescColumnName結果字段名稱;hwConfigResultDescColumnType結果字段類型。
hwConfigResultTable表包括針對某個查詢的查詢結果,以傳輸事務ID和記錄號作為索引,包括下面幾個節(jié)點定義hwConfigResultIntVal1~hwConfigResultIntVal10,針對查詢結果是整型字段的取值節(jié)點定義,目前定義為10個,可根據(jù)具體的應用情況進行擴充;hwConfigResultStrVal1~hwConfigResultStrVal10,針對查詢結果是字符類型字段的取值節(jié)點定義,目前定義為10個,可根據(jù)具體的應用情況進行擴充;HwConfigResultDateTime1~hwConfigResultDateTime10,針對查詢結果是時間類型字段的取值節(jié)點定義,目前定義為10個,可根據(jù)具體的應用情況進行擴充;hwConfigResultIPAddr1~hwConfigResultIPAddr10,針對查詢結果是IP地址類型字段的取值節(jié)點定義,目前定義為10個,可根據(jù)具體的應用情況進行擴充。
錯誤信息記錄區(qū)主要包括hwConfigErrRecordTable表,該表存儲在SNMP代理中。在查詢或者設置失敗時,SNMP代理將相關的錯誤信息存儲在該表中,SNMP管理站可以通過該表獲取具體的錯誤信息,其主要用于在某個查詢或者設置操作,SNMP代理需要操作到多個被管設備時。該表以hwConfigErrRecordTransID(針對某次查詢或者設置操作失敗時設備側返回的事務ID,對應設備側返回的錯誤碼)和hwConfigErrRecordIndex(針對某此失敗事件信息的記錄號)作為索引,包括下面幾個節(jié)點定義hwConfigErrRecordTime,失敗事件發(fā)生的時間;hwConfigErrRecordNodeName,操作到設備時產生錯誤的對應被管設備名稱;hwConfigErrRecordIPAddress,操作到設備時產生錯誤的被管設備所在主機IP地址;hwConfigErrRecordObject,具體失敗的對象;hwConfigErrRecordCauseID,失敗的原因ID。
本發(fā)明涉及到SNMP管理站通過SNMP代理對被管設備的查詢操作和設置操作,其操作流程不一樣,下面分別進行描述。
下面,參照圖2,描述SNMP管理站11通過SNMP代理12對被管設備131-13n進行查詢操作的流程。
首先,SNMP管理站11設置查詢條件,需要設置下面幾個參數(shù)在hwConfigcommandCode節(jié)點中指定命令碼和相應的參數(shù)條件,這些條件是SNMP管理站11和被管設備協(xié)商確定的;在hwConfigcommandTransID節(jié)點中指定針對該查詢的事務ID值(TransID),該值由SNMP代理12分配,用來識別每次查詢,SNMP管理站11先設置該值為0,當然SNMP管理站11也可以將該值設置為其他值;在hwConfigrowCount中指定期望SNMP代理12針對本次查詢期望返回的記錄數(shù),若希望SNMP代理12返回所有符合查詢條件的記錄,則SNMP管理站11設置該值為0。在指定這些節(jié)點后,SNMP管理站11組裝SetRequest請求包將查詢條件下發(fā)到SNMP代理12。在該例子中,設置的TransID為0。
SNMP代理12接收該請求后,可能需要到被管設備上獲取數(shù)據(jù),因此需要再通過SNMP代理12和被管設備的內部接口操作到被管設備,而且可能操作到多個被管設備;此時,SNMP代理12首先將SNMP管理站11發(fā)送的請求轉換為被管設備可以識別的格式,然后根據(jù)該請求所包含的信息,操作相應的被管設備131-13n。接收到該請求的被管設備131-13n,根據(jù)所設置的MIB接口的內容,解析該查詢條件,進行查詢。接著,被管設備將操作結果(查詢結果)返回給SNMP代理12。
SNMP代理12判斷查詢被管設備的操作是否成功。若操作成功,統(tǒng)計實際的記錄數(shù),并根據(jù)SNMP管理站11在SetRequest請求包中設置的hwConfigrowCount值進行相應處理若SNMP管理站11在請求包中設置其值為0,則SNMP代理12設置響應包中該節(jié)點的值為實際的記錄數(shù);若SNMP管理站11在請求包中設置的該節(jié)點值小于實際的記錄數(shù),則SNMP代理12設置響應包中該節(jié)點的值為SNMP管理站11所期望返回的值;若SNMP管理站11在請求包中設置的該節(jié)點的值大于實際的記錄數(shù),則SNMP代理12設置響應包中該節(jié)點的值為實際的記錄數(shù)。SNMP代理12同時針對該查詢分配一個唯一的查詢事務ID,并響應GetResponse包給SNMP管理站11,在該包中返回實際的記錄數(shù)和傳輸事務ID。若查詢操作失敗,則響應GetResponse包給SNMP管理站11,并明確對應的錯誤碼。此外,如果查詢成功,則SNMP代理12將相應的信息填入存儲在SNMP代理12中的hwConfigResultDescTable表和hwConfigResultTable表中;如果查詢失敗,則SNMP代理12將相應的信息填入存儲在SNMP代理12中的hwConfigErrRecordTable表中。
SNMP管理站11解析GetResponse包,若返回操作失敗,則獲取對應的錯誤碼信息,并以錯誤碼作為索引,調用GetRequest或者GetNextRequest接口查詢存儲在SNMP代理12中的hwConfigErrRecordTable表獲取具體的失敗信息。
SNMP管理站11解析GetResponse包,若操作成功,SNMP管理站11先以SNMP代理12返回的傳輸事務ID作為索引,調用GetRequest或者GetNextRequest接口查詢存儲在SNMP代理12中的hwConfigResultDescTable表獲取查詢結果的描述信息,在獲取到結果的描述信息后,再調用GetRequest或者GetNextRequest接口查詢存儲在SNMP代理12中的hwConfigResultTable表獲取具體的結果信息。
在上面的操作中,若SNMP管理站11希望指定某個屬性進行排序操作,則在下發(fā)給SNMP代理12的查詢條件中設置對應排序的屬性,由SNMP代理12進行相關的排序操作,結果顯示區(qū)中得到的記錄就是排序后的信息,這樣,就是SNMP管理站11還沒有獲取到所有的查詢結果,同樣可以進行查詢結果的完整排序。
為提升SNMP代理12性能,SNMP代理12可設置一個周期檢測SNMP管理站11是否對查詢結果進行操作在該周期內SNMP代理12保證數(shù)據(jù)的完整性,若超過該周期SNMP管理站11并沒有進行任何查詢操作,則SNMP代理12可清空對應某個查詢的查詢記錄,以釋放內存,此后若SNMP管理站11針對該查詢結果再進行查詢操作,SNMP代理12返回一個特定的錯誤碼,提示SNMP管理站11需要查詢設置查詢條件。SNMP管理站11也可通過設置hwConfigCleanTransID節(jié)點的值為某個查詢對應的傳輸事務ID,下發(fā)SetRequest請求包要求SNMP代理12釋放對應某個查詢的內存。
下面,參照圖3,描述SNMP管理站11通過SNMP代理12對被管設備131-13n進行設置操作的流程。
首先,SNMP管理站11設置條件,只需要在hwConfigcommandCode節(jié)點中設置命令碼和相應的參數(shù)條件即可,這些條件同樣是SNMP管理站11和被管設備協(xié)商確定的。SNMP管理站11組裝SetRequest請求包將設置條件下發(fā)到SNMP代理12。
SNMP代理12接收該請求后,可能需要到被管設備上獲取數(shù)據(jù),因此需要再通過SNMP代理12和被管設備的內部接口操作到被管設備,而且可能操作到多個被管設備;此時,SNMP代理12首先將SNMP管理站11發(fā)送的請求轉換為被管設備可以識別的格式,然后根據(jù)該請求所包含的信息,操作相應的被管設備131-13n。接收到該請求的被管設備131-13n,根據(jù)所設置的MIB接口的內容,解析該設置條件,進行設置。接著,被管設備將操作結果(設置結果)返回給SNMP代理12。
SNMP代理12判斷操作(設置)是否成功,同時發(fā)送響應SetRequest請求的GetResponse包給SNMP管理站11。若操作失敗,則以錯誤碼作為索引,將相應的失敗信息填充至hwConfigErrRecordTable表中,該hwConfigErrRecordTable表存儲在SNMP代理12中。
SNMP管理站11收到GetResponse包之后,解析該GetResponse包。當確定操作失敗時,獲取對應的錯誤碼信息,并以錯誤碼作為索引,調用GetRequest或者GetNextRequest接口查詢存儲在SNMP代理12中的hwConfigErrRecordTable表獲取具體的失敗信息。
依照本發(fā)明,通過定義一MIB接口,使得SNMP管理站可以非常簡單地設置查詢條件來查詢一些復雜的管理對象信息。此外,針對某個查詢操作,在SNMP管理站和SNMP代理之間可以通過一個唯一的傳輸事務ID標識,來保證信息的安全性。此外,在滿足查詢條件的記錄數(shù)信息很多(大批量數(shù)據(jù)查詢)時,SNMP管理站可以設置期望返回的記錄數(shù),以滿足實際的需求,并減少SNMP代理所占用的內存。此外,在SNMP管理站沒有完全獲取到所有的管理對象信息時,允許對滿足查詢條件所有數(shù)據(jù)的完整排序。針對某個具體的操作,特別是批量操作時,在操作失敗時能夠獲取到完整的失敗信息。
本實施例是為了使本領域普通技術人員理解而對本發(fā)明所進行的詳細描述,但本領域普通技術人員可以想到,在不脫離本發(fā)明的權利要求所涵蓋的范圍內還可以做出其它的變化和修改,其均在本發(fā)明的保護范圍內。
權利要求
1.一種SNMP通信系統(tǒng),其包括一SNMP管理站,一SNMP代理,以及被管設備,其中,SNMP管理站發(fā)送查詢條件或設置條件給SNMP代理,SNMP代理操作至相應的被管設備,被管設備根據(jù)SNMP管理站和被管設備預先確定的接口,解析該查詢條件或設置條件,執(zhí)行相應的查詢或設置操作。
2.如權利要求1所述的SNMP通信系統(tǒng),其中,當SNMP管理站發(fā)送查詢條件給SNMP代理以執(zhí)行查詢操作時,SNMP代理為該查詢分配一傳輸事務ID,并將其發(fā)送給SNMP管理站。
3.如權利要求2所述的SNMP通信系統(tǒng),其中,所述查詢條件包括期望查詢的返回記錄數(shù)。
4.如權利要求3所述的SNMP通信系統(tǒng),其中,如果查詢成功,SNMP代理將查詢結果描述信息存儲在查詢結果描述表中,將具體的查詢信息存儲在查詢結果記錄表中,SNMP管理站通過信息獲取請求,查詢查詢結果描述表和查詢結果記錄表,獲取具體的查詢結果。
5.如權利要求3所述的SNMP通信系統(tǒng),其中,如果查詢或設置失敗,SNMP代理將具體的錯誤信息存儲在錯誤信息記錄表中,SNMP管理站通過信息獲取請求,查詢錯誤信息記錄表,獲取具體的錯誤信息。
6.如權利要求1-5任一項所述的SNMP通信系統(tǒng),其中,所述查詢條件包括對查詢結果進行排序的參數(shù),SNMP代理根據(jù)該參數(shù),對查詢結果進行排序,并將排序后的結果存儲在查詢結果描述表和查詢結果記錄表中。
7.如權利要求1-5任一項所述的SNMP通信系統(tǒng),其中,如果SNMP代理在預定的時間內檢查到SNMP管理站沒有對與某一查詢結果進行操作,則將該查詢結果清除。
8.如權利要求2-5任一項所述的SNMP通信系統(tǒng),其中,SNMP管理站針對一與查詢相對應的傳輸事務ID,發(fā)送請求包給SNMP代理,請求清除該查詢結果。
9.一種SNMP通信方法,其包括步驟a,預先設置SNMP管理站和被管設備之間的接口;步驟b,SNMP管理站發(fā)送查詢條件或者設置條件給SNMP代理,SNMP代理操作至相應的被管設備;步驟c,被管設備根據(jù)步驟a設置的接口,解析該查詢條件或設置條件,并執(zhí)行相應的查詢或設置操作。
10.如權利要求9所述的SNMP通信方法,其中,在步驟b中,當SNMP管理站發(fā)送查詢條件給SNMP代理以執(zhí)行查詢操作時,SNMP代理為該查詢分配一傳輸事務ID,并將其發(fā)送給SNMP管理站。
11.如權利要求10所述的SNMP通信方法,其中,所述查詢條件包括期望查詢的返回記錄數(shù)。
12.如權利要求11所述的SNMP通信方法,其中,在步驟c中,如果查詢成功,則SNMP代理將查詢結果描述信息存儲在查詢結果描述表中,將具體的查詢信息存儲在查詢結果記錄表中,SNMP管理站通過信息獲取請求,查詢查詢結果描述表和查詢結果記錄表,獲取具體的查詢結果。
13.如權利要求11所述的SNMP通信方法,其中,在步驟c中,如果查詢或設置失敗,SNMP代理將具體的錯誤信息存儲在錯誤信息記錄表中,SNMP管理站通過信息獲取請求,查詢錯誤信息記錄表,獲取具體的錯誤信息。
14.如權利要求9-13任一項所述的SNMP通信方法,其中,在步驟b中發(fā)送的查詢條件包括對查詢結果進行排序的參數(shù),在步驟c中,SNMP代理根據(jù)該參數(shù),對查詢結果進行排序,并將排序后的結果存儲在查詢結果描述表和查詢結果記錄表中。
15.如權利要求9-13任一項所述的SNMP通信方法,其進一步包括SNMP代理在預定的時間內檢查SNMP管理站是否對某一查詢結果進行操作的步驟,以及如果檢查到SNMP管理站沒有對該查詢結果進行操作時,將查詢結果清除的步驟。
16.如權利要求10-13任一項所述的SNMP通信方法,其進一步包括SNMP管理站針對一與查詢相對應的傳輸事務ID,發(fā)送請求包給SNMP代理,請求清除該查詢結果的步驟。
全文摘要
本發(fā)明提供一種SNMP通信系統(tǒng)和方法。該SNMP通信系統(tǒng)包括一SNMP管理站,一SNMP代理,以及被管設備。SNMP管理站發(fā)送查詢條件或設置條件給SNMP代理,SNMP代理操作至相應的被管設備,被管設備根據(jù)SNMP管理站和被管設備預先確定的接口,解析該查詢條件或設置條件,執(zhí)行相應的查詢或設置操作。
文檔編號H04L29/06GK1859216SQ20061006639
公開日2006年11月8日 申請日期2006年4月5日 優(yōu)先權日2006年4月5日
發(fā)明者黃亞平 申請人:華為技術有限公司