一種模擬多個網元的陷阱報文的方法及系統的制作方法
【技術領域】
[0001]本發明屬于通信技術領域,尤其涉及一種模擬多個網元的陷阱報文的方法及系統。
【背景技術】
[0002]SNMP (Simple Network Management Protocol,簡單網絡管理協議)是最早提出的網絡管理協議之一,由于其簡單性,它一推出便得到了廣泛的應用和支持。目前,SNMP已成為網絡管理領域中的工作標準,大多數網絡管理系統和平臺都是基于SNMP協議來實現的。
[0003]隨著SNMP協議的廣泛應用,那么一個NSM(Network Management System,網絡管理系統)管理的網元成千上萬,甚至數十萬,那么在現網應用環境中,這些網元隨時隨刻地在產生告警信息,并通過Trap消息發送給匪S,匪S這時必須具備同時處理數十萬網元上報的Trap消息的能力,因此,為了保證網絡管理的順利進行,匪S再投入使用時,必須對其性能進行測試。在匪S與被管網元上的agent (代理)進行聯調階段,往往難以部署一個大規模的測試環境,除了資金、場地等問題還存在實際網絡的連接關系錯綜復雜等問題。因此,目前市場上在聯調階段開發出一套模擬仿真測試工具來代替現實環境中各種各樣的網元實現對網絡管理系統的性能測試。
[0004]但是由于SNMP協議屬于應用層協議,而根據TCP/IP (Transmiss1n ControlProtocol/Internet Protocol,傳輸控制協議/因特網互聯協議)網絡協議桟機制,傳輸層及其以下的機制由內核提供,應用層由用戶進程提供,而該模擬仿真工具運行在一臺PC (Personal Computer,個人計算機)機上,故網絡層的IP頭是由內核的TCP/IP網絡協議棧組裝的,所發送的Snmp trap (被管理設備上報的陷阱報文,即被管理設備發生故障或變更時的主動通知)消息中的IP地址都相同,那么該模擬仿真工具雖然可以模擬網元發送Snmp trap消息,但也只能模擬一個網元發送Snmp trap消息,而不能同時模擬多個網元向網絡管理系統發送Snmp trap消息。因此,目前的模擬仿真工具有很大的局限性,無法模擬真實的測試環境。針對此問題,傳統的解決方法是利用Snmp trap報文格式中的變量綁定對,定義私有定義報文格式,如規定Snmp trap報文中的第二個變量綁定對表示網元的IP地址,匪S收取此消息后,解析第二個變量綁定對,得到網元的IP地址,再按照處理流程處理。此方法也有一定的局限性,本質還是一個網元的Snmp trap消息,無法真正完整地模擬多個網元收發SNMP消息的流程。
[0005]綜上,現有技術中仍然存在無法真正模擬多個網元對網絡管理系統進行測試的缺陷。
【發明內容】
[0006]本發明實施例的目的在于提供一種模擬多個網元的陷阱報文的方法及系統,旨在解決現有技術中存在的無法真正模擬多個網元對網絡管理系統進行測試的問題。
[0007]本發明實施例是這樣實現的,一種模擬多個網元的陷阱報文的方法,包括:
[0008]讀取待測網絡管理系統的配置文件,以獲取所述待測網絡管理系統的配置參數;
[0009]接收并保存用戶通過模擬終端輸入的命令參數,同時讀取所述模擬終端的MAC地址及IP地址,并根據所述命令參數和所述模擬終端的MAC地址及IP地址按照預定規則生成模擬網元的MAC地址及IP地址;
[0010]采用raw socket編程技術根據所述待測網絡管理系統的配置參數和所述模擬網元的MAC地址及IP地址組裝所述模擬網元的Snmp trap報文;
[0011]通過raw socket發送函數將所述Snmp trap報文發送至所述待測網絡管理系統,以使所述待測網絡管理系統根據所述Snmp trap報文進行性能測試。
[0012]在本發明實施例所述的模擬多個網元的陷阱報文的方法中,所述讀取待測網絡管理系統的配置文件,以獲取并保存所述待測網絡管理系統的配置參數具體包括:
[0013]讀取所述待測網絡管理系統的配置文件,以獲取并保存所述待測網絡管理系統的MAC地址、IP地址以及所述待測網絡管理系統所采用的SNMP協議的版本號、共同體和Snmptrap變量綁定對。
[0014]在本發明實施例所述的模擬多個網元的陷阱報文的方法中,所述讀取所述模擬終端的MAC地址及IP地址,并根據所述命令參數和所述模擬終端的MAC地址及IP地址按照預定規則生成模擬網元的MAC地址及IP地址具體包括:
[0015]根據所述模擬終端的輸入提示信息輸入用戶所需模擬網元的個數以及模擬網元發送Snmp trap報文的周期,同時讀取所述模擬終端的MAC地址及IP地址;
[0016]以所述命令參數中用戶所需模擬網元的個數為上限,以所述模擬終端的MAC地址為基址,累加獲取模擬網元的MAC地址,并將所述模擬網元的MAC地址保存到模擬網元信息列表中;
[0017]以所述命令參數中用戶所需模擬網元的個數為上限,以所述模擬終端的IP地址為基址,累加獲取模擬網元的IP地址,并將所述模擬網元的IP地址保存到所述模擬網元信息列表中。
[0018]在本發明實施例所述的模擬多個網元的陷講報文的方法中,所述采用raw socket編程技術根據所述待測網絡管理系統的配置參數和所述模擬網元的MAC地址及IP地址組裝所述模擬網元的Snmp trap報文具體包括:
[0019]創建raw socket,并設置raw socket中socket的選項,以使raw socket手動處理要發送的數據的IP包頭;
[0020]根據所述待測網絡管理系統的MAC地址及IP地址和所述模擬網元信息列表中模擬網元的MAC地址及IP地址組裝所述模擬網元的Snmp trap報文的ETH頭、IP頭、UDP頭以及SNMP報文體。
[0021]在本發明實施例所述的模擬多個網元的陷講報文的方法中,所述通過raw socket發送函數將所述Snmp trap報文發送至所述待測網絡管理系統,以使所述待測網絡管理系統根據所述Snmp trap報文進行性能測試具體包括:
[0022]根據用戶輸入的所述模擬網元發送Snmp trap報文的周期,使用所述socket id將所述Snmp trap報文發送至所述待測網絡管理系統,以使所述待測網絡管理系統根據所述Snmp trap報文進行性能測試。
[0023]本發明實施例的另一目的在于提供一種模擬多個網元的陷阱報文的系統,包括:
[0024]初始化模塊,用于讀取待測網絡管理系統的配置文件,以獲取所述待測網絡管理系統的配置參數;
[0025]代理生成模塊,用于接收并保存用戶通過模擬終端輸入的命令參數,同時讀取所述模擬終端的MAC地址及IP地址,并根據所述命令參數和所述模擬終端的MAC地址及IP地址按照預定規則生成模擬網元的MAC地址及IP地址;
[0026]報文組裝模塊,用于采用raw socket編程技術根據所述待測網絡管理系統的配置參數和所述模擬網元的MAC地址及IP地址組裝所述模擬網元的Snmp trap報文;
[0027]報文發送模塊,用于通過raw socket發送函數將所述Snmp trap報文發送至所述待測網絡管理系統,以使所述待測網絡管理系統根據所述Snmp trap報文進行性能測試。
[0028]在本發明實施例所述的模擬多個網元的陷阱報文的系統中,所述初始化模塊具體用于:
[0029]讀取所述待測網絡管理系統的配置文件,以獲取并保存所述待測網絡管理系統的MAC地址、IP地址以及所述待測網絡管理系統所采用的SNMP協議的版本號、共同體和Snmptrap變量綁定對。
[0030]在本發明實施例所述的模擬多個網元的陷阱報文的系統中,所述代理生成模塊具體包括:
[0031]用戶輸入單元,用于根據所述模擬終端的輸入提示信息輸入用戶所需模擬網元的個數以及模擬網元發送Snmp trap報文的周期,同時讀取所述模擬終端的MAC地址及IP地址;
[0032]模擬網元MAC地址生成單元,用于以所述命令參數中用戶所需模擬網元的個數為上限,以所述模擬終端的MAC地址為基址,累加獲取模擬網元的MAC地址,并將所述模擬網元的MAC地址保存到模擬網元信息列表中;
[0033]模擬網元IP地址生成單元,用于以所述命令參數中用戶所需模擬網元的個數為上限,以所述模擬終端的IP地址為基址,累加獲取模擬網元的IP地址,并將所述模擬網元的IP地址保存到所述模擬網元信息列表中。
[0034]在本發明實施例所述的模擬多個網元的陷阱報文的系統中,所述報文組裝模塊具體包括:
[0035]raw socket單元,用于創建raw socket,并設置raw socket中socket的選項,以使raw socket手動處理要發送的數據的IP包頭;
[0036]組裝單元,用于根據所述待測網絡管理系統的MAC地址及IP地址和所述模擬網元信息列表中模擬網元的MAC地址及IP地址組裝所述模擬網元發送的Snmp trap報文的ETH頭、IP頭、UDP頭以及SNMP報文體。
[0037]在本發明實施例所述的模擬多個網元的陷阱報文的系統中,所述報文發送模塊具體包括:
[0038]socket id獲取單元,用于獲取發送raw socket的socket id;
[0039]發送單元,用于根據用戶輸入的所述模擬網元發送Snmp trap報文的周期,使用所述socket id將所述Snmp trap報文發送至所述待測網絡管理系統,以使所述待測網絡管理系統根據所述Snm