王 慶,王之梁,姚姜源,施新剛,尹 霞,3,王 鵬, 陳健軍, 戴慶龍,牟 超
(1. 清華大學計算機科學與技術系, 北京 100084;2. 清華大學網(wǎng)絡科學與網(wǎng)絡空間研究院, 北京 100084;3. 清華信息科學與技術國家實驗室(籌) , 北京 100084;4.海南大學信息科學技術學院,海口 570228;5.中國電子科學研究院,北京 100041)
以衛(wèi)星通信為代表的空間網(wǎng)絡是未來網(wǎng)絡發(fā)展的一個重要研究方向。在網(wǎng)絡覆蓋范圍和設備移動接入方面,空間網(wǎng)絡與地面網(wǎng)絡有著很強的互補關系,隨著兩者的不斷融合,逐漸產(chǎn)生了天地一體化網(wǎng)絡的概念。天地一體化網(wǎng)絡是融合空間網(wǎng)絡、地面互聯(lián)網(wǎng)、移動通信網(wǎng)絡等異構網(wǎng)絡,為分布于太空、天空、海洋和陸地的各類用戶提供全面信息服務的網(wǎng)絡系統(tǒng)[1]。
目前中國的地面站不足以覆蓋到全球范圍,所以空間網(wǎng)絡的信息通過地面組網(wǎng)來傳播難以實現(xiàn),這種情況下天地一體化網(wǎng)絡中的空間節(jié)點需要通過組網(wǎng)互聯(lián)。目前地面互聯(lián)網(wǎng)分層的路由架構和技術已經(jīng)比較成熟,可以將其應用到空間網(wǎng)絡中。由于空間網(wǎng)絡的節(jié)點存在數(shù)目種類繁多、距離遙遠、分布具有周期性和可預測性等特性,加之空間網(wǎng)絡拓撲變化頻繁、信道質(zhì)量差、組網(wǎng)特性差異較大、衛(wèi)星處理能力受限等這些與地面網(wǎng)絡顯著不同的差異[1,2],天地一體化網(wǎng)絡需要匹配適應空間網(wǎng)絡特點的新型路由協(xié)議,如OSPF+[3]、BGP+等。
網(wǎng)絡中同層之間的交互需要依賴網(wǎng)絡協(xié)議,而路由協(xié)議是引導路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的一類網(wǎng)絡協(xié)議。路由器會根據(jù)路由協(xié)議,進行路由信息的交互學習,從而生成路由表,數(shù)據(jù)包按照路由表進行轉(zhuǎn)發(fā)。目前最常用的路由協(xié)議包括RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)、BGP(Border Gateway Protocol)等路由協(xié)議。路由協(xié)議能夠直接影響數(shù)據(jù)傳輸和網(wǎng)絡性能。為了保證路由協(xié)議能在網(wǎng)絡中有效地運行,需要對協(xié)議進行全面的測試。協(xié)議的測試主要分為互操作性測試、一致性測試、性能測試三種。
本文主要關注新型路由協(xié)議的一致性測試。新型路由協(xié)議在實際部署之前,需要進行充分的一致性測試來檢測其實現(xiàn)與對應協(xié)議設計文檔的一致性。文中先簡述路由協(xié)議的一致性測試,然后介紹新型路由協(xié)議OSPF+和BGP+的協(xié)議,之后根據(jù)協(xié)議標準,明確一致性測試過程中的測試內(nèi)容、測試平臺和測試集設計等測試細節(jié),最后運行測試集進行測試,通過分析測試結果,修正協(xié)議實現(xiàn)。本文的主要貢獻為基于通用協(xié)議集成測試系統(tǒng)平臺PITSv3,設計了模擬天地一體化空間網(wǎng)絡特性的協(xié)議測試集,對新型路由協(xié)議進行有效的一致性測試。
路由協(xié)議主要用于生成、維護、更新路由表,從而使得數(shù)據(jù)包正確送達。路由協(xié)議主要功能可分為兩部分:網(wǎng)絡通信和路由信息處理。
路由協(xié)議的網(wǎng)絡通信大部分使用FSM(Finite State Machine,有限狀態(tài)機)模型來處理底層網(wǎng)絡的接入,為路由信息流建立可靠信道,或者檢測本地網(wǎng)絡的連接狀態(tài),所以網(wǎng)絡通信部分一般比較容易建模、實現(xiàn)和測試[4]。路由信息處理部分主要由路由器完成,路由器對收到的路由進行處理, 以更新本地的路由信息表。針對路由信息處理部分的測試研究主要有拓撲分析和內(nèi)部過程模擬。拓撲分析的主要思想是將通過現(xiàn)有的路由信息表推測出的拓撲,與真實拓撲進行對比,判斷路由信息處理過程是否正確。內(nèi)部過程模擬主要是通過模擬路由信息處理的內(nèi)部流程,設計并運行特定場景下的測試集,將測試結果與預期結果進行對比,從而查找路由信息處理過程中出現(xiàn)的錯誤[5]。
路由協(xié)議的一致性測試與路由信息處理的內(nèi)部過程模擬測試相似,其主要思想是利用測試序列,在特定網(wǎng)絡環(huán)境下,針對路由協(xié)議規(guī)范設計測試集,對被測系統(tǒng)進行黑盒測試,通過比較實際輸出和預期輸出,檢測路由協(xié)議實際運行的系統(tǒng)與協(xié)議規(guī)范的符合程度。
域間路由協(xié)議和域內(nèi)路由協(xié)議的協(xié)同工作能保證整個網(wǎng)絡的互聯(lián)互通。運行域間域內(nèi)路由協(xié)議的邊界路由器,會根據(jù)所運行的域間協(xié)議BGP+產(chǎn)生的路由表和域內(nèi)協(xié)議OSPF+產(chǎn)生的路由表,生成最終的轉(zhuǎn)發(fā)表,實現(xiàn)天地一體化網(wǎng)絡的通信傳輸。
OSPF是運行在單個自治系統(tǒng)內(nèi)部,用于計算路由節(jié)點間最短路徑的內(nèi)部網(wǎng)關協(xié)議。OSPF屬于鏈路狀態(tài)協(xié)議,每個路由節(jié)點存儲自治系統(tǒng)內(nèi)部的鏈路信息,路由節(jié)點會根據(jù)該信息計算到目的節(jié)點的最短路徑。
空間網(wǎng)絡的拓撲變化頻繁,傳統(tǒng)的OSPF協(xié)議會洪泛拓撲信息占用帶寬。此外,如果拓撲不及時更新,也會導致路由黑洞和環(huán)路,使得通訊中斷、報文丟失。
針對天地一體化網(wǎng)絡拓撲變化頻繁、節(jié)點計算能力有限的特點,OSPF+協(xié)議在繼承了OSPF協(xié)議基本功能的基礎上,增加了拓撲預測功能,拓展了鄰居狀態(tài)機,從而提高域內(nèi)路由協(xié)議在處理不同類型鏈路中斷時的效率。
如果拓撲變化是因為通信信道受輻射干擾,空間鏈路發(fā)生短時間的中斷,這種情況OSPF+協(xié)議可以避免路由收斂;如果拓撲變化可能導致特定鏈路長時間不可使用,該種情況OSPF+可以通過使用地面的管控服務器,直接根據(jù)各衛(wèi)星的運動規(guī)律和軌道參數(shù)情況,計算出空間網(wǎng)絡中各鏈路的連接和斷開時刻,將其通告給對應的衛(wèi)星節(jié)點,并提前計算最短路徑,加速路由收斂[3]。
OSPF+擴展鄰居狀態(tài)機,如圖1所示,新增Leaving狀態(tài)來處理不同原因下拓撲變化的流程。不可預測的瞬時鏈路中斷,可以用Hello報文進行檢測,鄰居狀態(tài)保持Full不變來避免不必要收斂??梢灶A測的鏈路狀態(tài)發(fā)生中斷,鄰居狀態(tài)從Full狀態(tài)進入Leaving狀態(tài),表示兩個對等體暫時不可達,不進入Down狀態(tài)。當鄰居狀態(tài)轉(zhuǎn)為Leaving狀態(tài),對等體路由器為Leaving狀態(tài)鄰居建立NewLSAsList(New Link-state Advertisements List)表項,用以保存Leaving狀態(tài)中鄰居本應通過該對等體路由器收到的路由。當一個周期內(nèi)或者NewLSAsList中LSA數(shù)量超出空間限制,鏈路未恢復則轉(zhuǎn)為Down,鏈路恢復則轉(zhuǎn)為ExChange,直接通過傳輸NewLSAsList提高同步效率。如果可預測鏈路發(fā)生中斷,OSPF+不用等待4個Hello報文周期,通過直接判斷鏈路情況,加速收斂。
圖1 OSPF+鄰居狀態(tài)機[3]
BGP是用于不同的自治系統(tǒng)之間交換路由信息的域間邊界網(wǎng)關協(xié)議。BGP對等體只與鄰居對等體交換路由信息,通過距離向量算法更新路由。BGP通過AS Path屬性記錄路由信息所穿越的自治系統(tǒng)信息,避免路由傳輸產(chǎn)生的環(huán)路。
BGP+是根據(jù)天地一體化網(wǎng)絡中空間網(wǎng)絡的特性,對BGP邊界網(wǎng)關協(xié)議進行擴展得到的新型域間路由協(xié)議,它支持對等體會話動態(tài)建立和路由的增量更新[8]。
傳統(tǒng)網(wǎng)絡中自治系統(tǒng)的位置相對穩(wěn)定,BGP對等體的連接也就相對穩(wěn)定,但在天地一體化的空間網(wǎng)絡中,衛(wèi)星之間的相對運動導致了BGP對等體位置的變化,某一時刻直連的BGP+對等體可能在下一時刻需要通過其他對等體來建立連接,因此BGP+需要在不同的時刻選擇更合適的對等體進行連接,則BGP+支持對等體會話的動態(tài)切換至關重要。
空間網(wǎng)絡中,因為衛(wèi)星之間的相互運動,導致BGP對等體之間出現(xiàn)周期性斷開重連的情況,傳統(tǒng)的BGP協(xié)議要求對等體建立連接時,對等體之間通告所有路由表項,但衛(wèi)星網(wǎng)絡存在周期性斷開重連的情況,如果使用傳統(tǒng)的BGP協(xié)議,則會有大量的路由表項在兩個對等體之間周期性地進行重復傳輸。BGP+增加了路由增量更新的設計方案,能有效地減少路由表項的重復傳輸。如果對等體運行BGP+協(xié)議,當該對等體之間斷開連接,兩個對等體分別保留路由表項,等待重新連接之后,BGP+對等體之間僅傳輸增量宣告或者撤銷的路由。
在下文的協(xié)議一致性測試方案中,主要針對OSPFv3的基本功能和OSPF+的擴展功能、BGP的基本功能和BGP+的擴展功能進行相應的測試設計。
網(wǎng)絡協(xié)議的一致性測試是一種功能性的黑盒測試,它根據(jù)協(xié)議的描述對協(xié)議的實現(xiàn)進行測試,從而判斷協(xié)議實現(xiàn)與協(xié)議標準是否一致。本文的一致性測試是通過在網(wǎng)絡協(xié)議功能一致性測試工具上運行測試集,從而實現(xiàn)對運行被測網(wǎng)絡協(xié)議的被測系統(tǒng)(System Under Test,SUT)進行測試的需求。
OSPF+一致性測試主要包含兩部分:OSPFv3協(xié)議原有基本功能的測試、OSPF+協(xié)議中擴展功能的測試。
(1)OSPFv3基本功能測試:主要測試OSPFv3協(xié)議原有的功能,由于OSPFv3的協(xié)議標準及其實現(xiàn)已相對比較成熟,這部分內(nèi)容不是測試的重點。主要包括以下兩方面的內(nèi)容:
① OSPF+Hello協(xié)議測試:OSPF+路由器應能夠周期性發(fā)送Hello報文。
② OSPF+正常建立鄰接關系測試:OSPF+路由器與鄰居正常建立鄰接關系,并交換鏈路狀態(tài)數(shù)據(jù)庫信息,鄰居狀態(tài)機最終達到Full狀態(tài)。
(2)OSPF+擴展功能測試:OSPF+協(xié)議主要針對空間網(wǎng)絡的特點做了一些相關的擴展,主要體現(xiàn)在OSPF+鄰居狀態(tài)機的擴展。因此,對OSPF+擴展功能測試主要圍繞OSPF+鄰居狀態(tài)機的擴展部分展開。主要測試需求如下:
① OSPF+鄰居狀態(tài)機由Full狀態(tài)進入Leaving狀態(tài)測試,分為兩種情況:
·OSPF+協(xié)議中,在Full狀態(tài)下,根據(jù)拓撲預測結果,與鄰居的相應鏈路由于衛(wèi)星軌道運動斷開。此時,如果在一個Hello報文周期(10s)內(nèi)沒收到鄰居的Hello報文,則進入Leaving狀態(tài)。
·OSPF+協(xié)議中,在Full狀態(tài)下,如果在Inactivity_timer定時器規(guī)定時間(40s)后沒收到對端的Hello報文,則進入Leaving狀態(tài)。
② OSPF+維持Full狀態(tài):OSPF+協(xié)議中,在Full狀態(tài)下,根據(jù)拓撲預測結果,鄰居的相應鏈路由于衛(wèi)星軌道運動斷開。此時,如果在一個Hello報文周期(10s)內(nèi)收到鄰居的Hello報文,則繼續(xù)維持Full狀態(tài)。
③ OSPF+協(xié)議中鄰居狀態(tài)機由Leaving狀態(tài)進入ExChange狀態(tài):OSPF+協(xié)議中,在Leaving狀態(tài)下,如果在一個鄰居軌道周期內(nèi)再次收到Hello報文,則進入ExChange狀態(tài)。
④ OSPF+由Leaving狀態(tài)進入Down狀態(tài):OSPF+協(xié)議中,在Leaving狀態(tài)下,如果一個鄰居軌道周期內(nèi),沒有收到Hello報文,則進入Down狀態(tài)。
BGP+一致性測試主要包含兩部分:BGP協(xié)議原有基本功能的測試、BGP+協(xié)議中擴展功能的測試。
(1)BGP基本功能測試
① 鄰居建連測試:測試系統(tǒng)軟件向運行BGP+的被測系統(tǒng)發(fā)送OPEN報文,請求與被測系統(tǒng)建立連接,當測試軟件系統(tǒng)收到被測系統(tǒng)回復的OPEN報文和KEEPALIVE報文,表明鄰居建連成功。
② 對等體斷連測試:測試系統(tǒng)軟件向運行BGP+的被測系統(tǒng)發(fā)送OPEN報文,請求與被測系統(tǒng)建立連接,當測試軟件系統(tǒng)收到被測系統(tǒng)回復的OPEN報文和KEEPALIVE報文,即鄰居建連成功,測試系統(tǒng)軟件回復KEEPALIVE報文維持連接,之后測試系統(tǒng)軟件主動斷開BGP連接,即連續(xù)3次收到被測系統(tǒng)的KEEPALIVE報文,然后測試系統(tǒng)收到被測系統(tǒng)通知斷連的NOTIFICATION報文,表明對等體斷連成功。
③ 前綴報文交互測試:測試系統(tǒng)軟件和被測系統(tǒng)建立BGP+連接,測試系統(tǒng)軟件通過向被測系統(tǒng)發(fā)送UPDATE宣告前綴信息,如果被測系統(tǒng)學習到該路由信息,表明前綴報文交互成功。
(2)BGP+擴展功能測試
① 動態(tài)切換對等體測試:在空間網(wǎng)絡的高延時、高丟包和衛(wèi)星位置經(jīng)常發(fā)生變化的情況下,運行BGP+協(xié)議的可見衛(wèi)星能夠動態(tài)建立對等體關系,并且學習到相關路由信息。例如:對等體A和對等體B、C分別建立BGP+連接,C宣告給A的路由,A會轉(zhuǎn)發(fā)給B。當B主動與A斷連之后,D會和A主動建立連接,此時C如果向A宣告路由,A會轉(zhuǎn)發(fā)給D。
② 路由增量更新測試:在空間網(wǎng)絡高延遲、高丟包、鏈路周期性變化的網(wǎng)絡情況下, BGP+協(xié)議能夠與對等體進行路由的增量更新,只發(fā)送對等體斷開期間,增量宣告或者撤銷的路由信息。
4.1.1 網(wǎng)絡協(xié)議一致性測試工具
網(wǎng)絡協(xié)議功能一致性測試工具能夠測試各類節(jié)點設備的網(wǎng)絡協(xié)議功能一致性,包括OSPF+、BGP+等路由協(xié)議;使用網(wǎng)絡協(xié)議測試工具進行測試的體系結構如圖2所示。
圖2 網(wǎng)絡協(xié)議功能一致性測試的體系結構圖
本文對新型路由協(xié)議OSPF+和BGP+的一致性測試,采用基于TTCN-3語言(Testing And Test Control Notation Version 3,測試和測試控制描述法第三版)的相關技術,使用自主研發(fā)的協(xié)議測試系統(tǒng)工具PITSv3[6](Protocol Integrated Test System)進行測試, PITSv3內(nèi)通過MTC(Main Test Component,主測試部件)和多個PTC(Parallel Test Component,從測試部件),來模擬測試系統(tǒng)多網(wǎng)口的情況。PITSv3系統(tǒng)的體系結構見圖3。
4.1.2 測試方法
本文進行的協(xié)議一致性測試采用改進的穿越測試法[7],如圖4所示,測試系統(tǒng)和被測系統(tǒng)的多個接口分別相連,模擬真實網(wǎng)絡環(huán)境。多個測試接口對應到PITSv3工具中為一個主測試部件和多個從測試部件。
圖3 PITSv3系統(tǒng)的體系結構[6]
圖4 改進的穿越測試法結構圖[7]
4.1.3 協(xié)議一致性測試網(wǎng)絡環(huán)境
本文對天地一體化網(wǎng)絡新型路由協(xié)議的一致性測試,依托于安裝在物理機上的VMware虛擬機管理軟件,在VMware軟件中創(chuàng)建兩臺虛擬機,分別作為測試系統(tǒng)(安裝PITSv3的Window7系統(tǒng))和被測系統(tǒng)(運行新型路由協(xié)議代碼的CentOS系統(tǒng))。每臺虛擬機應設置內(nèi)存大小(1G以上)、處理器個數(shù)(2個以上)、硬盤大小(20G以上)、網(wǎng)絡適配器(參考測試用例的拓撲)等參數(shù)。通過設置網(wǎng)絡適配器,創(chuàng)建多個網(wǎng)口,構建協(xié)議一致性測試的網(wǎng)絡環(huán)境。
OSPF+和BGP+的一致性測試主要采用基于虛擬機的測試環(huán)境,采用虛擬機方式建立測試環(huán)境,具有使用調(diào)試方便、部署遷移快速的優(yōu)點。
4.1.3.1 OSPF+一致性測試環(huán)境
OSPF+協(xié)議采用軟件實現(xiàn),運行在Linux系統(tǒng)上。測試環(huán)境如圖5所示。
圖5 OSPF+一致性測試環(huán)境
OSPF+協(xié)議一致性測試環(huán)境安裝在一臺物理機內(nèi),通過物理機內(nèi)的虛擬機搭建網(wǎng)絡環(huán)境。其中一臺虛擬機運行PITSv3系統(tǒng),作為OSPF+協(xié)議一致性測試工具;另外兩臺虛擬機分別運行OSPF+協(xié)議軟件(作為被測實現(xiàn)IUT)及其管控中心。3臺虛擬機均接入同一IPv6網(wǎng)段3ffe:3211:a:1::/64。
4.1.3.2 BGP+一致性測試環(huán)境
BGP+協(xié)議采用軟件實現(xiàn),運行在CentOS系統(tǒng)上。測試環(huán)境如圖6所示。
圖6 BGP+一致性測試環(huán)境
BGP+協(xié)議一致性測試啟動兩臺虛擬機模擬BGP網(wǎng)絡環(huán)境,一臺安裝測試軟件系統(tǒng)PITSv3,一臺運行BGP+協(xié)議屬于被測系統(tǒng),通過設置多個虛擬網(wǎng)絡接口來連接外部鄰居。
新型路由協(xié)議一致性測試的測試集結構如表1所示,按照協(xié)議及其功能測試的不同分成4個測試組:OSPFv3基本功能測試、OSPF+擴展功能測試、BGP基本功能測試和BGP+擴展功能測試,共12個測試例。其基本思路是根據(jù)協(xié)議功能分別進行設計,模擬空間網(wǎng)絡拓撲情況,盡可能全面覆蓋協(xié)議狀態(tài)機、協(xié)議實現(xiàn)以及路由信息的交互情況。
表1 新型路由協(xié)議一致性測試的測試集結構
4.2.1 OSPF+協(xié)議一致性測試集
4.2.1.1 OSPFv3基本功能測試集
OSPFv3基本功能測試集主要為了測試OSPFv3的核心功能,涉及Hello協(xié)議和鄰接關系的建立(鄰居狀態(tài)機進入Full狀態(tài)),見表2。
表2 OSPFv3基本功能測試集
4.2.1.2 OSPF+擴展功能測試集
OSPF+擴展功能測試集重點圍繞鄰居狀態(tài)機中新增的Leaving狀態(tài)展開,主要包括對狀態(tài)機中進入和離開Leaving狀態(tài)變遷的測試。如表3所示。
表3 OSPF+擴展功能測試集
4.2.2 BGP+協(xié)議一致性測試集
4.2.2.1 BGP基本功能測試集
新型域間路由協(xié)議BGP+是通過對BGP協(xié)議進行擴展而產(chǎn)生的,它的基本功能測試集主要包含從BGP協(xié)議繼承過來的鄰居建連、對等體斷連、前綴報文交互等3個測試例,如表4所示。
表4 BGP基本功能測試集
4.2.2.2 BGP+擴展功能測試集
因為空間網(wǎng)絡衛(wèi)星之間的相互運動,BGP+新型域間路由協(xié)議支持動態(tài)切換對等體和路由增量更新兩項拓展功能,如表5所示。
表5 BGP+拓展功能測試集
測試系統(tǒng)軟件和被測系統(tǒng)通過報文交互完成測試過程,以動態(tài)切換對等體為例。BGP+動態(tài)切換對等體的拓撲的測試配置如圖7所示。該測試例中模擬被測系統(tǒng)有3個鄰居,在測試系統(tǒng)內(nèi)使用一個主測試部件MTC模擬被測系統(tǒng)的鄰居對等體D,和兩個從測試部件PTC1和PTC2模擬被測系統(tǒng)的鄰居對等體E和F。
因為空間網(wǎng)絡衛(wèi)星隨軌道運動,某時刻直連的BGP+對等體可能在下一時刻需要通過另外一條較遠的路由才能連接,此時BGP+可能會切換更合適的對等體進行連接。
該測試例中運行BGP+協(xié)議的被測系統(tǒng),從與對等體E建立連接,切換到與對等體F建立連接,期間對等體D向被測系統(tǒng)宣告路由,通過觀測與被測系統(tǒng)相連的其他對等體是否收到路由,驗證天地一體化動態(tài)網(wǎng)絡拓撲結構下,BGP+對等體切換之后,對等體之間能夠正確運行BGP+協(xié)議。
圖7 BGP+動態(tài)切換對等體的測試配置
該BGP+動態(tài)切換對等體的測試序列見圖8,測試序列對應的流程描述如下:
(1)MTC模擬對等體D主動和被測系統(tǒng)A口建立BGP+連接。
(2)PTC1模擬對等體E與被測系統(tǒng)B口建立BGP+連接。
(3)測試系統(tǒng)從對等體D向A宣告路由,被測系統(tǒng)會收到路由后將該路由從B口轉(zhuǎn)發(fā)給對等體E。對等體E收到路由后,測試系統(tǒng)將連續(xù)3次不回復被測系統(tǒng)發(fā)來的KEEPALIVE,對等體E收到NOTIFICATION報文后,對等體BE斷開連接。
(4)PTC1通知PTC2:對等體E和被測系統(tǒng)已經(jīng)斷開連接。對等體 F可以主動和被測系統(tǒng)建連。
(5)PTC2模擬對等體F與被測系統(tǒng)C口建立BGP+連接。
(6)PTC2通知MTC:測試系統(tǒng)可以通過對等體D向被測系統(tǒng)宣告路由。
(7)測試系統(tǒng)從對等體D向A宣告路由,被測系統(tǒng)會收到路由后將該路由從C口轉(zhuǎn)發(fā)給對等體F。對等體F收到路由后,測試系統(tǒng)將連續(xù)3次不回復被測系統(tǒng)發(fā)來的KEEPALIVE,對等體F收到NOTIFICATION報文后,對等體CF斷開連接。
(8)PTC2通知MTC:測試結束。
圖8 BGP+動態(tài)切換對等體的測試序列
如果BGP+動態(tài)切換對等體的測試例在運行的過程中遵循圖8的測試序列,則測試例PASS,否則測試例FAIL。
針對以上測試框架和方案,本文對所有測試集中的測試例進行測試,共開展2個階段的測試工作,第一階段測試中發(fā)現(xiàn)BGP+擴展功能的實現(xiàn)與協(xié)議設計不符,之后對協(xié)議實現(xiàn)進行修改和完善,第二階段測試例全部通過,測試界面如圖9所示。
圖9 BGP+測試集的測試界面
表6所示是第一階段的測試結果,第一階段的測試結果表明BGP+動態(tài)切換對等體和路由增量更新兩個擴展功能實現(xiàn)有誤,通過查看測試結果、自動化測試例運行過程中的輸出信息、WireShark的抓包信息,最終明確協(xié)議實現(xiàn)過程中的錯誤:
(1)動態(tài)切換對等體的實現(xiàn)錯誤:當被測系統(tǒng)切換對等體連接之后,被測系統(tǒng)能夠與新的BGP+鄰居保持通信,但當被測系統(tǒng)收到路由后,原本被測系統(tǒng)應該將收到的路由信息轉(zhuǎn)發(fā)給新的BGP+鄰居,但運行BGP+網(wǎng)絡節(jié)點無法判斷短時間內(nèi)切換的對等體如何處理,是應該傳輸所有路由,還是由于該對等體之前曾與測試系統(tǒng)建立過連接則只傳輸路由更新。該測試例失敗的主要原因在于路由增量更新的擴展功能實現(xiàn)錯誤,直接導致切換對等體之后BGP+鏈路中斷。
(2)路由增量更新的實現(xiàn)錯誤:被測系統(tǒng)與測試軟件斷開之后,被測系統(tǒng)可能會撤銷或者重新宣告路由。當被測系統(tǒng)撤銷路由時,被測系統(tǒng)運行的BGP+協(xié)議異常退出,表明實現(xiàn)路由增量撤銷的代碼有誤。通過查看輸出信息和實現(xiàn)代碼,發(fā)現(xiàn)實現(xiàn)路由增量撤銷的函數(shù)傳參有誤,運行BGP+協(xié)議的進程直接崩潰。
表6 第一階段一致性測試結果統(tǒng)計
在第二階段的測試中,OSPF+協(xié)議和BGP+協(xié)議的一致性測試例全部通過,表7所示為第二階段的測試結果。
表7 第二階段一致性測試結果統(tǒng)計
本文提出了針對天地一體化網(wǎng)絡特性的新型網(wǎng)絡路由協(xié)議OSPF+和BGP+功能一致性測試的具體方案,該測試方案能夠較好地模擬空間網(wǎng)絡節(jié)點動態(tài)變化的情況。該測試方案的實現(xiàn)借助了PITSv3網(wǎng)絡協(xié)議一致性測試平臺,通過在PITSv3測試平臺上配置測試環(huán)境,編寫基于TTCN-3語言的測試集,將測試流程序列化、自動化,實現(xiàn)對網(wǎng)絡協(xié)議一致性的測試。在測試的過程中,發(fā)現(xiàn)了BGP+擴展功能實現(xiàn)與協(xié)議設計不符,經(jīng)過修正新協(xié)議的某些實現(xiàn)錯誤,最終實現(xiàn)了OSPF+和BGP+網(wǎng)絡協(xié)議的一致性,支持了天地一體化網(wǎng)絡路由協(xié)議的設計與開發(fā)。
致謝感謝王宇亮、桑猛、楊芫、劉崢等在測試過程中給予的幫助和支持。
[1] 李賀武, 吳茜, 徐恪等. 天地一體化網(wǎng)絡研究進展與趨勢[J]. 科技導報, 2016, 34(14):95-106.
[2] 張乃通, 趙康僆, 劉功亮. 對建設我國“天地一體化信息網(wǎng)絡”的思考[J]. 中國電子科學研究院學報, 2015, 10(3):223-230.
[3] 徐明偉, 夏安青, 楊芫等. 天地一體化網(wǎng)絡域內(nèi)路由協(xié)議OSPF+[J]. 清華大學學報(自然科學版), 2017(1):12-17.
[4] Wu J, Li Z, Yin X. Towards modeling and testing of IP routing protocols[C]. Ifip International Conference on Testing of Communicating Systems. Springer-Verlag, 2003:49-62.
[5] Zhao Y, Ju J, Xia Y. From active to passive—Progress in testing Internet routing protocols[J]. Journal of Computer Science and Technology, 2002, 17(3): 264-283.
[6] Yin X, Wang Z, Jing C, et al. A TTCN-3-based protocol testing system and its extension[J]. Science in China Series F: Information Sciences, 2008, 51(11): 1703-1722.
[7] 楊建華, 王俊峰, 謝高崗. OSPFv3協(xié)議一致性測試系統(tǒng)設計與實現(xiàn)[J]. 計算機應用, 2003, 23(7):18-20.
[8] 徐明偉,楊芫,林恒. 一種基于路由校驗的邊界網(wǎng)關協(xié)議的路由更新方法:北京, CN105915457A[P], 2016-08-31.