彭 耘,蔡 浩,張立平
(武漢鐵路職業(yè)技術(shù)學(xué)院,湖北武漢430205)
隨著Internet 應(yīng)用和用戶的快速增長(zhǎng),網(wǎng)絡(luò)需要承載的信息流量也越來(lái)越大,對(duì)信息轉(zhuǎn)發(fā)設(shè)備的性能要求也越來(lái)越高。支持大容量的新一代路由器是核心網(wǎng)絡(luò)運(yùn)營(yíng)商的必然選擇。新一代路由器需要達(dá)到Pbps 的吞吐量,這使得先階段的單主控的集中式架構(gòu)的路由器顯然很難滿足這個(gè)要求。基于主控與線卡之間的任務(wù)共享機(jī)制實(shí)現(xiàn)的分布式路由器是一種可行的解決方案。這種分布式路由器在具有滿足現(xiàn)實(shí)應(yīng)用要求的極強(qiáng)的擴(kuò)展性外,還具有較高的可靠性。
路由管理器是路由器的一個(gè)核心軟件組件。它連接不同的路由協(xié)議模塊。在核心路由器中,路由管理器管理來(lái)自不同協(xié)議源頭的優(yōu)選路由。如來(lái)自O(shè)SPF、IS-IS、BGP 等協(xié)議維護(hù)的動(dòng)態(tài)路由及用戶配置的靜態(tài)路由。路由管理器從這些路由中決策出最佳的優(yōu)選路由指導(dǎo)路由器轉(zhuǎn)發(fā)平面的分組數(shù)據(jù)的轉(zhuǎn)發(fā)。
隨著路由器之間的連接數(shù)量的增加,路由管理器模塊需要管理的路由表的大小也增長(zhǎng)迅速。這要求路由有更強(qiáng)的CPU處理能力和更大的存儲(chǔ)空間。針對(duì)該問(wèn)題,以前主要的解決方案是周期性的升級(jí)路由器的主控卡或路由器本身。但通常CPU 芯片的更新周期會(huì)長(zhǎng)于互聯(lián)網(wǎng)流量增長(zhǎng)帶來(lái)的CPU 處理能力更新周期。一種有效的替代解決方案是采用分布式的路由器體系架構(gòu)[1]。但其集中式路由管理器實(shí)現(xiàn)方案還不能有效解決路由器主控卡CPU 處理能力增長(zhǎng)壓力需求。本文在分布式路由器體系結(jié)構(gòu)的基礎(chǔ)上,提出一種分布式路由管理器架構(gòu),充分利用線卡的CPU 處理能力,分散對(duì)主控CPU 的處理能力要求的方式解決上述問(wèn)題。
第一代和第二代IP 路由器基本上是采用單個(gè)集中處理器運(yùn)行所有的路由協(xié)議模塊,并通過(guò)總線互聯(lián)多個(gè)線卡。路由器的性能主要依賴共享總線的吞吐量和中心處理器的處理能力。因此,這些路由器很難滿足當(dāng)前互聯(lián)網(wǎng)的帶寬要求。新一代的路由器的引入主要是為了解決上述互聯(lián)網(wǎng)應(yīng)用瓶頸[2]。其中,用交換矩陣替代共享總線,可以為線卡之間的數(shù)據(jù)交換提供足夠的帶寬。如圖1 所示,新一代路由器體系架構(gòu)一般由一組線卡、一組轉(zhuǎn)發(fā)引擎和一個(gè)主控卡通過(guò)交換矩陣互聯(lián)構(gòu)成。
其中:
1)線卡提供多個(gè)GE 接口。入口網(wǎng)絡(luò)處理器(iNP:Ingress network processor)是一個(gè)可編程處理器,執(zhí)行分組轉(zhuǎn)發(fā)、包分類及流控策略等功能。在iNP 中包含一個(gè)轉(zhuǎn)發(fā)信息表(FIT:Forward Information Table),指導(dǎo)數(shù)據(jù)分組的轉(zhuǎn)發(fā)。同時(shí)提取接口輸入數(shù)據(jù)中的信令分組轉(zhuǎn)發(fā)到CPU 進(jìn)行下一步的處理。線卡中的入口流量管理(iTM:ingress Traffic Manager)將iNP 傳遞過(guò)來(lái)的分組數(shù)據(jù)轉(zhuǎn)發(fā)到交換矩陣,利用流量接入控制、緩存區(qū)管理及分組調(diào)度等手段維護(hù)流量的負(fù)載均衡。數(shù)據(jù)分組通過(guò)交換矩陣轉(zhuǎn)發(fā)到線卡的出口流量管理模塊(eTM:egress Traffic Manager),而信令則發(fā)送到主控卡。eTM 接收到交換矩陣轉(zhuǎn)發(fā)過(guò)來(lái)的數(shù)據(jù)分組后,進(jìn)行分組排序和擁塞控制處理后,通過(guò)出口處理器(eNP:egress Network Processor)將分組發(fā)送出去。
圖1 集中式路由管理器架構(gòu)
2)控制卡主要執(zhí)行路由協(xié)議處理功能,如BGP、OSPF 等協(xié)議處理??刂瓶ń涌谂c線卡結(jié)構(gòu)比較類似,只是處理器和內(nèi)存容量的要求更高。
3)控制卡和線卡通過(guò)可擴(kuò)展交換矩陣互連。交換矩陣由矩陣卡組成,提供數(shù)據(jù)交換功能。交換卡實(shí)現(xiàn)交換矩陣內(nèi)的流調(diào)度、路徑平衡及擁塞管理。每個(gè)線卡和控制卡都有一個(gè)入端口和出端口與交換矩陣互連。Benes 拓?fù)洌?]因其無(wú)阻塞的特性是最常用的一種交換矩陣互連拓?fù)浣M織方案。
路由器中最重要的一個(gè)組件是路由管理器組件(RTM:Routing Table Manager)。該組件依據(jù)從不同協(xié)議學(xué)習(xí)到的路由數(shù)據(jù)庫(kù)構(gòu)建分組轉(zhuǎn)發(fā)信息表,指導(dǎo)數(shù)據(jù)分組的轉(zhuǎn)發(fā)。對(duì)于具有相同前綴的一組路由,路由管理器按照協(xié)議優(yōu)選級(jí)設(shè)置選擇其中最優(yōu)的一條路由作為轉(zhuǎn)發(fā)信息表?xiàng)l目。路由管理器還需要將路由信息變化、直連鏈路接口狀態(tài)變化通告給路由協(xié)議。為了實(shí)現(xiàn)路由過(guò)濾,還需要與策略管理模塊進(jìn)行交互。
為了使路由器的控制平面具有更好的擴(kuò)展性,一些研究將路由協(xié)議的部分功能分布到線卡中執(zhí)行,將OSPF 的會(huì)話維護(hù)功能分布到線卡中執(zhí)行。不過(guò),目前還未見將路由管理器進(jìn)行分布式實(shí)施的相關(guān)研究。
如圖2 所示,我們建議的分布式路由管理器體系架構(gòu)中,路由管理器負(fù)責(zé)管理路由表和路由策略處理功能,并向路由協(xié)議提供API 接口,以交換路由更新信息并執(zhí)行路由轉(zhuǎn)發(fā)路徑的決策處理。
圖2 分布式路由管理器架構(gòu)
分布式路由管理器由兩個(gè)部分組成:
1)線卡中的路由管理器(LC-RTM)。LC-路由管理器從本地路由協(xié)議實(shí)例中獲取路由信息,并基于線卡端口進(jìn)行局部轉(zhuǎn)發(fā)路徑?jīng)Q策計(jì)算處理。線卡可以根據(jù)網(wǎng)絡(luò)區(qū)域的劃分以集群的方式組成。服務(wù)于同一個(gè)網(wǎng)絡(luò)區(qū)域的線卡構(gòu)成一個(gè)線卡集群。
2)主控卡中的主路由管理器(G-RTM)從LC-RTM 收集的路由信息,并進(jìn)行路由表更新和轉(zhuǎn)發(fā)表更新的處理。G-RTM 也處理用戶配置的靜態(tài)路由,以及基于路由的流量工程等功能。
RTM 模塊的功能主要涉及到鏈路狀態(tài)通告、路由分布、轉(zhuǎn)發(fā)路徑計(jì),QoS 及流量工程相關(guān)的處理過(guò)程。在本文建議的分布式路由管理器體系架構(gòu)中,上述路由管理器的主要功能的實(shí)現(xiàn)過(guò)程如下:
1)鏈路狀態(tài)通告:在分布式路由管理器架構(gòu)下,鏈路狀態(tài)數(shù)據(jù)庫(kù)存儲(chǔ)在線卡中。在分布式架構(gòu)下,同一個(gè)網(wǎng)絡(luò)域中的線卡中的鏈路狀態(tài)數(shù)據(jù)庫(kù)必須保持同步。這個(gè)可以在集群中選擇一個(gè)線卡作為主線卡的方式實(shí)現(xiàn)。當(dāng)一個(gè)線卡收到鏈路狀態(tài)通告信息,它將該信息轉(zhuǎn)發(fā)到該線卡集群的主卡,主卡進(jìn)行鏈路狀態(tài)數(shù)據(jù)的更新以及與集群中其他線卡同步。
2)路由發(fā)布:當(dāng)線卡檢測(cè)到一個(gè)物理鏈路狀態(tài)的改變,LCRTM 會(huì)向路由器中的所有線卡通告該變化。并進(jìn)行路由的重新計(jì)算,并將路由更新通告發(fā)送給鄰居路由器。
3)轉(zhuǎn)發(fā)路徑計(jì)算:轉(zhuǎn)發(fā)路徑的處理時(shí)基于路由協(xié)議,對(duì)于鏈路狀態(tài)路由協(xié)議(如OSPF、IS-IS),路徑計(jì)算可以在線卡集群中的主線卡中執(zhí)行。而基于距離向量協(xié)議將路由更新信息發(fā)送給主控卡執(zhí)行轉(zhuǎn)發(fā)路徑計(jì)算。具體路徑計(jì)算過(guò)程是:路由協(xié)議模塊從鄰居接收到路由更新信息后,相同線卡上的LC-RTM接收到該通告后,根據(jù)協(xié)議類型的不同分別發(fā)送到主控G-RTM和線卡集群中的主線卡LC-RTM 處理。G-RTM 或主LC-RTM通過(guò)執(zhí)行路由算法生成最優(yōu)路由。該路由通過(guò)G-RTM 或LCRTM 注入到轉(zhuǎn)發(fā)表中。
為了比較分布式路由管理器架構(gòu)和集中式路由管理器架構(gòu)的擴(kuò)展能力,從以下幾個(gè)方面進(jìn)行了對(duì)比分析。
1)交換矩陣中的消息數(shù)量:分布式架構(gòu)和集中式架構(gòu)中,通過(guò)交換矩陣的消息數(shù)量基本相同。在集中式架構(gòu)中,所有線卡的鏈路狀態(tài)通告消息都要通告給主控的G-RTM。在分布式架構(gòu)中,鏈路狀態(tài)通告需要發(fā)送到主線卡,只有最優(yōu)路由會(huì)發(fā)送到G-RTM。因此,建議分布式路由管理架構(gòu)未增加交換矩陣中消息流量。
2)在集中式架構(gòu)中,所有的可用路由都存儲(chǔ)在主控卡的G-RTM 中,因此主控卡需要大量的存儲(chǔ)空間。在分布式架構(gòu)中,可用路由存儲(chǔ)在線卡集群中的主線卡LC-RTM 中。通過(guò)這種分布式處理,有效降低了主控卡的大存儲(chǔ)容量要求。
3)在集中式架構(gòu)下,路由管理器功能集中在主控卡上,對(duì)主控卡的CPU 要求極高。在分布式架構(gòu)中,一部分路由管理器處理功能分布到線卡集群中的主線卡執(zhí)行。由于集群主線卡管理的路由容量與集中式主控卡管理的路由容量下,對(duì)CPU的處理要求降低。當(dāng)集群線卡數(shù)量增加后導(dǎo)致主線卡的CPU處理能力不能滿足要求時(shí),可以通過(guò)進(jìn)一步的按層次分布式實(shí)施,降低主線卡的CPU 處理能力要求。
路由管理器是路由器軟件體系架構(gòu)中的核心關(guān)鍵組件。它對(duì)路由器的性能起著關(guān)鍵作用。在路由器中,通過(guò)對(duì)該組件的分布式實(shí)施,充分利用線卡的計(jì)算和存儲(chǔ)資源,提高路由器的可擴(kuò)展能力。
[1]O. Hagsand,M. Hidell,and P. Sjodin. Design and Implementation of a DistributedRouter[C]. Proc. 5th IEEE Int’l.Symp. Signal Processing and Info.Tech.,2005:227-232.
[2]A. Csaszar et al. Converging the Evolution of Router Architectures and IPNetworks[J]. IEEE Network Mag.,2007,21(4):731 -736.
[3]H. J. Chao and B. Liu. High Performance Switches and Routers[J]. Wiley-Interscience,2007:453 -460.
[4]M. Leelanivas,Y. Rekhter,and R. Aggarwal. Graceful Restart Mechanismfor Label Distribution Protocol[S]. IETF RFC 3478,2003.