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