一種路由協(xié)議交互的測試方法和測試工具的制作方法
【專利摘要】本發(fā)明涉及一種路由協(xié)議交互的測試方法及測試工具,通過運(yùn)行在電腦中的測試工具調(diào)用WinPcap組件,來驅(qū)動該電腦中的一個指定網(wǎng)卡收發(fā)OSPF報文,并通過監(jiān)聽收發(fā)的OSPF報文,來對與該電腦對接的被測設(shè)備基于OSPF協(xié)議進(jìn)行交互的情況進(jìn)行測試。本發(fā)明能夠自動測試不同廠家的路由器或者三層交換機(jī)上運(yùn)行的OSPF協(xié)議,無需搭建測試環(huán)境,使用簡單且成本低廉。
【專利說明】一種路由協(xié)議交互的測試方法和測試工具
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通訊協(xié)議的測試領(lǐng)域,特別涉及一種路由協(xié)議交互的測試方法和測試工具。
【背景技術(shù)】
[0002]使用自動化腳本來測試路由器或者三層交換機(jī)上的OSPF (Open Shortest PathFirst開放式最短路徑優(yōu)先)路由協(xié)議時,需要遵循RFC (Request For Comments,請求評議)對協(xié)議功能進(jìn)行詳細(xì)的驗(yàn)證。而不同廠商的設(shè)備提供的命令行風(fēng)格不一致,即使實(shí)現(xiàn)相同的OSPF功能,也需要不同的配置。
[0003]在Testcenter, Smartbit等測試儀上有集成OSPF協(xié)議測試的功能,能夠用來構(gòu)造各類型OSPF報文,進(jìn)行大流量OSPF發(fā)包測試或OSPF報文容錯性測試。但是,具備OSPF協(xié)議測試的測試儀一般價格較高,并且其端口資源有限,增加端口會使相應(yīng)的成本大幅提升。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種路由協(xié)議交互的測試方法和測試工具,通過調(diào)用WinPcap組件,驅(qū)動電腦的網(wǎng)卡進(jìn)行OSPF報文收發(fā)包操作,對該被測設(shè)備(例如是路由器或三層交換機(jī))基于OSPF協(xié)議進(jìn)行交互的功能進(jìn)行測試,無需搭建測試環(huán)境,使用簡單且成本低廉。
[0005]為了達(dá)到上述目的,本發(fā)明的一個技術(shù)方案是提供一種路由協(xié)議交互的測試方法,通過運(yùn)行在電腦中的測試工具調(diào)用WinPcap組件,來驅(qū)動該電腦中的一個指定網(wǎng)卡收發(fā)OSPF報文,并通過監(jiān)聽收發(fā)的OSPF報文,來對與該電腦對接的被測設(shè)備基于OSPF協(xié)議進(jìn)行交互的情況進(jìn)行測試。
[0006]優(yōu)選地,所述測試工具調(diào)用WinPcap組件的pcap_findalldevs_ex O函數(shù)接口,來獲取所述電腦的網(wǎng)卡列表;該測試工具從獲得的網(wǎng)卡列表中選取一個網(wǎng)卡作為指定網(wǎng)卡。
[0007]優(yōu)選地,所述測試工具通過調(diào)用WinPcap組件的pcap_open()接口來打開指定網(wǎng)卡,并通過調(diào)用WinPcap組件的pcap_loop()接口來循環(huán)監(jiān)聽指定網(wǎng)卡收發(fā)的OSPF報文。
[0008]優(yōu)選地,所述測試工具通過調(diào)用WinPcap組件的pcap_compile O接口來編譯過濾器,并通過調(diào)用WinPcap組件的pcap_setfilter O接口來設(shè)置使用的過濾器,從而對指定網(wǎng)卡收發(fā)的OSPF報文進(jìn)行過濾。
[0009]優(yōu)選地,所述測試工具通過配置的發(fā)包參數(shù)來構(gòu)造指定類型的OSPF報文,并通過調(diào)用WinPcap組件的發(fā)包接口,發(fā)送該指定類型的OSPF報文;
所述指定類型的OSPF報文,是報文參數(shù)被正確配置的OSPF報文,或者是報文參數(shù)被錯誤配置以驗(yàn)證容錯性的OSPF報文。
[0010]優(yōu)選地,所述測試工具對發(fā)送的報文數(shù)是否達(dá)到設(shè)定數(shù)值進(jìn)行判斷:若發(fā)送的報文數(shù)達(dá)到設(shè)定數(shù)值時,則關(guān)閉該指定網(wǎng)卡,不再發(fā)送OSPF報文;
若發(fā)送的報文數(shù)沒有達(dá)到設(shè)定數(shù)值時,則繼續(xù)發(fā)送OSPF報文,并在等待設(shè)置的發(fā)包間隔時間之后,重新執(zhí)行判斷的操作,來確定是否需要發(fā)送下一個OSPF報文。
[0011]優(yōu)選地,所述測試工具對于處在打開狀態(tài)的指定網(wǎng)卡,通過調(diào)用WinPcap組件的pcap_freealIdevs O接口來關(guān)閉該指定網(wǎng)卡,停止對該指定網(wǎng)卡的監(jiān)聽。
[0012]本發(fā)明的另一個技術(shù)方案是提供一種路由協(xié)議交互的測試工具,其中包含:
調(diào)用模塊,通過調(diào)用WinPcap組件的接口來驅(qū)動一個指定網(wǎng)卡執(zhí)行相應(yīng)的操作;其中,所述WinPcap組件的接口,至少包含:驅(qū)動指定網(wǎng)卡向被測設(shè)備發(fā)送OSPF報文的發(fā)包接口,和驅(qū)動指定網(wǎng)卡從被測設(shè)備接收OSPF報文的抓包接口 ;
監(jiān)聽模塊,對所述指定網(wǎng)卡收發(fā)的OSPF報文進(jìn)行監(jiān)聽;
過濾器,對所述指定網(wǎng)卡收發(fā)的OSPF報文進(jìn)行過濾;
交互界面,用來獲取配置參數(shù)、測試操作指令,以及顯示該測試工具與被測設(shè)備之間報文交互情況的日志記錄。
[0013]優(yōu)選地,所述測試工具運(yùn)行在與被測設(shè)備對接的電腦中,所述電腦中運(yùn)行有windows平臺;所述指定網(wǎng)卡是該電腦的一個網(wǎng)卡。
[0014]優(yōu)選地,所述測試工具獲得的配置參數(shù),來構(gòu)造向被測設(shè)備發(fā)送的指定類型的OSPF報文;所述指定類型的OSPF報文,是報文參數(shù)被正確配置的OSPF報文,或者是報文參數(shù)被錯誤配置以驗(yàn)證容錯性的OSPF報文。
[0015]與現(xiàn)有技術(shù)相比,本發(fā)明所述路由協(xié)議交互的測試方法和測試工具,其優(yōu)點(diǎn)在于:
本發(fā)明通過開發(fā)測試工具,來模擬運(yùn)行OSPF協(xié)議的路由器,模擬真實(shí)測試場景。使用C++語言開發(fā)的相關(guān)軟件等,打包后可批量復(fù)制,并能夠直接運(yùn)行在任意的windows電腦上,不需要搭建測試環(huán)境,使用簡單;不用依賴于Testcenter, Smartbit等現(xiàn)有測試儀器,本發(fā)明的測試成本明顯降低。
[0016]本發(fā)明可以界面化配置發(fā)包參數(shù),根據(jù)配置的參數(shù)構(gòu)造OSPF報文,并從運(yùn)行電腦的網(wǎng)卡中選擇一個指定網(wǎng)卡來發(fā)送構(gòu)造的OSPF報文,易用性強(qiáng)??梢酝ㄟ^構(gòu)造不同類型的OSPF報文,例如設(shè)置錯誤的報文參數(shù)來測試OSPF協(xié)議的容錯性。本發(fā)明還可以循環(huán)監(jiān)聽選定的發(fā)包網(wǎng)卡,過濾該網(wǎng)卡上收發(fā)的OSPF報文,并通過日志顯示其與被測設(shè)備之間的報文交互過程。
【專利附圖】
【附圖說明】
[0017]圖1是本發(fā)明所述路由協(xié)議交互的測試方法的流程示意圖;
圖2是本發(fā)明所述測試方法中監(jiān)聽報文操作的流程示意圖;
圖3是本發(fā)明所述測試方法中發(fā)送報文操作的流程示意圖;
圖4是本發(fā)明所述測試方法中停止監(jiān)聽的流程示意圖。
【具體實(shí)施方式】
[0018]本發(fā)明中通過調(diào)用WinPcap組件,驅(qū)動電腦的網(wǎng)卡進(jìn)行OSPF報文收發(fā)包操作來模擬一個運(yùn)行OSPF協(xié)議的路由器,進(jìn)行與被測設(shè)備之間協(xié)議交互的操作,對該被測設(shè)備(例如是路由器或三層交換機(jī))基于OSPF協(xié)議進(jìn)行交互的功能進(jìn)行測試。所述的WinPcap是windows平臺下的一個公共網(wǎng)絡(luò)訪問系統(tǒng),以C/C++語言編寫,用于網(wǎng)絡(luò)封包抓取。
[0019]為此,本發(fā)明提供一種測試工具,其中設(shè)置有相關(guān)的模塊,能夠指定一個網(wǎng)卡作為發(fā)包網(wǎng)卡,調(diào)用WinPcap組件的接口以驅(qū)動該指定網(wǎng)卡收發(fā)報文,并對其持續(xù)監(jiān)聽,過濾該指定網(wǎng)卡上收發(fā)的OSPF報文,等等。
[0020]所述測試工具還設(shè)置有交互界面,用來獲取測試所需的配置參數(shù)(包括但不限于發(fā)包參數(shù),其被用來構(gòu)造向被測設(shè)備發(fā)送的指定類型的OSPF報文,例如是參數(shù)錯誤配置或參數(shù)正確配置的報文),用來獲取測試所需的各項操作的指令(包括但不限于用來執(zhí)行構(gòu)造報文、發(fā)送報文、選擇指定網(wǎng)卡、打開或關(guān)閉網(wǎng)卡、開始或停止監(jiān)聽等操作的相關(guān)指令),以及顯示與被測設(shè)備之間報文交互過程的日志記錄,等等。
[0021]將本發(fā)明所述的測試工具運(yùn)行在與被測設(shè)備對接的電腦中,該電腦無需搭建特殊的測試環(huán)境,使用任意一種能夠運(yùn)行windows的普通電腦即可。所述測試工具所涉及的軟件、配置文件等被打包后,可批量復(fù)制,在任意一臺上述的普通電腦上打開就可以直接使用,大大降低了測試成本。
[0022]如圖1所示,本發(fā)明所述路由協(xié)議交互的測試方法中,包含以下的實(shí)施步驟:
Al、將運(yùn)行本發(fā)明所述測試工具的電腦,與運(yùn)行OSPF協(xié)議的被測設(shè)備對接;打開測試工具,設(shè)置OSPF Head參數(shù)。
[0023]A2、獲取本機(jī)網(wǎng)卡列表,設(shè)置發(fā)包網(wǎng)卡;
對于例如是點(diǎn)擊“獲取網(wǎng)卡列表”按鈕的操作,所述測試工具調(diào)用WinPcap組件的pcap_findalldevs_ex()函數(shù)接口來獲取運(yùn)行該測試工具的電腦的網(wǎng)卡列表;
從獲取的網(wǎng)卡列表中指定一個網(wǎng)卡作為發(fā)包網(wǎng)卡,調(diào)用WinPcap組件的接口打開該指定網(wǎng)卡。
[0024]A3、調(diào)用WinPcap組件的抓包接口,循環(huán)監(jiān)聽指定網(wǎng)卡收發(fā)的OSPF報文。
[0025]A4、設(shè)置發(fā)包參數(shù),構(gòu)造指定類型的OSPF報文;調(diào)用WinPcap組件的發(fā)包接口,發(fā)送該指定類型的OSPF報文。
[0026]此處,所述指定類型的OSPF報文可以是一種報文參數(shù)被正確配置的OSPF報文;也可以是通過設(shè)置錯誤的報文參數(shù)來構(gòu)造的一種錯誤的OSPF報文,用以驗(yàn)證被測設(shè)備OSPF協(xié)議的容錯性。
[0027]A5、查看指定網(wǎng)卡的收發(fā)包日志;測試工具可以通過查看日志欄記錄,來了解網(wǎng)卡收發(fā)OSPF報文的狀態(tài)。
[0028]如圖2所示,在上述步驟A3中,對于例如是點(diǎn)擊“開始監(jiān)聽OSPF報文”按鈕的操作,所述測試工具進(jìn)一步執(zhí)行以下的步驟:
B1、建立循環(huán)監(jiān)聽進(jìn)程;
B2、調(diào)用WinPcap組件的pcap_open()接口來打開指定網(wǎng)卡;
B3、對于是否成功打開指定網(wǎng)卡進(jìn)行判斷:若沒有成功打開,則發(fā)出報錯的提示信息;若成功打開指定網(wǎng)卡,則繼續(xù)執(zhí)行B4 ;
B4、調(diào)用WinPcap組件的pcap_compile O接口來編譯過濾器,用來過濾收發(fā)的OSPF報文;
B5、調(diào)用WinPcap組件的pcap_setfilter O接口來設(shè)置抓包時使用的過濾器;
B6、調(diào)用WinPcap組件的pcap_loop()接口循環(huán)抓取指定網(wǎng)卡的OSPF報文。
[0029]如圖3所示,在上述步驟A4中,對于例如是點(diǎn)擊“發(fā)送”按鈕的操作,所述測試工具進(jìn)一步執(zhí)行發(fā)送報文的以下步驟:
Cl、選擇要發(fā)送的OSPF報文類型;
C2、設(shè)置報文參數(shù);
C3、構(gòu)造指定類型的OSPF報文;
C4、調(diào)用WinPcap組件的pcap_open()接口來打開指定網(wǎng)卡;
C5、對于是否成功打開指定網(wǎng)卡進(jìn)行判斷:若沒有成功打開,則發(fā)出報錯的提示信息;若成功打開指定網(wǎng)卡,則繼續(xù)執(zhí)行C6 ;
C6、對發(fā)送的報文數(shù)是否達(dá)到設(shè)定數(shù)值進(jìn)行判斷:若已經(jīng)達(dá)到設(shè)定數(shù)值,則關(guān)閉該指定網(wǎng)卡,不發(fā)送報文;
若沒有達(dá)到設(shè)定數(shù)值時,則繼續(xù)發(fā)送上述指定類型OSPF報文;并在等待設(shè)置的發(fā)包間隔時間之后,重新執(zhí)行C6的操作,來確定是需要關(guān)閉網(wǎng)卡還是需要發(fā)送下一個報文。
[0030]如圖4所示,對于例如是點(diǎn)擊“停止監(jiān)聽”按鈕的操作,所述測試工具進(jìn)一步執(zhí)行停止監(jiān)聽網(wǎng)卡的以下步驟:
D1、檢測指定網(wǎng)卡是否開啟:
D2、若指定網(wǎng)卡沒有開啟,則發(fā)送網(wǎng)卡未開啟的提示信息,告知不需要關(guān)閉網(wǎng)卡;
D3、若指定網(wǎng)卡是開啟的,則調(diào)用WinPcap組件的pcap_freealldevs O接口來關(guān)閉該網(wǎng)卡,停止對該網(wǎng)卡的監(jiān)聽。
[0031]綜上所述,本發(fā)明提供的路由協(xié)議交互的測試方法和測試工具,通過運(yùn)行在普通電腦上的測試工具模擬一個運(yùn)行OSPF協(xié)議的路由器,用來與被測設(shè)備進(jìn)行協(xié)議交互,由于OSPF協(xié)議都基本遵循RFC標(biāo)準(zhǔn)來實(shí)現(xiàn),所以實(shí)現(xiàn)基本一致,能夠自動測試不同廠家的路由器或者三層交換機(jī)上運(yùn)行的OSPF協(xié)議,無需搭建測試環(huán)境,使用簡單且成本低廉。
[0032]盡管本發(fā)明的內(nèi)容已經(jīng)通過上述優(yōu)選實(shí)施例作了詳細(xì)介紹,但應(yīng)當(dāng)認(rèn)識到上述的描述不應(yīng)被認(rèn)為是對本發(fā)明的限制。在本領(lǐng)域技術(shù)人員閱讀了上述內(nèi)容后,對于本發(fā)明的多種修改和替代都將是顯而易見的。因此,本發(fā)明的保護(hù)范圍應(yīng)由所附的權(quán)利要求來限定。
【權(quán)利要求】
1.一種路由協(xié)議交互的測試方法,其特征在于: 通過運(yùn)行在電腦中的測試工具調(diào)用WinPcap組件,來驅(qū)動該電腦中的一個指定網(wǎng)卡收發(fā)OSPF報文,并通過監(jiān)聽收發(fā)的OSPF報文,來對與該電腦對接的被測設(shè)備基于OSPF協(xié)議進(jìn)行交互的情況進(jìn)行測試。
2.如權(quán)利要求1所述路由協(xié)議交互的測試方法,其特征在于, 所述測試工具調(diào)用WinPcap組件的pcap_findalldevs_ex ()函數(shù)接口,來獲取所述電腦的網(wǎng)卡列表;該測試工具從獲得的網(wǎng)卡列表中選取一個網(wǎng)卡作為指定網(wǎng)卡。
3.如權(quán)利要求1所述路由協(xié)議交互的測試方法,其特征在于, 所述測試工具通過調(diào)用WinPcap組件的pcap_open()接口來打開指定網(wǎng)卡,并通過調(diào)用WinPcap組件的pcap_loop()接口來循環(huán)監(jiān)聽指定網(wǎng)卡收發(fā)的OSPF報文。
4.如權(quán)利要求1或3所述路由協(xié)議交互的測試方法,其特征在于, 所述測試工具通過調(diào)用WinPcap組件的pcap_compile ()接口來編譯過濾器,并通過調(diào)用WinPcap組件的pcap_setfilter ()接口來設(shè)置使用的過濾器,從而對指定網(wǎng)卡收發(fā)的OSPF報文進(jìn)行過濾。
5.如權(quán)利要求1所述路由協(xié)議交互的測試方法,其特征在于, 所述測試工具通過配置的發(fā)包參數(shù)來構(gòu)造指定類型的OSPF報文,并通過調(diào)用WinPcap組件的發(fā)包接口,發(fā)送該指定類型的OSPF報文; 所述指定類型的OSPF報文,是報文參數(shù)被正確配置的OSPF報文,或者是報文參數(shù)被錯誤配置以驗(yàn)證容錯性的OSPF報文。
6.如權(quán)利要求1或5所述路由協(xié)議交互的測試方法,其特征在于, 所述測試工具對發(fā)送的報文數(shù)是否達(dá)到設(shè)定數(shù)值進(jìn)行判斷:若發(fā)送的報文數(shù)達(dá)到設(shè)定數(shù)值時,則關(guān)閉該指定網(wǎng)卡,不再發(fā)送OSPF報文; 若發(fā)送的報文數(shù)沒有達(dá)到設(shè)定數(shù)值時,則繼續(xù)發(fā)送OSPF報文,并在等待設(shè)置的發(fā)包間隔時間之后,重新執(zhí)行判斷的操作,來確定是否需要發(fā)送下一個OSPF報文。
7.如權(quán)利要求1所述路由協(xié)議交互的測試方法,其特征在于, 所述測試工具對于處在打開狀態(tài)的指定網(wǎng)卡,通過調(diào)用WinPcap組件的pcap_freealldevs 0接口來關(guān)閉該指定網(wǎng)卡,停止對該指定網(wǎng)卡的監(jiān)聽。
8.—種路由協(xié)議交互的測試工具,其特征在于,包含: 調(diào)用模塊,通過調(diào)用WinPcap組件的接口來驅(qū)動一個指定網(wǎng)卡執(zhí)行相應(yīng)的操作;其中,所述WinPcap組件的接口,至少包含:驅(qū)動指定網(wǎng)卡向被測設(shè)備發(fā)送OSPF報文的發(fā)包接口,和驅(qū)動指定網(wǎng)卡從被測設(shè)備接收OSPF報文的抓包接口 ; 監(jiān)聽模塊,對所述指定網(wǎng)卡收發(fā)的OSPF報文進(jìn)行監(jiān)聽; 過濾器,對所述指定網(wǎng)卡收發(fā)的OSPF報文進(jìn)行過濾; 交互界面,用來獲取配置參數(shù)、測試操作指令,以及顯示該測試工具與被測設(shè)備之間報文交互情況的日志記錄。
9.如權(quán)利要求8所述路由協(xié)議交互的測試工具,其特征在于, 所述測試工具運(yùn)行在與被測設(shè)備對接的電腦中,所述電腦中運(yùn)行有windows平臺;所述指定網(wǎng)卡是該電腦的一個網(wǎng)卡。
10.如權(quán)利要求8所述路由協(xié)議交互的測試工具,其特征在于, 所述測試工具獲得的配置參數(shù),來構(gòu)造向被測設(shè)備發(fā)送的指定類型的OSPF報文;所述指定類型的OSPF報文,是報文參數(shù)被正確配置的OSPF報文,或者是報文參數(shù)被錯誤配置以驗(yàn)證容錯性的OSPF報文。
【文檔編號】H04L12/701GK104468279SQ201410801912
【公開日】2015年3月25日 申請日期:2014年12月22日 優(yōu)先權(quán)日:2014年12月22日
【發(fā)明者】劉小麗, 曾祥龍 申請人:上海斐訊數(shù)據(jù)通信技術(shù)有限公司