北方工業大學 王鵬宇 黃思恬 陳依
天地一體化網絡是中國“科技創新2030”的重要項目,其中衛星網絡與地面網絡互聯起到關鍵作用。但是直接部署傳統的域間網絡協議會導致網絡中的帶寬資源被大量控制路由占用,現有的輕量級部署方案要求設備存儲全網路由。本文提出一種輕量級路由通告機制LRAM,將通告路由改為通告對等體組,并使用索引形式保存路由。實驗表明:LRAM對帶寬資源和存儲空間的優化效果明顯。
隨著地面網絡的蓬勃發展以及海洋、偏遠農村等地區網絡需求的不斷增長,構建一個能夠覆蓋全球互聯網接入的天地一體的網絡變得越來越有價值。這不僅是中國“科技創新2030”的重要項目,還是未來互聯網的發展趨勢。但是地面網絡和空間網絡有較大區別,屬于異構網絡,想要實現互聯有諸多問題待解決。而域間路由協議的設計目的就是互聯各類異構網絡,實現網絡間的互聯。然而,直接將現有地面網絡的域間路由協議BGP[1]部署至天地一體化網絡中會遇到很多的技術挑戰,如路由頻繁更新、鏈路時延較大、帶寬資源受限等。并且天地一體化網絡中BGP的鄰居關系不穩定,對等體組頻繁變化會帶來大量路由收斂[2]。于是,關于如何將BGP部署到天地一體化網絡中的研究逐漸受到重視,Yang[3]等人提出了一種簡化鄰居耦合關系的BGP協議——NTD-BGP,該協議能根據衛星運動周期性的特點較為準確的預測網絡拓撲和網絡域之間的對應關系,再通過標記的方法減少路由收斂。但由于該機制要求每個路由器保存整個網絡的路由,因此會給路由設備帶來較大的存儲壓力,反而會影響查表轉發速度。
基于此,本文提出一種適用于天地一體化網絡的輕量級路由通告機制(Lightweight Route Advertisement Mechanism,LRAM),將通告路由替換為通告對等體變化,并使用索引的方式保存路由屬性,可以做到減少路由收斂的同時顯著降低存儲壓力。
本文提出的LRAM機制主要用于解決天地一體化網絡中衛星與地面站間頻繁的斷連重連過程中產生的大量路由通告問題,主要包括BGP對等體之間的重復路由收斂以及斷連重連引發的OSPF域內的實施鏈路信息洪泛。還有設備上路由存儲過多的問題,主要包括BGP的通告路由和OSPF的AS-External-LSA。
為了解決這些問題,我們基于開源的路由軟件Quagga[4]設計LRAM機制,在其中BGP和OSPF模塊中均添加了屬性表(BGP-Attr、OSPF-Attr),索引表(BGP-Index、OSPF-Index)。
(1)為了解決BGP對等體間重復路由收斂的問題,本文設計的LRAM機制修改了斷連重連時的BGP UPDATE通告。在路由器初始化時,在報文中的路由信息后添加一條對等體組信息,這樣便于路由器保存屬性,在后續斷連重連過程中,若沒有路由變化,只需要通告一條攜帶對等體組的信息即可。為了減小衛星設備的路由存儲壓力,在控制平面里的BGP模塊中添加了BGP路由屬性表,即BGP-Attr,該表主要用于保存通過BGP學到的路由及其屬性,包括路由前綴、下一跳、對等體組等,在每條路由中添加序號(用于索引)和狀態碼(用于標記當前路由生效與否)。此外,再添加一個路由索引表BGPIndex,用于存儲每條路由前綴當前的可選路由,該表中的路由信息用BGP-Attr表中的序號索引表示。
(2)為了解決斷連重連引發的OSPF域內的實施鏈路信息洪泛問題,本文設計的LRAM機制仿照AS-External-LSA,制造PEER-LSA,在數據部分填入對等體組及狀態碼。取消了原有的AS-External-LSA,發生斷連重連時,僅洪泛一條PEER-LSA即可。相應的,也在OSPF模塊中添加了OSPF路由屬性表和索引表,即OSPFAttr和OSPF-Index,具體結構與BGP-Attr和BGPIndex相同。
為了說明LRAM的工作原理,我們以一個簡易的天地一體化網絡為例。假設網絡初始狀態如圖1所示,地面站A-C處于同一網絡域內(AS 100),衛星1-3處于同一網絡域內(AS 200),域內運行OSPF協議。衛星與地面站之間通過BGP協議建立對等體組,不同網段的鄰居使用PPP協議建立連接。另外,地面站A上外接一個PC,代表用戶終端設備。

