一種用于網(wǎng)管容量測(cè)試的snmp模擬器及其測(cè)試方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于網(wǎng)絡(luò)管理領(lǐng)域,尤其涉及到一種用于網(wǎng)管容量測(cè)試的SNMP模擬器及其測(cè)試方法。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)管理已經(jīng)是現(xiàn)代通信系統(tǒng)不可或缺的一部分,它是系統(tǒng)提供高穩(wěn)定性能和高質(zhì)量服務(wù)的重要保障.網(wǎng)絡(luò)管理系統(tǒng),不僅能有效地管理整個(gè)系統(tǒng),而且還要保證系統(tǒng)的健壯性。SNMP是現(xiàn)在通用和成熟的互聯(lián)網(wǎng)絡(luò)管理協(xié)議,得到了當(dāng)前絕大多數(shù)廠商的支持,在網(wǎng)絡(luò)運(yùn)行上不會(huì)存在任何不兼容的問(wèn)題;大多數(shù)網(wǎng)管系統(tǒng)都是基于SNMP標(biāo)準(zhǔn)協(xié)議實(shí)現(xiàn)。
[0003]接入網(wǎng)網(wǎng)管系統(tǒng)需要管理的設(shè)備數(shù)量大,在廣電網(wǎng)絡(luò)中一個(gè)行政區(qū)的EOC數(shù)量可達(dá)數(shù)萬(wàn)。圖1是現(xiàn)有的基于SNMP網(wǎng)絡(luò)管理模型示意圖,網(wǎng)管系統(tǒng)和設(shè)備之間有大量的數(shù)據(jù)通信以及數(shù)據(jù)后期邏輯處理。如圖2所示為在硬件條件固定情況下,網(wǎng)管系統(tǒng)響應(yīng)時(shí)間與被管理設(shè)備數(shù)量關(guān)系圖。單個(gè)服務(wù)器上的網(wǎng)管系統(tǒng)其處理能力在被管理設(shè)備數(shù)量達(dá)到一個(gè)臨界點(diǎn)C時(shí)會(huì)開始出現(xiàn)操作響應(yīng)增加;設(shè)備數(shù)量繼續(xù)增長(zhǎng)到臨界點(diǎn)E時(shí)可能網(wǎng)管系統(tǒng)開始完全無(wú)法使用。在網(wǎng)管系統(tǒng)研發(fā)期間,搭建一個(gè)數(shù)萬(wàn)設(shè)備真實(shí)網(wǎng)絡(luò)環(huán)境來(lái)驗(yàn)證網(wǎng)絡(luò)系統(tǒng)的兩個(gè)臨界點(diǎn)存在以下弊端:
I)高額設(shè)備的采購(gòu)費(fèi)用。
[0004]2)占用大量的機(jī)房空間。
[0005]3)被管理的接入網(wǎng)設(shè)備均是有源設(shè)備,消耗大量的電力。
[0006]4)搭建環(huán)境需要大量的人力資源投入。
【發(fā)明內(nèi)容】
[0007]為解決上述問(wèn)題,本發(fā)明提供了一種用于網(wǎng)管容量測(cè)試的SNMP模擬器,其特征在于,SNMP模擬器包括電腦、網(wǎng)卡、mib信息采集模塊、mib數(shù)據(jù)裁剪模塊、數(shù)據(jù)構(gòu)造模塊、虛擬設(shè)備對(duì)象樹生成模塊、人機(jī)交互模塊;所述電腦上還運(yùn)行有報(bào)文捕獲線程、報(bào)文處理線程、報(bào)文發(fā)送線程、網(wǎng)管系統(tǒng)監(jiān)測(cè)模塊;
所述Mib信息采集模塊用于采集待測(cè)試網(wǎng)管系統(tǒng)管理范圍內(nèi)各個(gè)EOC和/或EPON真實(shí)網(wǎng)絡(luò)設(shè)備所有節(jié)點(diǎn)的mib數(shù)據(jù);
所述mib數(shù)據(jù)裁剪模塊用于將網(wǎng)管系統(tǒng)不需要的節(jié)點(diǎn)mib數(shù)據(jù)從所有節(jié)點(diǎn)mib數(shù)據(jù)中剔除出去,并將剩余的節(jié)點(diǎn)mib數(shù)據(jù)保存成對(duì)應(yīng)真實(shí)EOC設(shè)備型號(hào)的XML模板文件,且一種XML模板文件內(nèi)的mib數(shù)據(jù)對(duì)應(yīng)于一種虛擬設(shè)備的mib數(shù)據(jù);
人機(jī)交互模塊用于選擇設(shè)備型號(hào)、定義起始IP地址、設(shè)置設(shè)備數(shù)量X、啟動(dòng)虛擬設(shè)備、停止虛擬設(shè)備、增減虛擬設(shè)備;
所述數(shù)據(jù)構(gòu)造模塊用于根據(jù)設(shè)備型號(hào)讀取對(duì)應(yīng)XML模板文件,生成X個(gè)包含虛擬設(shè)備mib數(shù)據(jù)的xml文件;
虛擬設(shè)備對(duì)象樹生成模塊用于根據(jù)人機(jī)交互模塊的設(shè)置生成虛擬設(shè)備對(duì)象樹; 所述報(bào)文捕獲線程用于捕獲源IP地址為網(wǎng)管系統(tǒng)服務(wù)器IP的報(bào)文,并注冊(cè)報(bào)文到達(dá)事件,將注冊(cè)后的報(bào)文放入收包隊(duì)列中;
所述報(bào)文處理線程用于循環(huán)的從收包隊(duì)列中讀取報(bào)文、處理報(bào)文,并將處理后產(chǎn)生的響應(yīng)報(bào)文加入到發(fā)送報(bào)文隊(duì)列;
所述報(bào)文發(fā)送線程循環(huán)讀取發(fā)送隊(duì)列報(bào)文,并加入網(wǎng)卡的發(fā)送緩沖區(qū);
網(wǎng)管系統(tǒng)監(jiān)測(cè)模塊用于觀察EOC設(shè)備保活狀態(tài)、服務(wù)器網(wǎng)絡(luò)接口數(shù)量及流量、記錄頁(yè)面響應(yīng)時(shí)間,找出網(wǎng)管系統(tǒng)的容量臨界點(diǎn)。
[0008]上述用于網(wǎng)管容量測(cè)試的SNMP模擬器的測(cè)試方法,包括如下步驟:
步驟一:采集真實(shí)EOC設(shè)備mib的所有節(jié)點(diǎn)數(shù)據(jù),并保存為XML文件,所述XML文件里包含有各個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)名稱、節(jié)點(diǎn)號(hào)、父節(jié)點(diǎn)標(biāo)識(shí)、節(jié)點(diǎn)取值;
步驟二:裁剪真實(shí)EOC設(shè)備mib節(jié)點(diǎn)數(shù)據(jù),裁剪后的mib節(jié)點(diǎn)數(shù)據(jù)僅包括網(wǎng)管設(shè)備向各個(gè)EOC設(shè)備發(fā)起的SNMP請(qǐng)求中用到的mib節(jié)點(diǎn)數(shù)據(jù),且裁剪后的mib數(shù)據(jù)保存為對(duì)應(yīng)EOC設(shè)備型號(hào)的XML模板文件,所述XML模板文件里包括節(jié)點(diǎn)取值項(xiàng)、OID;
步驟三:選擇EOC設(shè)備型號(hào)及需要生成的虛擬設(shè)備數(shù)量X,讀取對(duì)應(yīng)設(shè)備型號(hào)的XML模板文件,將節(jié)點(diǎn)取值項(xiàng)修改為指定值,生成X個(gè)包含虛擬設(shè)備mib數(shù)據(jù)的XML文件;
步驟四:根據(jù)步驟三所生成的XML文件中的IP地址,生成虛擬設(shè)備對(duì)象樹;
步驟五:啟動(dòng)虛擬設(shè)備,加載對(duì)應(yīng)XML文件中的mib數(shù)據(jù),生成根據(jù)OID排序并具有父子關(guān)系的mib節(jié)點(diǎn)對(duì)象列表;
步驟六:直接從網(wǎng)卡提取源IP地址為網(wǎng)管系統(tǒng)服務(wù)器IP的請(qǐng)求報(bào)文,并為每個(gè)到達(dá)的請(qǐng)求報(bào)文注冊(cè)報(bào)文到達(dá)時(shí)間,并將注冊(cè)過(guò)的報(bào)文放入到收?qǐng)?bào)隊(duì)列中;
步驟七:報(bào)文處理線程循環(huán)從收包隊(duì)列中讀取報(bào)文,進(jìn)行處理后加入報(bào)文發(fā)送隊(duì)列;步驟八:報(bào)文發(fā)送線程循環(huán)接讀取報(bào)文發(fā)送隊(duì)列的報(bào)文,直接加入S匪P模擬器網(wǎng)卡的發(fā)送緩沖區(qū);
步驟九:逐步增加或減少虛擬設(shè)備,并觀察設(shè)備?;顮顟B(tài),服務(wù)器網(wǎng)絡(luò)接口數(shù)量流量,記錄頁(yè)面響應(yīng)時(shí)間,找網(wǎng)管系統(tǒng)的容量臨界點(diǎn)。
[0009]進(jìn)一步的,在步驟七中,處理的報(bào)文有三種,分別為arp報(bào)文、icmp報(bào)文、基于udp的snmpi艮t;
如果為arp報(bào)文,處理方式為:如果報(bào)文攜帶的請(qǐng)求IP地址ipl為已經(jīng)啟動(dòng)的虛擬設(shè)備IP地址,則構(gòu)造mac地址為指定網(wǎng)卡mac地址、IP為ipl的arp響應(yīng)報(bào)文,加入報(bào)文發(fā)送隊(duì)列;通過(guò)這種arp欺騙,將網(wǎng)管系統(tǒng)snmp請(qǐng)求數(shù)據(jù)引導(dǎo)至SNMP模擬器指定網(wǎng)卡上;
如果為icmp報(bào)文,處理方式為:如果請(qǐng)求的IP地址為已經(jīng)啟動(dòng)的虛擬設(shè)備IP地址,則構(gòu)造icmp響應(yīng)報(bào)文,加入報(bào)文發(fā)送隊(duì)列;
如果為基于udp的snmp報(bào)文,處理方式為:如果請(qǐng)求的IP地址為已經(jīng)啟動(dòng)的虛擬設(shè)備IP地址,調(diào)用虛擬設(shè)備對(duì)象的snmp報(bào)文處理方法,返回snmp響應(yīng)報(bào)文。
【附圖說(shuō)明】
[0010]圖1是現(xiàn)有的基于SNMP網(wǎng)絡(luò)管理模型示意圖。
[0011 ]圖2是在硬件條件固定情況下,網(wǎng)管系統(tǒng)響應(yīng)時(shí)間與被管理設(shè)備數(shù)量關(guān)系圖。
[0012]圖3是本發(fā)明的SNMP代理數(shù)據(jù)模型示意圖。
[0013]圖4是本發(fā)明數(shù)據(jù)報(bào)文處理流程圖。
[0014]圖5是本發(fā)明實(shí)例中SNMP報(bào)文解析流程圖。
【具體實(shí)施方式】
[0015]本發(fā)明的設(shè)計(jì)構(gòu)思為:本發(fā)明設(shè)置了一個(gè)SNMP模擬器,所述模擬器采集各個(gè)型號(hào)真實(shí)EOC和EPON等網(wǎng)絡(luò)設(shè)備的mib節(jié)點(diǎn)取值,并裁剪保留一小部分必需mib節(jié)點(diǎn)取值并保存成mib數(shù)據(jù)模板;通過(guò)自定義數(shù)據(jù)改變mib數(shù)據(jù)模板,生成虛擬設(shè)備mib數(shù)據(jù)文件;使用winpcap直接從網(wǎng)絡(luò)的物理線路中提取數(shù)據(jù)報(bào)文,動(dòng)態(tài)解析數(shù)據(jù)包,不適用系統(tǒng)的TCP/IP協(xié)議,不占用系統(tǒng)端口 ;發(fā)送報(bào)文也直接發(fā)送原始的二層數(shù)據(jù)報(bào)文。
[0016]如圖3所示,本發(fā)明所述SNMP模擬器為SNMP模擬器包括電腦、網(wǎng)卡、所述模擬器包含mib信息采集模塊、mib數(shù)據(jù)裁剪模塊、數(shù)據(jù)構(gòu)造模塊、虛擬設(shè)備對(duì)象樹生成模塊、人機(jī)交互模塊;所述電腦上還運(yùn)行有報(bào)文捕獲線程、報(bào)文處理線程、報(bào)文發(fā)送線程、網(wǎng)管系統(tǒng)監(jiān)測(cè)模塊。
[0017]所述Mib信息采集模塊用于采集待測(cè)試網(wǎng)管系統(tǒng)管理范圍內(nèi)各個(gè)EOC和/或EPON真實(shí)網(wǎng)絡(luò)設(shè)備所有節(jié)點(diǎn)的mib數(shù)據(jù)。
[0018]所述mib數(shù)據(jù)裁剪模塊用于將網(wǎng)管系統(tǒng)不需要的節(jié)點(diǎn)mib數(shù)據(jù)從所有節(jié)點(diǎn)mib數(shù)據(jù)中剔除出去,并將剩余的節(jié)點(diǎn)mib數(shù)據(jù)保存成對(duì)應(yīng)真實(shí)EOC設(shè)備型號(hào)的XML模板文件,且一種XML模板文件內(nèi)的mib數(shù)據(jù)對(duì)應(yīng)于一種虛擬設(shè)備的mib數(shù)據(jù)。
[0019]人機(jī)交互模塊用于選擇設(shè)備型號(hào)、定義起始IP地址、設(shè)置設(shè)備數(shù)量X、啟動(dòng)虛擬設(shè)備、停止虛擬設(shè)備、增減虛擬設(shè)備。
[0020]所述數(shù)據(jù)構(gòu)造模塊用于根據(jù)設(shè)備型號(hào)讀取對(duì)應(yīng)XML模板文件,生成X個(gè)包含虛擬設(shè)備mib數(shù)據(jù)的xml文件。
[0021]虛擬設(shè)備對(duì)象樹生成模塊用于根據(jù)人機(jī)交互模塊的設(shè)置生成虛擬設(shè)備對(duì)象樹。
[0022]所述報(bào)文捕獲線程用于捕獲源IP地址為網(wǎng)管系統(tǒng)服務(wù)器IP的報(bào)文,并注冊(cè)報(bào)文到達(dá)事件,將注冊(cè)后的報(bào)文放入收包隊(duì)列中。
[0023]所述報(bào)文處理線程用于循環(huán)的從收包隊(duì)列中讀取報(bào)文、處理報(bào)文,并將處理后產(chǎn)生的響應(yīng)報(bào)文加入到發(fā)送報(bào)文隊(duì)列。
[0024]所述報(bào)文發(fā)送線程循環(huán)讀取發(fā)送隊(duì)列報(bào)文,并加入網(wǎng)卡的發(fā)送緩沖區(qū)。
[0025]網(wǎng)管系統(tǒng)監(jiān)測(cè)模塊用于觀察EOC設(shè)備?;顮顟B(tài)、服務(wù)器網(wǎng)絡(luò)接口數(shù)量及流量、記錄頁(yè)面響應(yīng)時(shí)間,找出網(wǎng)管系統(tǒng)的容量臨界點(diǎn)。
[0026]下面包括節(jié)點(diǎn)取值項(xiàng)、0ID。
[0027]裁剪數(shù)據(jù)的原因在于,根據(jù)步驟一中的格式保存一個(gè)真實(shí)網(wǎng)絡(luò)設(shè)備的MIB節(jié)點(diǎn)數(shù)據(jù)文件可能有幾MB或者幾十MB大小,在網(wǎng)管進(jìn)行設(shè)備發(fā)現(xiàn)掃描和設(shè)備在線?;顣r(shí),向設(shè)備發(fā)起的snmp請(qǐng)求中其實(shí)只用到一小部分節(jié)點(diǎn)。
[0028]