專利名稱:模擬snmp網元及用該網元進行網管系統測試的方法
技術領域:
本發明涉及電信領域電信網絡管理系統,更具體地涉及模擬SNMP網元進行網管系統測試的方法。
背景技術:
TMN規定網絡管理領域包括五大功能1、配置管理;2、告警管理;3、性能管理;4、安全管理;5、帳務管理。目前網管系統中常用的標準通訊協議主要分為SNMP和CMIP兩種,尤其是SNMP協議,以其開發周期短,協議實現簡單的優勢,已經逐漸成為網絡管理的事實標準協議。
SNMP協議網管系統采用Manager(管理)/Agent(代理)架構,其中后臺網管作為Manager,前臺網元作為Agent,后臺網管和前臺網元通過SNMP協議通信。每個前臺網元都有一個獨立的IP地址,以UDP傳輸協議來發送和接收SNMP消息,前臺網元通過SNMP協議中定義的Trap消息發送告警或者告警恢復到后臺網管。
前臺網元啟動后在161端口啟動SNMP監聽線程,接收后臺網管發來的SNMP請求。前臺網元將Trap消息發往后臺網管的162端口。
前臺網元通過MIB向后臺網管提供接口,就是Agent包含的、并且能夠被Manager進程查詢和設置信息的集合。前后臺以文件的方式來確定MIB接口,根據MIB文件互相獨立開發,編碼結束后進行前后臺聯調。
目前前后臺聯調必須等前臺網元完成某個MIB接口功能后,后臺網管才能開始調試工作,另外告警功能需要等待前臺網元主動上報才能進行調試,同時前臺網元環境是比較緊缺的并且非常昂貴的,一般來說無法組織數量眾多的前臺網元對后臺網管系統進行壓力和性能測試。
為了避免前后臺聯調工作必須等待前臺網元完成MIB接口后才能開始的情況,一般采用模擬網元來解決這個問題,在計算機上模擬一個前臺網元,即根據前臺的MIB接口模擬一個代理。模擬網元可以給后臺網管提供一個可以用于MIB接口調試的環境。
但是目前開發的模擬網元一般都有如下的缺點,只能用于MIB接口調試,即只能被動接收后臺網管發來的SNMP操作消息,然后返回命令執行情況,但是不能模擬前臺網元主動上報Trap消息,即使能夠模擬Trap消息上報過程,也只能按照用戶配置的規則,周期性地發送Trap消息,而真實網元隨地機發送告警及告警恢復消息,所以不能模擬真實網元的告警處理過程。
目前開發的模擬網元還有一個比較大的缺陷,由于前臺網元使用IP地址唯一標識,所以在一臺計算機上只能模擬一個前臺網元設備,然而后臺網管需要管理數量眾多的前臺網元設備來進行壓力測試,那么需要模擬多少個前臺網元就需要多少臺計算機,這在實際的測試環境中一般也是無法滿足的。
發明內容
本發明所要解決的技術問題在于提供一種模擬SNMP網元及用該網元進行網管系統測試的方法,通過用一臺計算機模擬多個前臺網元設備,解決在SNMP網管前后臺聯調和系統測試階段的一些問題,使得測試成本大大降低,同時也可以減少后臺網管等待聯調的時間。
本發明中的模擬SNMP網元,包括配置參數模塊、代理模塊、順序Trap(陷阱)產生模塊和隨機Trap產生模塊,其中,代理模塊中包括一個主代理和多個其他代理;所述配置參數模塊在模擬網元啟動過程中完成從配置文件中讀取模擬網元各種配置參數的操作,并將這些配置數據加載到內存中供其它模塊使用;所述代理模塊在不同的端口啟動SNMP監聽線程,接收發來的SNMP請求,主代理還負責轉發對其它代理的訪問請求,并把其它代理的返回消息轉發到后臺網管;所述順序Trap產生模塊根據用戶在客戶端中配置的信息,按照代理、告警類型、綁定值的三層循環方式產生并順序地向后臺網管發送Trap消息;所述隨機Trap產生模塊隨機確定發送告警的代理、告警類型、以及綁定值等參數。
本發明中的利用模擬SNMP網元進行網管系統測試的方法,包括以下步驟(a)模擬網元啟動時根據模擬網元配置文件進行初始化;(b)根據需要配置模擬的代理數、每個代理啟動時監聽的端口號以及模擬發送告警的參數和規則;(c)根據配置信息在不同的端口啟動多個SNMP監聽線程;(d)SNMP監聽線程處理接收到的SNMP請求消息,向后臺網管返回命令執行結果;(e)以順序發送的方式上報Trap消息到后臺網管,調試后臺網管告警處理功能;
(f)以隨機發送的方式上報Trap消息到后臺網管,模擬前臺網元的真實告警處理過程。
使用本發明,可以在實驗室中通過模擬大規模網元,實現了對后臺網管的壓力和性能測試,測試成本大大降低,同時也減少后臺網管等待聯調的時間。同時由于可以模擬網元主動上報Trap消息,可以更真實地模擬網元。
圖1為模擬網元總體框圖;圖2為模擬網元處理SNMP消息的流程圖;圖3為模擬網元按照順序發送的方式上報Trap消息的流程圖;圖4為模擬網元按照隨機發送的方式上報Trap消息的流程圖。
具體實施例方式
下面以基于IEEE P802.16-REVd標準中WirelessMAN OFDM框架的點對多點固定無線接入產品——M35網元的模擬網元為例,結合附圖對本發明進行詳細介紹。
參見圖1所示模擬網元總體框圖,模擬網元包括四個模塊,其中,配置參數模塊在模擬網元啟動過程中完成模擬網元各種配置參數的讀取,并將這些配置數據保存到內存中供其它模塊使用。代理模塊在不同的端口啟動SNMP監聽線程,接收發來的SNMP請求,主代理還負責轉發對其它代理的訪問請求,并把其它代理的返回消息轉發到后臺網管。順序Trap模擬發送模塊根據用戶在客戶端中配置的信息,按照代理、告警類型、綁定值的三層循環方式順序地向后臺網管發送Trap消息。不同代理的Trap消息通過第二個綁定值來區分,如果是主代理發送的Trap消息,則第二個綁定值是模擬網元的IP地址,如果不是主代理發送的Trap消息,則第二個綁定值是ipaddress@代理端口號。隨機Trap產生模塊隨機確定發送告警的代理、告警類型、以及綁定值等參數,與順序方式一樣,不同代理的Trap消息通過第二個綁定值來區分。
利用圖1所示的模擬SNMP網元進行網管系統測試的方法,包括以下步驟(a)模擬網元啟動時根據模擬網元配置文件進行初始化;(b)用戶根據需要配置模擬的代理數、每個代理啟動時監聽的端口號以及模擬發送告警的參數和規則;(用戶設置的模擬告警發送參數和規則應用于所有的代理)(c)根據配置信息在不同的端口啟動多個SNMP監聽線程,模擬多個網元代理;
(d)SNMP監聽線程處理接收到的SNMP請求消息,向后臺網管返回命令執行結果;(e)以順序發送的方式上報Trap消息到后臺網管,調試后臺網管告警處理功能;(f)以隨機發送的方式上報Trap消息到后臺網管,模擬前臺網元的真實告警處理過程。
在上述方法中,步驟(a)包括以下內容(a1)在模擬網元啟動時讀取模擬網元配置文件;(a2)獲取該類型網元所定義的告警類型、告警綁定值、綁定值取值范圍等相關的參數;(a3)獲取用戶設置的和代理相關的參數,包括需要模擬的代理數、每個代理啟動時監聽的端口號;(a4)獲取用戶設置的和告警相關的參數,包括模擬發送的告警類型、每種告警設置的告警產生概率、綁定值的取值范圍以及綁定值的變化步長;(a5)獲取用戶設置的告警發送規則參數,包括是順序發送還是隨機發送、是有限次發送還是循環發送、發送次數、告警發送時間間隔。對于順序發送還包括是固定時間間隔還是隨機時間間隔以及是按照選中的告警類型順序模擬各種告警類型還是隨機模擬各種告警類型。
步驟(b)包括以下內容(b1)根據從步驟(a)中獲取到的需要模擬的代理數、代理啟動時監聽的端口號、待發送的告警類型、每種告警類型設置的告警產生概率,以及設置的綁定值取值范圍、綁定值變化步長,對客戶端的代理列表、告警類型列表以及綁定值列表初始化,實現用戶所設置參數的自動加載;(b2)用戶通過客戶端,根據需要可以修改步驟(b1)中加載的參數;但用戶設置的參數需要滿足步驟(a2)中獲取的有關該類型網元的規定;(b3)根據從用戶設置的和告警相關的參數中獲取到的是順序發送還是隨機發送、是有限次發送還是循環發送以及發送次數對發送規則的客戶端進行初始化,實現用戶所設置發送規則的自動加載;(b4)用戶通過客戶端,根據需修改步驟(b3)加載的發送規則,選擇順序發送還是隨機發送、有限次發送還是循環發送;其中有限次發送需要配置發送次數;用戶可以設置告警發送的時間間隔;對于順序發送,還包括是固定的時間間隔還是隨機的時間間隔,以及是順序的告警類型還是隨機的告警類型;如果是順序的告警類型,則和綁定值中的循環順序以及告警選擇器中的告警類型順序有關,如果是隨機的告警類型,則和這些配置中的順序信息無關,但是隨機發送的Trap消息也需要滿足選中的告警類型以及配置的綁定值信息;(b5)告警發送參數和規則配置好后,保存到網元配置文件中。
步驟(c)主要是根據用戶在步驟(b)設置的參數啟動SNMP監聽線程來模擬多個網元代理;系統默認會在161端口啟動一個SNMP監聽線程。這不需要在配置文件中配置。根據(b1)中設置的模擬網元數及每個網元啟動的端口號在對應的端口上啟動一個SNMP消息監聽線程。
步驟(d)的內容如圖2所示,包括(d1)模擬網元在多個端口分別啟動代理進程,每個代理進程互相獨立接收SNMP消息;(d2)收到SNMP請求消息后,首先需要判斷監聽的端口號,如果不是161,進一步判斷團體字(即Community字段)是否正確,如果正確,則根據請求的類型從數據庫中讀取相應代理的對應信息,然后將信息打包成SNMP包返回后臺網管;(d3)如果監聽端口是161,則進一步判斷團體字,即Community字段,是否包含@字符;如果包含@字符,認為這是一個需要轉發的SNMP消息。此時Community字段的格式為Community@port,其中Community為網元的團體字,port為端口號,此時主代理將SNMP消息轉發到端口號為port的代理,然后接收端口號為port的代理的返回消息并轉發給后臺網管系統;如果不包含@字符,就是針對本代理的訪問,主代理從數據庫中獲取和161端口相關的數據返回后臺網管系統。
模擬網元中的每個代理都有一份獨立的配置數據,保存在數據庫中,因為所有的代理的數據庫表結構是一樣的,所以保存在同一張表中,通過端口號來區分數據屬于哪個代理。
步驟(e)的內容如圖3所示,包括(e1)用戶從代理列表中選擇需要模擬發送Trap的代理;(e2)用戶從告警類型列表中選擇需要模擬發送的Trap;(e3)用戶設置綁定值的取值范圍及變化步長;(e4)設置模擬Trap發送時間間隔、間隔方式、告警類型發送次序;(e5)將用戶的配置信息保存成文件,以便可以通過加載配置文件來初始化Trap上報配置的客戶端;(e6)單擊發送按鈕,啟動一個順序告警產生線程;(e7)按照優先代理、然后告警類型、再綁定值的三層循環方式順序發送承載告警信息的Trap消息。
Trap消息的第二個綁定值攜帶代理的IP地址,由于本模擬網元程序中所有代理的IP地址都相同,所以如果端口號是161的代理,Trap消息的第二個綁定值的格式為ipaddress,否則為ipaddress@port,其中ipaddress為代理的IP地址,port是代理的端口號。
后臺網管收到模擬網元發來的Trap消息,解析第二個綁定值,如果其中不包含@字符,表明是161端口代理發來的,將收到的Trap消息的告警源設置為端口號為161的代理。如果包含@字符,需要將第二個綁定值中的ipaddress和port都解析出來。將收到的Trap消息的告警源設置為端口號為port的代理。
步驟(f)的內容如圖4所示,包括(f1)如果用戶選擇的發送方式是隨機發送,則啟動一個隨機告警產生線程;(f2)獲取用戶設置的隨機告警配置信息,包括告警類型、告警發生概率、綁定值和綁定值變化范圍信息并記錄到一個全局變量中,并為每個代理生成一個已發送告警信息列表;(f3)如果用戶設置為循環發送或已發送告警數不大于設置的發送次數,則產生一個最大值為代理個數的隨機數i,即本次要處理第i個代理;然后讓線程處于sleep狀態,其時間長短為一個隨機數,最大值為用戶設置的告警發送時間間隔;如果當前所有已發送告警數大于用戶設置的有限次發送次數,則退出循環;(f4)當發送時間到的時候,產生一個最大值為告警類型個數的隨機數j,即本次要處理第j種告警,再產生一個最大值為1的隨機數r,如果r小于第j種告警的告警發生概率,則轉(f3);(f5)檢查第i個代理的已發送告警信息列表,如果不包含第j種告警,表明沒有發送過此類型告警,那么產生一條告警上報后臺網管,承載告警信息的Trap消息的第二個參數格式見步驟(e)的內容介紹;同時在已發送告警信息列表中記錄下此條告警。如果第i個代理的已發送告警信息列表包含第j種告警,表明發送過此類型告警,那么發送告警恢復到后臺網管,承載告警恢復信息的Trap消息的第二個參數格式見步驟(e)的內容介紹,同時從第i個代理的已發送告警信息列表中刪除第j種告警。
(f6)已發送告警數加1,轉(f3)。
權利要求
1.一種模擬SNMP網元,包括配置參數模塊、代理模塊、順序陷阱產生模塊和隨機陷阱產生模塊,其中,代理模塊中包括一個主代理和多個其他代理;所述配置參數模塊在模擬網元啟動過程中完成從配置文件中讀取模擬網元各種配置參數的操作,并將這些配置數據加載到內存中供其它模塊使用;所述代理模塊在不同的端口啟動SNMP監聽線程,接收發來的SNMP請求,主代理還負責轉發對其它代理的訪問請求,并把其它代理的返回消息轉發到后臺網管;所述順序陷阱產生模塊根據用戶在客戶端中配置的信息,按照代理、告警類型、綁定值的三層循環方式產生并順序地向后臺網管發送陷阱消息;所述隨機陷阱產生模塊隨機確定發送告警的代理、告警類型、以及綁定值。
2.一種利用模擬SNMP網元進行網管系統測試的方法,可在單機上模擬多個前臺網元,同時可以模擬真實網元的告警處理過程,包括以下步驟(a)模擬網元啟動時根據模擬網元配置文件進行初始化;(b)根據需要配置模擬的代理數、每個代理啟動時監聽的端口號以及模擬發送告警的參數和規則;(c)根據配置信息在不同的端口啟動多個SNMP監聽線程;(d)SNMP監聽線程處理接收到的SNMP請求消息,向后臺網管返回命令執行結果;(e)以順序發送的方式上報陷阱消息到后臺網管,調試后臺網管告警處理功能;(f)以隨機發送的方式上報陷阱消息到后臺網管,模擬前臺網元的真實告警處理過程。
3.權利要求2所述的利用模擬SNMP網元進行網管系統測試的方法,其特征在于,所述步驟(a)包括(a1)讀取模擬網元配置文件;(a2)獲取該類型網元所定義的告警類型、告警綁定值、綁定值取值范圍;(a3)獲取用戶設置的和代理相關的參數,包括需要模擬的代理數、每個代理啟動時監聽的端口號;(a4)獲取用戶設置的和告警相關的參數,包括模擬發送的告警類型、每種告警設置的告警產生概率、綁定值的取值范圍以及綁定值的變化步長;(a5)獲取用戶設置的告警發送規則參數,包括是順序發送還是隨機發送、是有限次發送還是循環發送、發送次數、告警發送時間間隔。
4.權利要求2所述的利用模擬SNMP網元進行網管系統測試的方法,其特征在于,所述步驟(b)包括(b1)根據從步驟(a)中獲取到的需要模擬的代理數、代理啟動時監聽的端口號、待發送的告警類型、每種告警類型設置的告警產生概率,以及設置的綁定值取值范圍、綁定值變化步長,對客戶端的代理列表、告警類型列表以及綁定值列表初始化,實現用戶所設置參數的自動加載;(b2)用戶通過客戶端,根據需要修改步驟(b1)中加載的參數;(b3)根據從用戶設置的和告警相關的參數中獲取到的是順序發送還是隨機發送、是有限次發送還是循環發送以及發送次數對發送規則的客戶端進行初始化,實現用戶所設置發送規則的自動加載;(b4)用戶通過客戶端,根據需修改步驟(b3)加載的發送規則,選擇順序發送還是隨機發送、有限次發送還是循環發送;(b5)告警發送參數和規則配置好后,保存到網元配置文件中。
5.權利要求2所述的利用模擬SNMP網元進行網管系統測試的方法,其特征在于,所述步驟(c)是指根據步驟(b)中設置的模擬網元數及每個網元啟動的端口號在對應的端口上啟動一個SNMP消息監聽線程。
6.權利要求2所述的利用模擬SNMP網元進行網管系統測試的方法,其特征在于,所述步驟(d)包括(d1)模擬網元在多個端口分別啟動代理進程,每個代理進程互相獨立接收SNMP消息;(d2)收到SNMP請求消息后,首先需要判斷監聽的端口號,如果不是161,進一步判斷團體字是否正確,如果正確,則根據請求的類型從數據庫中讀取相應代理的對應信息,然后將信息打包成SNMP包返回后臺網管;(d3)如果監聽端口是161,則進一步判斷團體字是否包含@字符;如果包含@字符,則解釋團體字,主代理負責將SNMP請求消息轉發到團體字中包含的端口號的代理,然后將該代理返回的消息返回后臺網管系統;如果不包含@字符,主代理從數據庫中獲取和161端口相關的數據返回后臺網管系統。
7.權利要求2所述的利用模擬SNMP網元進行網管系統測試的方法,其特征在于,所述步驟(e)包括(e1)用戶從代理列表中選擇需要模擬發送陷阱的代理;(e2)用戶從告警類型列表中選擇需要模擬發送的陷阱;(e3)用戶設置綁定值的取值范圍及變化步長;(e4)設置模擬陷阱發送時間間隔、間隔方式、告警類型發送次序;(e5)將用戶的配置信息保存成文件;(e6)單擊發送按鈕,啟動一個順序告警產生線程;(e7)按照優先代理、然后告警類型、再綁定值的三層循環方式順序發送承載告警信息的陷阱消息。
8.權利要求2所述的利用模擬SNMP網元進行網管系統測試的方法,其特征在于,所述步驟(f)包括(f1)如果用戶選擇的發送方式是隨機發送,則啟動一個隨機告警產生線程;(f2)獲取用戶設置的隨機告警配置信息,包括告警類型、告警發生概率、綁定值和綁定值變化范圍信息并記錄到一個全局變量中,并為每個代理生成一個已發送告警信息列表;(f3)如果用戶設置為循環發送或已發送告警數不大于設置的發送次數,則產生一個最大值為代理個數的隨機數i,然后讓線程處于sleep狀態,其時間長短為一個隨機數,最大值為用戶設置的告警發送時間間隔;如果當前所有已發送告警數大于用戶設置的有限次發送次數,則退出循環;(f4)當發送時間到的時候,產生一個最大值為告警類型個數的隨機數j,再產生一個最大值為1的隨機數r,如果r小于第j種告警的告警發生概率,則轉(f3);(f5)檢查第i個代理的已發送告警信息列表,如果不包含第j種告警,產生一條告警上報后臺網管,同時在已發送告警信息列表中記錄下此條告警;如果第i個代理的已發送告警信息列表包含第j種告警,發送告警恢復到后臺網管,同時從第i個代理的已發送告警信息列表中刪除第j種告警;(f6)已發送告警數加1,轉(f3)。
全文摘要
一種模擬SNMP網元,包括配置參數模塊、代理模塊、順序陷阱產生模塊和隨機陷阱產生模塊;利用該網元進行網管系統測試的方法模擬網元啟動時根據配置文件初始化;配置模擬的代理數、每個代理啟動時監聽的端口號以及模擬發送告警的參數和規則;在不同的端口啟動多個SNMP監聽線程;SNMP監聽線程處理接收到的SNMP請求消息,向后臺網管返回命令執行結果;以順序發送的方式上報Trap消息到后臺網管,調試后臺網管告警處理功能;以隨機發送的方式上報Trap消息到后臺網管,模擬前臺網元的真實告警處理過程。使用本發明,可以在實驗室中通過模擬大規模網元,實現了對后臺網管的壓力和性能測試,也減少后臺網管等待聯調的時間。
文檔編號H04L12/26GK1992635SQ200510121369
公開日2007年7月4日 申請日期2005年12月27日 優先權日2005年12月27日
發明者翁在新, 馬麗, 蔣昕 申請人:中興通訊股份有限公司