圖1 網絡初始狀態Fig.1 Initial state of network
所有設備在初始化過程中在屬性表中添加網絡中所有路由的屬性信息。在網絡恢復初始狀態后,索引表中會保存所有可選路由屬性,生效的路由屬性狀態碼標記為1,失效的路由屬性狀態碼標記為0。如果一個路由前綴的所有路由屬性狀態碼全部為0則將該前綴標記為Sleep。將所有標記為Active的前綴及其屬性同步到原路由表中(BGP-RIB、LSDB),觸發重新選路的操作,再通過BGP UPDATE或PEER-LSA同步給鄰居。
隨著衛星運動,衛星1與地面站A斷開連接。BGP鄰居10.0.0.1與10.0.0.2之間通 過BGP UPDATE通告對等體組斷連。之后衛星1和地面站A在BGP-Index表中,將所有對等體組為10.0.0.1-10.0.0.2的屬性狀態碼置為0,將所有標記為Active的前綴及其屬性同步到BGP-RIB中,觸發重新選路的操作,再Redistribute到OSPF中。OSPF同樣在OSPF-Index表中將所有對等體組為10.0.0.1-10.0.0.2的屬性狀態碼置為0,將所有標記為Active的前綴及其屬性同步到LSDB中,觸發重新選路的操作,再組織PEER-LSA通告,將對等體組10.0.0.1-10.0.0.2以及狀態碼0填入,發送給域內鄰居。
域內鄰居收到PEER-LSA后,解析對等體組和狀態碼,在OSPF-Index中查找相同的對等體組,并同步狀態碼。將所有標記為Active的前綴及其屬性同步到LSDB中,觸發重新選路的操作。OSPF同樣將PEERLSA轉發給鄰居,并Redistribute到BGP中。BGP執行接收到BGP UPDATE通告同樣的操作,再組織BGP UPDATE通告將對等體組信息填入發送給鄰居。
隨著衛星運動,衛星2與地面站B建立連接。BGP鄰居20.0.0.1與20.0.0.2之間通過BGP UPDATE通告對等體組重連。操作流程與斷連過程相同,將狀態碼置為1。
如果終端設備與地面站A斷開連接,首先地面站A會在BGP-Attr和OSPF-Attr表中將所有與終端IP前綴相同的路由屬性的狀態碼標記為0,并將BGP-Index和OSPF-Index表中所有路由前綴與終端IP相同的索引刪除。再組織BGP UPDATE和Route-LSA將信息通告給鄰居,鄰居收到通告后執行相同的操作。如果地面站上有新的終端設備接入,地面站A會在BGP-Attr和OSPF-Attr中新增前綴和路由屬性,將狀態碼標記為1,在BGP-Index和OSPF-Index表中添加路由前綴和索引。再組織BGP UPDATE和Route-LSA將信息通告給鄰居,鄰居收到通告后執行相同的操作。
正如上文所說,本文為了解決天地一體化網絡中衛星與地面站間頻繁的斷連重連過程中產生的大量路由通告問題和設備上路由占用存儲過多的問題,提出了LRAM機制。
為了存儲路由屬性,避免反復增刪路由,需要在設備中新增路由屬性表BGP-Attr/OSPF-Attr,為了減少路由表的存儲壓力,需要新增索引表BGP-Index/OSPF-Index。
屬性表結構如表1所示。

