專利名稱::在snmp交互中返回錯誤消息的方法和裝置的制作方法
技術領域:
:本發明屬于網絡管理領域,更具體地,涉及使用SNMP協議對網絡設備進行管理的方法和裝置。
背景技術:
:簡單網絡管理協議(SNMP)是目前應用最為廣泛的網絡管理協議,成為網絡管理的事實上的標準,幾乎所有的網絡設備生產廠家都實現了對SNMP的支持。如圖1所示,SNMP的網絡管理模型由如下4個部分組成1)管理站(ManagementStation),運行專門的網絡管理軟件,使用管理協議與管理節點上的SNMP代理通信,維護管理信息庫;2)管理協議(ManagementProtocol),管理協議用于管理工作站查詢和修改管理節點的狀態,管理節點可以使用管理協議向管理站點產生“陷阱(trap)”報告;3)管理節點(ManagementNode),運行SNMP代理程序(SNMPagent),維護一個本地數據庫,描述節點的狀態和歷史,并影響節點的運行;以及4)管理信息庫(ManagementInformationBase),每個站點使用一個或多個變量描述自己的狀態,這些變量稱為“對象(objects)”,所有的對象組成管理信息庫MIB(ManagementInformationBase)。如圖2所示,在管理站使用SNMP管理協議對管理節點進行管理的時候,一共有5種消息格式1)get-request操作,從代理進程處提取一個或多個參數值;2)get-next-request操作,從代理進程處提取一個或多個參數的下一個參數值;3)set-request操作,設置代理進程的一個或多個參數值;4)get-response操作,返回的一個或多個參數值。這個操作是由代理進程發出的。它是前面3個操作的響應操作;以及5)trap操作,代理進程主動發出的報文,通知管理進程有某些事情發生。當管理站向管理節點發出get-request、get-next-request、set-request請求消息時,管理節點會返回響應消息get-response。在get-response消息中,SNMP協議定義了如下錯誤碼error-statusINTEGER{noError(0),tooBig(1),noSuchName(2),badValue(3),readOnly(4),genErr(5),noAccess(6),wrongType(7),wrongLength(8),wrongEncoding(9),wrongValue(10),noCreation(11),inconsistentValue(12),resourceUnavailable(13),commitFailed(14),undoFailed(15),authorizationError(16),notWritable(17),inconsistentName(18)}這些錯誤碼都是用來描述SNMP協議本身的錯誤原因,如數據類型不對、數據不可寫等等;而不能得到在管理節點上真正的錯誤原因,如VPI超出范圍、VLAN不存在等等。根據返回的這些錯誤碼,用戶無法明白究竟在管理節點上出了什么錯誤,無法知道自己在操作上犯了什么錯誤。在實際使用中我們經常需要得到管理節點上更詳細更直接的錯誤原因,以提示用戶操作上的錯誤,而基于SNMP的返回消息中屏蔽了這些錯誤原因,大大降低了用戶友好性。因此,需要一種可以向管理站返回管理節點上錯誤消息的解決方案,能夠解決上述相關技術中的問題。
發明內容本發明的目的是為了克服上述現有技術的缺陷,提供一種可以向管理站返回管理節點上錯誤消息的方法,從而大大提高用戶友好性。根據本發明的一個方面,提供了一種在SNMP交互中返回錯誤消息的方法,該方法包括以下步驟步驟S302,在管理站向管理節點發送SNMP操作消息時,在SNMP操作消息中綁定變量;步驟S304,在管理節點返回對SNMP操作消息響應失敗的響應消息的情況下,在響應消息的變量中填寫錯誤原因消息;以及步驟S306,管理站接收到響應消息后,根據SNMP協議本身的錯誤碼判斷SNMP操作是否成功,在不成功的情況下,將變量中的錯誤原因消息提示給用戶。步驟S304還包括以下步驟在管理節點返回對SNMP操作消息響應失敗的響應消息的情況下,在響應消息的變量中填寫對應的錯誤碼。步驟S306還包括以下步驟管理站接收到響應消息后,根據SNMP協議本身的錯誤碼判斷SNMP操作是否成功,在不成功的情況下,將變量中的錯誤碼轉換為錯誤原因消息提示給用戶。SNMP操作消息包括從代理進程處提取一個或多個參數值的請求消息、從代理進程處提取一個或多個參數值的下一個參數值的請求消息、以及設置一個或多個參數值的請求消息中的至少一種;響應消息包括返回一個或多個參數值消息;以及變量是管理信息庫變量。根據本發明的另一個方面,提供了一種在SNMP交互中返回錯誤消息的裝置,包括綁定單元,用于在管理站向管理節點發送SNMP操作消息時,在SNMP操作消息中綁定變量;寫入錯誤單元,用于在管理節點返回對SNMP操作消息響應失敗的響應消息的情況下,在響應消息的錯誤變量中填寫錯誤原因消息或對應的錯誤碼;以及判斷及提示單元,用于管理站接收到響應消息后,根據SNMP協議本身的錯誤碼判斷SNMP操作是否成功,在不成功的情況下,將變量中的錯誤原因消息提示給用戶。判斷及提示單元還用于在判斷SNMP操作不成功的情況下,將變量中的錯誤碼轉換為錯誤原因消息提示給用戶。通過實施本發明,在SNMP返回出錯的同時也返回了錯誤消息,可以有效避免另外再獲取一次錯誤消息時被其他SNMP操作覆蓋錯誤原因消息。本發明的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發明而了解。本發明的目的和其他優點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中圖1是示出現有技術中的SNMP網絡管理模型示意圖;圖2是示出現有技術中的管理站與管理節點的消息交互示意圖;圖3是示出根據本發明的用于在SNMP交互中返回錯誤消息的方法的流程圖;圖4是示出根據本發明的用于在SNMP交互中返回錯誤消息的裝置的框圖;圖5是示出根據本發明第一實施例的在SNMP交互中返回錯誤消息的方法的流程圖;以及圖6是示出根據本發明第二實施例的在SNMP交互中返回錯誤消息的方法的流程圖。具體實施例方式下面將結合附圖來詳細說明本發明的實施例。圖3是示出根據本發明的用于在SNMP交互中返回錯誤消息的方法的流程圖。參照圖3,根據本發明的用于在SNMP交互中返回錯誤消息的方法包括以下步驟步驟S302,在管理站向管理節點發送SNMP操作消息時,在SNMP操作消息中綁定變量;步驟S304,在管理節點返回對SNMP操作消息響應失敗的響應消息的情況下,在響應消息的變量中填寫錯誤原因消息;以及步驟S306,管理站接收到響應消息后,根據SNMP協議本身的錯誤碼判斷SNMP操作是否成功,在不成功的情況下,將變量中的錯誤原因消息提示給用戶。步驟S304還包括以下步驟在管理節點返回對SNMP操作消息響應失敗的響應消息的情況下,在響應消息的變量中填寫對應的錯誤碼。步驟S306還包括以下步驟管理站接收到響應消息后,根據SNMP協議本身的錯誤碼判斷SNMP操作是否成功,在不成功的情況下,將變量中的錯誤碼轉換為錯誤原因消息提示給用戶。SNMP操作消息包括從代理進程處提取一個或多個參數值的請求消息、從代理進程處提取一個或多個參數值的下一個參數值的請求消息、以及設置一個或多個參數值的請求消息中的至少一種;響應消息包括返回一個或多個參數值消息;以及變量是管理信息庫變量。圖4是示出根據本發明的用于在SNMP交互中返回錯誤消息的裝置的框圖。參照圖4,根據本發明的用于在SNMP交互中返回錯誤消息的裝置400包括綁定單元402,用于在管理站向管理節點發送SNMP操作消息時,在SNMP操作消息中綁定變量;寫入錯誤單元404,用于在管理節點返回對SNMP操作消息響應失敗的響應消息的情況下,在響應消息的錯誤變量中填寫錯誤原因消息或對應的錯誤碼;以及判斷及提示單元406,用于在管理站接收到響應消息后,根據SNMP協議本身的錯誤碼判斷SNMP操作是否成功,在不成功的情況下,將變量中的錯誤原因消息提示給用戶。判斷及提示單元406還用于在判斷SNMP操作不成功的情況下,將變量中的錯誤碼轉換為錯誤原因消息提示給用戶。圖5是示出根據本發明第一實施例的在SNMP交互中返回錯誤消息的方法的流程圖。參照圖5,該實施例中的SNMP交互中返回錯誤消息的方法包括以下步驟步驟S502,在管理站向管理節點發出get-request、get-next-request、set-request請求的時候,綁定一個MIB量用來表示管理節點上的錯誤消息或錯誤碼;步驟S504,在管理節點返回get-response響應消息的時候,如果失敗,需要同時在這個響應消息的錯誤MIB量中填寫管理節點上真正的錯誤原因或對應的錯誤碼;以及步驟S506,管理站上得到get-response響應消息的時候,首先根據SNMP協議本身的錯誤碼判斷是否成功,如果失敗,將返回錯誤MIB量中的錯誤消息提示給用戶,或根據錯誤碼轉換為錯誤消息提示給用戶。圖6是示出根據本發明第二實施例的在SNMP交互中返回錯誤消息的方法的流程圖。參照圖6,該實施例中的SNMP交互中返回錯誤消息的方法包括以下步驟步驟S602,在MIB庫中定義一個只讀錯誤消息或錯誤碼MIB量,這是一個全局標量,所有操作共用該MIB量;步驟S604,根據管理節點操作中會出現的錯誤,定義需要的錯誤碼或錯誤消息;步驟S606,管理站發出SNMP請求,其中包含前面定義的錯誤消息或錯誤碼MIB量,即在get-request,get-next-request,set-request消息中增加錯誤消息或錯誤碼MIB量;步驟S608,管理節點在每次響應SNMP操作的時候,如果出錯,把錯誤消息填寫到這個錯誤消息或錯誤碼MIB量中返回,即出錯后在get-response消息的錯誤消息或錯誤碼MIB量中,返回錯誤消息或錯誤碼;以及步驟S610,管理站得到SNMP代理發出的響應消息后,先根據標準SNMP錯誤碼判斷是否成功,如果返回失敗,則從返回消息的錯誤消息或錯誤碼MIB量中得到錯誤消息,顯示給用戶。通過實施本發明,在SNMP返回出錯的同時也返回了錯誤消息,可以有效避免另外再獲取一次錯誤消息時被其他SNMP操作覆蓋錯誤原因消息。以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。權利要求1.一種在SNMP交互中返回錯誤消息的方法,其特征在于,包括以下步驟步驟S302,在管理站向管理節點發送SNMP操作消息時,在所述SNMP操作消息中綁定變量;步驟S304,在所述管理節點返回對所述SNMP操作消息響應失敗的響應消息的情況下,在所述響應消息的所述變量中填寫錯誤原因消息;以及步驟S306,所述管理站接收到所述響應消息后,根據SNMP協議本身的錯誤碼判斷所述SNMP操作是否成功,在不成功的情況下,將所述變量中的所述錯誤原因消息提示給用戶。2.根據權利要求1所述的返回錯誤消息的方法,其特征在于,所述步驟S304還包括以下步驟在所述管理節點返回對所述SNMP操作消息響應失敗的響應消息的情況下,在所述響應消息的所述變量中填寫對應的錯誤碼。3.根據權利要求2所述的返回錯誤消息的方法,其特征在于,所述步驟S306還包括以下步驟所述管理站接收到所述響應消息后,根據SNMP協議本身的錯誤碼判斷所述SNMP操作是否成功,在不成功的情況下,將所述變量中的所述錯誤碼轉換為所述錯誤原因消息提示給用戶。4.根據權利要求3所述的返回錯誤消息的方法,其特征在于,所述SNMP操作消息包括從代理進程處提取一個或多個參數值的請求消息、從所述代理進程處提取所述一個或多個參數值的下一個參數值的請求消息、以及設置所述一個或多個參數值的請求消息中的至少一種。5.根據權利要求4所述的返回錯誤消息的方法,其特征在于,所述響應消息包括返回所述一個或多個參數值消息。6.根據權利要求5所述的返回錯誤消息的方法,其特征在于,所述變量是管理信息庫變量。7.一種在SNMP交互中返回錯誤消息的裝置,其特征在于,包括綁定單元,用于在管理站向管理節點發送SNMP操作消息時,在所述SNMP操作消息中綁定變量;寫入錯誤單元,用于在所述管理節點返回對所述SNMP操作消息響應失敗的響應消息的情況下,在所述響應消息的錯誤變量中填寫錯誤原因消息或對應的錯誤碼;以及判斷及提示單元,用于在所述管理站接收到所述響應消息后,根據SNMP協議本身的錯誤碼判斷所述SNMP操作是否成功,在不成功的情況下,將所述變量中的所述錯誤原因消息提示給用戶。8.根據權利要求7所述的返回錯誤消息的裝置,其特征在于,所述判斷及提示單元還用于在判斷所述SNMP操作不成功的情況下,將所述變量中的所述錯誤碼轉換為所述錯誤原因消息提示給用戶。9.根據權利要求8所述的返回錯誤消息的裝置,其特征在于,所述SNMP操作消息包括從代理進程處提取一個或多個參數值的請求消息、從所述代理進程處提取所述一個或多個參數值的下一個參數值的請求消息、以及設置所述一個或多個參數值的請求消息中的至少一種。10.根據權利要求9所述的返回錯誤消息的裝置,其特征在于,所述響應消息包括返回所述一個或多個參數值消息。11.根據權利要求10所述的返回錯誤消息的裝置,其特征在于,所述變量是管理信息庫變量。全文摘要本發明披露了一種在SNMP交互中返回錯誤消息的方法和裝置,該方法包括以下步驟步驟S302,在管理站向管理節點發送SNMP操作消息時,在SNMP操作消息中綁定變量;步驟S304,在管理節點返回對SNMP操作消息響應失敗的響應消息的情況下,在響應消息的變量中填寫錯誤原因消息;以及步驟S306,管理站接收到響應消息后,根據SNMP協議本身的錯誤碼判斷SNMP操作是否成功,在不成功的情況下,將變量中的錯誤原因消息提示給用戶。本發明可以有效避免另外再獲取一次錯誤消息時被其他SNMP操作覆蓋錯誤原因消息。文檔編號H04L12/24GK101072128SQ200710112460公開日2007年11月14日申請日期2007年6月26日優先權日2007年6月26日發明者萬光華申請人:中興通訊股份有限公司