一種基於簡單網絡管理協議的Trap確認方法
2023-05-10 11:24:11 2
專利名稱:一種基於簡單網絡管理協議的Trap確認方法
技術領域:
本發明涉及一種在SNMP v 1 /v2c管理框架中實現Trap確認的方法,尤 其涉及以SNMP為管理接口的各種設備的告警、消息管理領域。
背景技術:
SNMP(簡單網絡管理協議)是網絡管理中基於UDP報文的一種管理協 議,用於SNMP Manager (以下簡稱管理者)和SNMP Agent (以下簡稱代 理)之間進行通訊、管理才喿作。在SNMP v 1和v2c的版本中,代理主動發 給管理者的消息稱為Trap (陷阱)。
Trap—個顯著特點是代理髮送Trap時是不需要管理者返回確認消息的。 加之SNMP又是基於UDP (用戶數據報協議),是無連接的,因此管理者 比較容易丟掉Trap,使得Trap傳遞消息的可靠性大大降低。
在由管理者和代理組成的網管系統中,Trap的這個缺點成為了網管系統 的薄弱環節,降低了網管系統故障管理功能的可用性和可靠性。
發明內容
本發明所要解決的技術問題是提供一種基於簡單網絡管理協議的Trap 確認機制,解決在SNMPvl/v2c管理框架中Trap消息沒有確認機制而導致 的消息傳遞可靠性差的問題。
為了解決上述技術問題,本發明提供了 一種基於簡單網絡管理協議的 Trap確認方法,所述簡單網絡管理協議以下簡稱SNMP,包括以下步驟
(a) SNMP代理在Trap消息的Trap團體名中加入是否需要確認Trap 的關鍵字,用標準的SNMP Trap發送流程發送Trap消息給SNMP管理者;
(b )所述SNMP管理者收到Trap消息後,檢查Trap團體名字符串中
是否包含需要確認Trap的關鍵字,如果是,則設置所述SNMP代理上的管 理信息庫變量值;
(C)所述SNMP代理檢測其上管理信息庫變量的設置無誤,則認為所 述SNMP管理者已確認收到該Trap消息,Trap發送流程結束。
進一步地,上述方法還可具有以下特點在所述步驟(a)前,所述SNMP 代理判斷該Trap消息是否需要確認,如果是,執行步驟(a),否則,進行 普通的Trap發送流程。
進一步地,上述方法還可具有以下特點在所述步驟(a)中,所述Trap 團體名中還包括Trap消息的消息號,在所述步驟(b)中,所述SNMP管理 者將所述管理信息庫變量值設為該Trap消息的消息號。
進一步地,上述方法還可具有以下特點在所述步驟(a)中,所述SNMP 代理構造的新的團體名字符串格式如下實際的community +@confirm",其中,"@eventld="用於標識Trap消息號屬性eventld"即為Trap消息號,"@confirm"是Trap是否需要確認的關 鍵字;在所述步驟(b)中,所述SNMP管理者檢查Trap團體名字符串中是 否包含關鍵字"@confirm"。
進一步地,上述方法還可具有以下特點所述SNMP代理上的管理信 息庫變量值為confirmedEventId。
進一步地,上述方法還可具有以下特點在所述步驟(b)中,所述SNMP 管理者收到Trap後,若需要對該Trap消息進行確認,則從Trap團體名字符 串中提取eventld值即Trap消息號,向所述SNMP代理髮送SNMP設置消 息,將confirmedEventId值設置為Trap消息號;在所述步驟(c )中,所述 SNMP代理檢測其上管理信息庫變量的設置無誤是指,所述SNMP代理判斷 該confirmedEventId值與其發出過的Trap消息號是否相匹配,如果是,則認 為該Trap消息已被確認收到,否則返回SNMP設置失敗消息。
進一步地,上述方法還可具有以下特點在所述步驟(c)中,如果所
述SNMP代理在^見定時間內沒有收到所述SNMP管理者的確認消息,則重 發該Trap消息,若重發的次數達到^L定的次數後,所述SNMP代理結束此 次Trap發送流程。
進一步地,上述方法還可具有以下特點所述方法適用於SNMPvl/v2c。
採用本發明所述方法,與現有技術相比,彌補了 SNMPvl/v2c管理框架 中Trap可靠性方面的不足,達到了 Trap消息可以根據需要進行確認的效果, 節省了網管系統提高告警可靠性的成本,大大提高了 Trap消息接收的可靠性。
圖l是SNMPvl/v2c管理者和代理間的消息; 圖2是本實施例的Trap確認機制順序圖。
具體實施例方式
本實施例的核心方法是通過在Trap攜帶的團體名(community)中加 入是否需要確認Trap的關鍵字,管理者收到Trap後,通過檢查團體名 (community)字符串中的關鍵字決定是否對Trap進行確認。確認的方法 是管理者通過設置代理上的某個特定變量從而通知代理已經收到該Trap。
下面對技術方案的具體實施作進一步的詳細描述
1)代理4務改現有Trap團體名(community)的構造方法
在駐留SNMPvl/v2c代理的網元上需要修改Trap團體名的構造方法, 使團體名成為複合的團體名,包含是否需要進行Trap確認的關鍵字。比如, 新的團體名可以是
實際的community + '@eventld='+ eventld + ,@confirm,
這裡"@eventld="是用於標識Trap消息號屬性的關鍵字,即通過該字符串標識"@eventld="後面跟的是Trap消息號,可以用於管理者確認消 息時使用,其後的"eventld"即為Trap消息號;
"@confirm,,則是Trap是否需要確認的關鍵字,如果Trap無需管理者 確認,則可以不帶該關^t字。
複合團體名的實例如public@eventld=1022@conflrm。
2 )代理增加對Trap確認的MIB (管理信息庫)變量
為了使管理者收到Trap後能夠通知代理"我已經收到Trap了",需要 在代理中增加一個可以設置的MIB變量,比如,confirmedEventId,用於標 識已經確認的事件ID。管理者向代理髮出對此變量的SNMPSet消息,通過 代理對該變量進行設置,代理將管理者設置的confirmedEventId值與之前產 生的Trap消息號進行比較,如果發現能夠找到匹配的,則認為是對相應trap 的確認,即該事件ID對應的Trap已經被管理者收到,並進行了確認,否則 返回標準的SNMP設置失敗消息。
3) 管理者增加對Trap團體名關鍵字的檢查
管理者在收到Trap的處理流程中需要增加對Trap團體名關鍵字的檢查, 以判斷是否需要對Trap進行確認。
判斷的方法就是檢查團體名中是否有關鍵字'(^confirm',如果不包含該 字符串,則說明該Trap不需要進行確認,則按不需要確認的普通Trap處理 即可,否則,則需要再從團體名中提取到eventld,並把代理上的 confirmedEventId量設置成為團體名字符串中eventld的值。這樣代理就知道 管理者已經收到並確認了該Trap,從而可以結束該Trap的發送流程。
4) 管理者、代理對於不需要確認Trap的處理
對於不需要確認的Trap,則代理髮送Trap時無需構造複合的團體名。 同樣,管理者檢查到Trap不需要進行確認時,則不需要再向代理髮任何消 息,該處理流程與普通的Trap處理是完全一樣的。
5 )如果管理者不具備確認Trap的確認處理
如果管理者不具備確認Trap的確認處理,則代理就不會收到Trap確認 的消息。因此,建議代理在等待管理者確認Trap時,可以採用超時和重試 機制。即當在規定時間沒有收到管理者的確認操作後,代理再重發一次繼續 等待確認,直到重發的次數達到規定的次數後,代理結束Trap發送過程。
本實施例所述Trap確:f人方法如下(參看圖1和圖2):
步驟IIO, SNMP代理判斷該Trap消息是否需要進行確認,如果是,執 行下一步,否則,按普通Trap流程處理;
步驟l20, SNMP代理在發送Trap前在Trap團體名中加入是否需要確 認Trap的關鍵字;
步驟130, SNMP代理採用標準的SNMP Trap發送流程發送Trap給 SNMP管理者;
步驟140, SNMP管理者採用標準的SNMP Trap接收流程接收Trap, SNMP管理者檢查Trap的團體名字符串中是否包含需要確認Trap的關鍵字, 如果是,執行下一步,否則,按普通Trap流程處理;
步驟150, SNMP管理者設置SNMP代理上的管理信息庫變量,從而通 知SNMP代理已經收到該Trap;
步驟160, SNMP代理檢測該管理信息庫變量的設置無誤,則認為該Trap 被確認,該帶確認的Trap發送流程結束。
本實施例通過巧妙的使用了 Trap報文中的團體名(community )域信息, 配合簡單的SNMP命令,孑艮容易的建立起了 Trap的確認機制,彌補了 SNMPvl/v2c管理框架中Trap可靠性方面的不足。
通過以上對管理者、代理相應的改造,即實現了基於SNMPvl/v2c管理 框架的Trap確認機制,從而使Trap消息的可靠性得到有效提高。
權利要求
1、一種基於簡單網絡管理協議的Trap確認方法,所述簡單網絡管理協議以下簡稱SNMP,包括以下步驟(a)SNMP代理在Trap消息的Trap團體名中加入是否需要確認Trap的關鍵字,用標準的SNMP Trap發送流程發送Trap消息給SNMP管理者;(b)所述SNMP管理者收到Trap消息後,檢查Trap團體名字符串中是否包含需要確認Trap的關鍵字,如果是,則設置所述SNMP代理上的管理信息庫變量值;(c)所述SNMP代理檢測其上管理信息庫變量的設置無誤,則認為所述SNMP管理者已確認收到該Trap消息,Trap發送流程結束。
2、 如權利要求l所述的方法,其特徵在於,在所述步驟(a)前,所述 SNMP代理判斷該Trap消息是否需要確認,如果是,執行步驟(a),否貝'J, 進行普通的Trap發送流程。
3、 如權利要求1或2所述的方法,其特徵在於,在所述步驟(a)中, 所述Trap團體名中還包括Trap消息的消息號,在所述步驟(b)中,所述 SNMP管理者將所述管理信息庫變量值設為該Trap消息的消息號。
4、 如權利要求3所述的方法,其特徵在於,在所述步驟(a)中,所述 SNMP代理構造的新的團體名字符串格式如下實際的community +@confirm,,其中,"@eventld="用於標識Trap消息號屬性的關鍵字,即通過該字eventld"即為 Trap消息號,"@confirm"是Trap是否需要確認的關鍵字;在所述步驟(b)中,所述SNMP管理者檢查Trap團體名字符串中是否 包含關鍵字" confirm"。
5、 如權利要求4所述的方法,其特徵在於,所述SNMP代理上的管理 信息庫變量值為confirmedEventld。
6、 如權利要求5所述的方法,其特徵在於,在所述步驟(b)中,所述 SNMP管理者收到Trap後,若需要對該Trap消息進行確認,則從Trap團體 名字符串中提取eventld值即Trap消息號,向所述SNMP代理髮送SNMP 設置消息,將confirmedEventId值設置為Trap消息號;在所述步驟(c )中, 所述SNMP代理檢測其上管理信息庫變量的設置無誤是指,所述SNMP代 理判斷該confirmedEventld值與其發出過的Trap消息號是否相匹配,如果是, 則認為該Trap消息已被確認收到,否則返回SNMP設置失敗消息。
7、 如權利要求1所述的方法,其特徵在於,在所述步驟(c)中,如果 所述SNMP代理在規定時間內沒有收到所述SNMP管理者的確認消息,則 重發該Trap消息,若重發的次數達到規定的次數後,所述SNMP代理結束 此次Trap發送流程。
8、 如權利要求1所述的方法,其特徵在於,所述方法適用於SNMP vl/v2c。
全文摘要
本發明公開了一種基於SNMP的Trap確認方法,包括以下步驟(a)SNMP代理在Trap消息的Trap團體名中加入是否需要確認Trap的關鍵字,用標準的SNMP Trap發送流程發送Trap消息給SNMP管理者;(b)所述SNMP管理者收到Trap消息後,檢查Trap團體名字符串中是否包含需要確認Trap的關鍵字,如果是,則設置所述SNMP代理上的管理信息庫變量值;(c)所述SNMP代理檢測其上管理信息庫變量的設置無誤,認為所述SNMP管理者已確認收到該Trap消息,Trap發送流程結束。本方法節省了網管系統提高告警可靠性的成本,大大提高了Trap消息接收的可靠性。
文檔編號H04L12/24GK101192984SQ20061016073
公開日2008年6月4日 申請日期2006年11月29日 優先權日2006年11月29日
發明者蘇春山 申請人:中興通訊股份有限公司