表1 屬性表Tab.1 Attribute table
每個路由前綴對應的索引表結構如表2所示。

表2 路由前綴索引表Tab.2 Routing prefix index table
為了減少斷連重連同步時網絡中的路由,本文修改了BGP UPDATE報文格式,如表3所示,并仿照AS-External-LSA設計了PEER-LSA報文格式,如表4所示。

表3 BGP UPDATE報文Tab.3 BGP UPDATE message

表4 PEER-LSA報文Tab.4 PEER-LSA message
為了驗證LRAM在天地一體化網絡中對控制路由占用帶寬和路由占用設備存儲空間過大的緩解作用。本文使用內存8G、系統Linux14.04且裝有Quagga軟件的主機設備搭建了網絡,并實現了LRAM的基本思想,改進了Quagga中的代碼。
為了驗證LRAM機制對控制路由占用帶寬的優化效果,我們在圖示網絡中通過拔插網線模擬天地一體化網絡的運行過程,在每臺設備上使用TCPDump工具抓取數據包并統計路由數目。模擬兩個完整的運行周期,一次使用帶有LRAM的方案,另一次不使用LRAM作為對照。經檢測,使用LRAM后,網絡中的控制路由數目下降了約70%,優化效果明顯。之后,我們在兩組網絡運行時從服務端注入100條路由,再次檢測網絡中的路由數目,結果更為明顯,網絡中減少了86%的控制路由。為了更直觀地看優化效果,我們在服務端用VLC搭建視頻服務器,打開UDP視頻流,在播放端接收網絡串流播放視頻,觀察網絡運行過程中斷連重連對視頻播放造成卡頓的時長。經測試,使用LRAM的方案重連后視頻均可在2s內恢復流暢,而未使用LRAM的方案會有15s的卡頓。
為了驗證LRAM機制對路由占用設備存儲空間的優化效果,我們分別在網絡中部署了LRAM和NTDBGP,在服務端灌入100條路由并讓網絡運行一個完整的周期,再用指令查看每臺設備BGP-RIB表和LSDB表中的路由數目,再通過計算得到占用的存儲空間。實驗表明:使用LRAM的方案相比NTD-BGP節省了約80%的存儲空間,且網絡運行過程中變化較小。
經過實驗驗證:在天地一體化網絡中,LRAM可以明顯降低控制路由對帶寬的占用,且不會影響網絡中的數據業務。比起現有的輕量級部署方案,也可以緩解路由占用設備存儲空間過大的情況。
本文對天地一體化網絡在實際運行中可能遇到的問題進行分析,總結出兩大主要問題:對等體頻繁替換導致大量路由收斂,部署輕量級的BGP可能帶來過大存儲壓力。針對這些問題,本文提出了一種輕量級的路由通告機制LRAM。我們詳細地介紹了LRAM的設計思路,具體說明了在軟件層面的改進。此外,本文對LRAM在天地一體化網絡運行中發揮作用的流程進行了闡述。最后,我們搭建了簡易的天地一體化網絡,并部署LRAM驗證優化效果,實驗結果表明,優化效果顯著。并且我們在場景中加入了實際業務,證明了該方案在實際應用中具有很高的價值。
引用
[1] 吳曼青,吳巍,周彬,等.天地一體化信息網絡總體架構設想[J].衛星與網絡,2016(3):30-36.
[2] ETEFIA B,SWAMINATHAN V,TRAIN J et al.Emulating a Spacebased Router[C]//IEEE Aerospace Conference Proceedings,2010:1-14.
[3] 楊增印,吳茜,李賀武,等.天地一體化信息網絡域間路由協議NTD-BGP[J].清華大學學報(自然科學版),2019,59(7):512-522.
[4] JAKMA P,LAMPARTER D.Introduction to the Quagga Routing Suite[J].IEEE Network,2014,28(02):42-48.