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