1 引言
光傳輸技術飛速發展和核心路由表快速增長對路由器性能提出了更高的需求,互聯網快速發展要求路由器隨著網絡規模和流量增長不斷擴展自身性能,雖然通過硬件升級在短期內能夠提高路由器的性能,但受硬件性能限制,僅依靠硬件升級無法滿足互聯網快速發展的需要,為了克服硬件的性能束縛,一些路由器在數據平面采用多機柜分布式互連的集群體系結構提高轉發性能,但目前路由器控制平面只有一個控制單元處理控制任務,數據平面規模擴展將增加控制平面的負載,容易造成控制單元過載。
目前對路由器的研究大部分集中在數據平面,對于逐漸成為路由器性能瓶頸的控制平面缺乏成體系的研究,為了解決現有路由器控制平面基于單一控制單元的集中式控制所面臨的問題,研究人員提出了路由器分布式控制方案。
為了更好地了解路由器集中控制與分布式控制的特點,我們從可靠性、可擴展性和部署代價等方面對它們進行了比較,如表1所示。
路由器控制平面分布式互連和多實例并行可有效地避免單一硬件或軟件失效導致的網絡振蕩,提高網絡穩定性和路由器容錯能力,分布式控制能夠支持性能和功能的靈活擴展,提高路由器的可擴展性,控制單元之間和控制單元與轉發單元之間分擔負載,可克服單一硬件的性能瓶頸,減少控制單元過載,提高路由器的可靠性,硬件分布式互連和軟件功能分布式、模塊化設計和實現可實現不中斷服務升級,提高路由器的可用性,但與集中式控制相比,分布式控制存在內部通信開銷大和能耗高、管理和維護復雜等不足。
表1 路由器集中式控制與分布式控制比較
文獻[5]雖然按照分層模型綜述了可擴展路由器目前的研究進展,但它重點分析和比較了數據平面的擴展方案,而對控制平面—這個制約路由器可擴展的瓶頸和關鍵問題缺少系統和針對性分析。
本文深入剖析了路由器集中控制存在的局限性,總結出路由器控制平面從集中式向分布式發展需要解決三個關鍵問題:(1)分布式控制平面,由多個控制單元分布式互連而成的分布式控制平面可有效克服單一控制單元的性能瓶頸和可擴展性差等不足,為控制平面的性能和功能靈活擴展提供支持;(2)分布式控制平面內部通信,物理上分布的控制單元和軟件功能模塊要形成一個整體,需要分布式控制平面內部通信協議實現硬件和軟件的透明通信;(3)分布式路由協議,為適應分布式控制平面體系結構,路由協議和算法應分布式實現,充分利用系統的計算和存儲資源,提高路由器的性能,本文重點圍繞這三個關鍵問題綜述了這一領域的最新研究進展,并對各種方案進行了分析和比較。
2 路由器集中控制面臨的主要問題
2.1 性能瓶頸
目前路由器控制平面只有一個控制單元處理協議分組,Iannaccone,G等人通過網絡測量得出,50%的網絡故障可能因路由器控制平面過載丟失“心跳”消息引起,根據目前互聯網的發展速度和硬件技術發展速度,基于單一控制單元的集中式控制平面很難滿足互聯網快速增長的需求。
2.2 單點失效
現有路由協議大部分集中在主控制單元上運行,很容易因硬件或軟件局部功能失效或代碼錯誤導致整個協議失效,例如:鄰居建立與維護功能失效將導致整個協議失效,雖然現有路由器控制平面采用主、從備份方式,但是主、從備份的失效恢復速度相對較慢,影響了網絡的可用性,為提高網絡可用性,目前通過向網絡中增加路由器和運行虛擬路由器冗余協議(VirtualRouterRedundancyProtocol,簡稱VRRP)實現冗余備份,這提高了網絡的運營成本,增加了網絡連接的復雜度和網絡管理的難度。
2.3 可擴展性差
各路由器廠商都采用私有技術,分別設計各自專用的部件、接口和通信協議,不同生產廠商的路由器部件之間不能互換和通信,因此,在網絡中,這些路由器只能作為獨立的網絡設備互連,而不能通過互連擴展為一臺更高性能和更多功能的路由器,技術封閉私有和集中控制嚴重影響了路由器的可擴展性。
基于路由器集中控制所面臨的問題,研究人員提出了路由器分布式控制方案,通過分布式互連、并行處理和冗余備份等技術提高路由器的性能、可靠性和可擴展性。
雖然路由器分布控制是一種發展趨勢,但是隨著硬件處理能力的不斷提高,集中式還將長期存在,Ballani,Hitesh等人研究表明兩種控制方式相結合將有效延長現有路由器的生存周期,改進網絡性能。
3 分布式控制平面
路由器分布式控制平面主要分為集群路由器(ClusterRouter,簡稱CR)和轉發與控制分離(ForwardingandControlElementsSeparation,簡稱ForCES)兩種結構。
3.1 CR
CR是多個可獨立運行的、具有路由功能的節點通過某種互連結構(例如:高速以太網)連接成性能、功能可擴展的單映像路由器,集群路由器根據內部節點的類型可分為軟件集群路由器和集群路由器。
軟件集群路由器由一臺路由器與多臺具有路由處理能力的PC機相連而成,軟件集群路由器通過向集群中增加路由處理節點擴展路由器的性能和功能,目前比較典型的軟件集群路由器有CLARA、Suez和VERA,軟件集群路由器借助多個路由處理節點并行,實現分布式控制單元間的負載分擔,提高路由處理性能,多臺PC機和一臺路由器組成的分布式控制平面可實現功能和性能靈活擴展,部署代價比較低,但軟件集群路由器不支持數據平面的擴展,無法提高數據平面性能,在軟件集群路由器中,路由器節點失效會導致整個系統不可用,降低了系統的可靠性。
與軟件集群路由器相比,集群路由器HCR的內部節點都是具有路由和轉發功能的路由器,在集群路由器內部,節點之間分擔負載,并行處理不同協議的分組,分布式控制單元之間功能可相互冗余備份,能夠支持數據平面的靈活擴展。
由于集群路由器的最小組成單元是路由器,控制單元與轉發單元之間采用私有協議和專用接口通信,因此,內部節點的互連需要對路由器進行相應的修改,增加了部署代價。
3.2 ForCES
ForCES體系結構如圖1所示,ForCES體系結構允許一臺路由器的控制平面有多個控制單元,它們之間通過內部高速網絡互連,控制單元(CE)與轉發單元(FE)可采取預先配置或動態聯合的方式實現路由器相應的功能,CE和FE間的自由聯合可靈活擴展路由器的性能和功能,控制單元之間可彼此分擔負載、冗余備份和實現分布式控制,ForCES體系結構為一臺路由器內部多個控制單元分布式互連和規模擴展提供了一種靈活的機制,FE/CE、FE/FE、CE/CE間的標準接口和FE/CE間的ForCES通信協議為控制平面的性能和功能靈活擴展提供了支持,通過標準化的機制,CE和FE變成相互分離的標準組件,克服了集群路由器控制單元和轉發單元不能分離的不足,可對CE和FE數量靈活擴展,有效克服單個部件性能的束縛,延長路由器生存周期,保護投資,
圖1 ForCES體系結構
ForCES方案雖然為路由器實現控制單元、數據單元的規模擴展和擴展路由器的功能提供了一種靈活機制,但是,它只提出了分布式控制平面體系結構和CE與FE之間的ForCES通信協議,沒有對路由軟件進行分布式、模塊化設計。
DMR(DecentralizedModularRouter,簡稱DMR)是基于ForCES框架實現的分布式模塊化路由器,在DMR中,CE和FE是獨立的標準組件,設計有標準的ForCES接口,相互通過內部高速以太網互連,DMR路由器支持控制單元數量和控制平面功能的靈活擴展,通過內部通信協議Forz(ForCESonzebra,簡稱Forz),多個分布式互連的控制單元聚合為一個整體,彼此分擔負載和冗余備份,DMR對路由協議進行了功能分解和模塊化設計,將路由協議的鄰居建立與維護功能遷移到轉發單元上實現,利用轉發單元的處理資源分擔控制平面的負載,實現了路由協議分組的并行處理,提高了路由器對網絡變化的感知能力和路由協議的可用性,多個控制單元分布式互連和路由協議的功能分布可提高路由器的可靠性。
由于CE與FE的標準化需要一段較長的時間,在短時期內,這種方案還很難體現它的優勢,但是,DMR實現了基于FE與CE分離的多個控制單元間的分布式互連的原型系統,為路由器分布式控制平面的設計提供了很好的參考和借鑒作用。
4 分布式控制平面內部通信
隨著路由器控制平面由集中式向分布式發展,為了使物理上分布式互連的控制單元和轉發單元組合成一臺完整的路由器,需要設計和實現分布式控制平面內部通信協議,目前分布式控制平面內部通信方案主要有集群路由器內部通信協議(RouterClustERProtocol,簡稱RCP)和Forz兩種。
4.1 RCP
J.B-Guan等人設計了集群路由器內部通信協議RCP,其內部接口和協議框架模型如圖2所示。
圖2 RCP協議內部接口和協議框架模型
通過RCP協議,集群路由器內部各節點都可獲得組成該集群路由器的節點數量、編號、鄰居節點的性能和類型、內部端口號和外部端口號等信息,集群路由器內部各節點形成對整個集群路由器一致的內部拓撲視圖,在轉發平面上,多個路由器節點通過標準互連卡互連。
集群路由器內部互連接口的物理層采用高速光互連技術(VeryShortReach,簡稱VSR);鏈路層使用常用的高級數據鏈路控制(HighLevelDataLinkControl,簡稱HDLC)幀封裝格式,通過制定多種速率等級備選,滿足了集群路由器內部不同速率互連的需要,提高了互連的靈活性,傳輸的數據幀中包含符合NPSI規范的數據信元和流控信元兩種格式,數據信元交換數據報文,流控信元交換集群路由器內部各個交換網絡的流量控制信息,數據信元頭部附加一個包含信元全局目的端口信息的標簽,在它所經過的每一個交換網絡節點的內部互連卡上,互連卡根據全局端口設備視圖與本地交換網絡端口的映射關系確定本地交換網絡的目的端口,將信元送往本地交換網絡進行交換。
在控制平面,多個控制單元通過RCP協議交換拓撲信息,形成統一的集群路由器管理視圖和設備視圖,相互間協同路由計算和協議處理,同步轉發表等功能,由于RCP方案只設計了集群路由器內部通信協議的框架,沒有可參考的協議的具體工作機制,而且它只適用于集群路由器內部節點間的通信和數據交換,具有一定的局限性。
4.2 Forz
O,Hagsand等人基于開源路由軟件Zebra和ForCES體系結構設計了路由器分布式控制平面內部的通信協議Forz,Forz協議在ForCES協議框架的基礎上,對其內部通信機制進行了擴展,可實現CE/FE,CE/CE,FE/FE間的通信,其消息格式如圖3所示,Forz協議的通信機制分為:聯合、配置和數據傳輸三個階段。
圖3 Forz協議消息格式
在聯合階段,每個CE或FE通過IP可靠組播的方式向同組內的其它成員發送Hello消息,報告自身的信息,Hello機制管理成員的加入和離開,通告內部控制和數據流的組播地址、成員的信息和心跳檢測。
當一個成員剛加入時,它的初始Forz數據庫為空,首先,它向內部控制流的組播地址發送一個Hello消息,Hello消息中包括自身的性能、端口數量、類型等信息,收到Hello消息后,組內的其它成員將新成員的信息加入到自己的數據庫,同時,組內現有成員向新加入的成員發送Hello消息通告自己的功能、資源和端口地址等信息,收到消息后,新加入的成員向自己本地的Forz數據庫中添加相應成員的信息,當一個成員離開時,它發送Bye消息,組內其它成員收到這個消息后,將它的信息從數據庫中刪除,當一個成員失效時,由于缺少心跳消息,其它的成員將其從數據庫中刪除。
在配置階段,Forz協議用于創建、刪除和獲取網絡接口、IP地址、路由信息和鄰居的信息等,Forz協議通過可靠組播對配置信息進行分發,建立本地端口與全局端口的映射關系,形成內部一致的路由表。
在數據傳輸階段,Forz協議對本地數據進行封裝,然后通過內部網絡交換到相應的輸出端口,在輸出端口解封裝后發送到外部網絡。
Forz實現了分布式控制平面內部通信的工作機制和協議消息格式;對分布式控制平面內部路由和通信機制的設計具有很好的參考和借鑒作用。
4.3 小結
現有的分布式控制平面方案及其內部通信協議如表2所示。
集中式控制平面路由器內部通信采用私有協議,技術成熟,部署代價相對較低,但性能和功能相對固定,可擴展性差,集群路由器分布式控制單元間采用RCP協議通信,但它需要對部分路由器進行修改,增加了部署代價,ForCES和DMR內部采用標準的接口和協議進行通信,基于標準化組件容易實現對控制單元的功能定制,支持性能和功能的靈活擴展,但標準化設計是一個長期的過程,因此部署代價目前相對較高。
表2 路由器控制平面體系結構與內部通信
5 分布式路由協議和算法
現有路由協議的功能大都集中在控制平面,為充分利用分布式控制單元和轉發單元的資源,需要對路由協進行功能分解和分布式設計,將不同的功能分布在相應的控制單元或轉發單元上實現,設計分布式路由算法,充分利用多個控制單元的計算資源,提高路由計算性能。
5.1 分布式路由協議
5.1.1 DCP
M,Deval等人提出了分布式控制方案(DistributedControlPlane,簡稱DCP),將路由協議的功能分為三類:
(1)鏈路相關功能,主要包括分組轉發和鄰居狀態維護,這些功能可分布在轉發單元上實現,利用轉發單元的處理資源分擔控制單元的負載,
(2)協議處理功能,例如:路由計算,協議狀態機的維護,這些功能需要在多個控制單元間實現分布,
(3)更新控制信息功能,例如,更新路由表,這些功能很難進行分布式設計,應在控制單元實現,DCP方案將OSPF的Hello機制遷移在轉發單元實現,有效地利用了轉發單元的處理資源處理協議的信令分組,分擔了控制單元的負載,減少了Hello分組到控制平面的傳輸時間,縮短了等待控制單元處理的排隊時間,加快了路由器對網絡故障的感知和響應,信令功能分布在轉發單元實現可避免轉發單元規模擴展而導致的內部通信開銷,緩解了數據平面擴展對控制平面處理能力的需求,協議信令功能的分布和并行,提高了協議的可靠性和容錯性。
DCP雖然提出了路由協議功能分布的原則,但缺乏對路由協議功能分布和模塊化設計的細節。
5.1.2 MCPB
模塊化BGP(ModularControlPlaneforBGP,簡稱MCPB)按照功能將BGP協議劃分為信令模塊(BGPSessionManager)和路由處理模塊(BGPProcessing),信令模塊分布在轉發單元,用于維護鄰居關系、接收鄰居路由通告和處理“心跳”消息、分配路由計算任務,路由處理模塊分布在控制單元,進行路由計算,通過對BGP協議功能分解和模塊化設計,MCPB方案可實現對BGP協議分組并行處理,能夠利用轉發單元的處理資源分擔控制單元的負載,BGP相應的功能模塊分布在不同的控制單元或轉發單元上并行運行提高了可靠性和可擴展性。
5.1.3 DCPA
K-K,Nguyen等人設計了路由軟件的分布式控制平面體系結構(DistributedControlPlaneArchitecture,簡稱DCPA),分別對OSPF/ISIS和BGP等路由協議進行了功能分解和模塊化設計,例如:將OSPF協議分解為OCC(OSPFControlComponent)模塊和OSC(OSPFSignalingComponent)模塊,OSC模塊分布在轉發單元,OCC模塊分布在控制單元,每個控制單元上運行的路由協議模塊在其它控制單元上都相應地備份,提高了可靠性,DCPA將BGP協議分解為BGP鄰居建立與維護模塊、本地路由管理(L-RTM)模塊和全局路由管理(G-RTM)模塊,鄰居建立與維護模塊分布在轉發單元,L-RTM和GRTM分布在不同的控制單元,每個控制單元的BGP鄰居建立與維護模塊接收來自鄰居的路由信息,L-RTM先決策出本地最優路由,然后發送給G-RTM模塊,G-RTM模塊從各個L-RTM發送的本地最優路由中計算出全局最優路由,BGP路由協議功能的分布和模塊化設計提高了控制平面的可擴展性。
DCPA方案為路由協議的功能分布和模塊化設計提供了很好的參考,由于DCPA方案只是從功能上考慮了路由協議的功能分布,沒有考慮路由協議模塊相互之間的耦合度和通信開銷,因此,在實際的路由協議功能分布和模塊化設計中需要考慮這些因素。
5.1.4 DRTM
K,Khoa等人對路由表管理進行了分布式、模塊化設計(DistributedRTM,簡稱DRTM),DRTM方案將路由表管理分解為線卡路由表管理模塊(LC-RTM)和全局路由表管理模塊(G-RTM),LC-RTM分布在線卡,線卡維護它所在區域的鏈路狀態數據庫,當多個線卡具有相同的拓撲信息時,這些線卡組成一個集群,在集群中選舉超級節點負責計算重疊區域的路由表,G-RTM分布在控制單元,G-RTM模塊接收各LC-RTM模塊發送的路由信息最終計算出全局路由表。
DRTM方案充分利用數據平面的計算和存儲資源來提高路由表的計算效率,但目前路由器的線卡不具備路由計算能力,因此,該方案不適合于常規路由器,實現代價比較高,另外,它在一臺集中式控制路由器的控制單元與轉發單元之間實現路由表計算的分布式,無法避免控制單元或G-RTM模塊導致的單點失效,降低了可靠性。
5.1.5 小結
路由協議的分布式和模塊化設計方案如表3所示。
表3 路由協議功能分布式設計
目前路由協議大都集中在主控制單元,影響了可靠性,不能實現負載分擔和并行處理,DCP將路由協議信令功能遷移到轉發單元,與集中式控制相比,在一定程度上提高了系統的可靠性和并行處理能力,MCPB和DCPA對現有協議功能進行分布式模塊化設計,提高了并行性、可靠性和可擴展性,DRTM基于高端路由器的線卡具備計算能力設計了路由表分布式管理方案,對線卡的性能要求較高,由于它在同一路由器的控制單元與線卡之間實現分布式路由表管理,影響了系統的可靠性,但是,利用轉發單元計算路由較好地分擔了控制單元的負載,提高了路由器的并行處理性能。
5.2 分布式路由算法
為了提高路由計算性能,應設計分布式路由算法,充分利用分布式控制平面多個控制單元的資源,提高路由計算性能,目前的分布式路由算法主要分為:(1)分布式并行OSPF路由算法,包括PDSPT、BPA和PRTC;(2)分布式并行BGP路由算法,主要有FDHP和ITBGP。
5.2.1 分布式并行OSPF路由算法
(1)PDSPT
Zhu-Y.B等人根據最短路徑樹(ShortestPathTree,簡稱SPT)增量更新的特點,利用原有的SPT樹設計了并行動態SPT算法(ParallelDynamicSPT,簡稱PDSPT),每次網絡拓撲發生變化,將原SPT樹上受鏈路變化影響的節點加入隊列,并分配給相應的控制單元,每個控制單元每次從本地選出距離增量最小的節點,控制單元之間利用廣播方式選出全局距離增量最小的節點,每次選出全局距離增量最小的節點后,根據原SPT樹上的父子關系,相應更新全局最小節點原SPT樹上子孫的距離,并將它們從受影響節點的隊列中刪除,然后將新受影響的節點加入隊列,反復迭代,直到受影響節點的隊列為空。
PDSPT算法利用分布式控制平面多個處理器資源分擔計算負載,實現了OSPF路由表的并行計算,由于利用了SPT增量更新,減少了整個算法的迭代次數,當網絡拓撲規模比較大,并且鏈路故障對原SPT樹上的節點影響比較多時,這個算法的并行性能較好,當網絡拓撲中每個受影響節點的入度和出度比較接近時,控制單元的負載比較均衡,由于每次迭代控制單元間需要相互通信,因此,路由器內部通信開銷比較大,受網絡拓撲結構和迭代算法的影響,系統的負載均衡性差,影響了并行性能。
(2)PSPT
Zhang-X.P等人針對OSPF協議設計了并行SPT算法(ParallelSPTAlgorithm,簡稱PSPT),PSPT根據路由器中控制單元的數量p利用圖分割理論將網絡拓撲分割成幾個區域,每個控制單元負責相應區域的路由計算,首先,每個控制單元并行計算出各自區域內所有邊界程度上提高了系統的可靠性和并行處理能力,MCPB和DCPA對現有協議功能進行分布式模塊化設計,提高了并行性、可靠性和可擴展性,DRTM基于高端路由器的線卡具備計算能力設計了路由表分布式管理方案,對線卡的性能要求較高,由于它在同一路由器的控制單元與線卡之間實現分布式路由表管理,影響了系統的可靠性,但是,利用轉發單元計算路由較好地分擔了控制單元的負載,提高了路由器的并行處理性能。
5.2 分布式路由算法
為了提高路由計算性能,應設計分布式路由算法,充分利用分布式控制平面多個控制單元的資源,提高路由計算性能,目前的分布式路由算法主要分為:(1)分布式并行OSPF路由算法,包括PDSPT、BPA和PRTC;(2)分布式并行BGP路由算法,主要有FDHP和ITBGP。
5.2.1 分布式并行OSPF路由算法
(1)PDSPT
Zhu-Y,B等人根據最短路徑樹(ShortestPathTree,簡稱SPT)增量更新的特點,利用原有的SPT樹設計了并行動態SPT算法(ParallelDynamicSPT,簡稱PDSPT),每次網絡拓撲發生變化,將原SPT樹上受鏈路變化影響的節點加入隊列,并分配給相應的控制單元,每個控制單元每次從本地選出距離增量最小的節點,控制單元之間利用廣播方式選出全局距離增量最小的節點,每次選出全局距離增量最小的節點后,根據原SPT樹上的父子關系,相應更新全局最小節點原SPT樹上子孫的距離,并將它們從受影響節點的隊列中刪除,然后將新受影響的節點加入隊列,反復迭代,直到受影響節點的隊列為空。
PDSPT算法利用分布式控制平面多個處理器資源分擔計算負載,實現了OSPF路由表的并行計算,由于利用了SPT增量更新,減少了整個算法的迭代次數,當網絡拓撲規模比較大,并且鏈路故障對原SPT樹上的節點影響比較多時,這個算法的并行性能較好,當網絡拓撲中每個受影響節點的入度和出度比較接近時,控制單元的負載比較均衡,由于每次迭代控制單元間需要相互通信,因此,路由器內部通信開銷比較大,受網絡拓撲結構和迭代算法的影響,系統的負載均衡性差,影響了并行性能。
(2)PSPT
Zhang-X,P等人針對OSPF協議設計了并行SPT算法(ParallelSPTAlgorithm,簡稱PSPT),PSPT根據路由器中控制單元的數量p利用圖分割理論將網絡拓撲分割成幾個區域,每個控制單元負責相應區域的路由計算,首先,每個控制單元并行計算出各自區域內所有邊界節點到這些區域每個節點的最短路徑,對于包含根節點的區域,計算根節點到這些區域中每個節點的最短路徑,然后,將每個區域的邊界節點和根節點組成新的拓撲圖,再計算根節點到這個區域邊界節點的最短路徑;最后并行地將根節點到每個區域邊界節點的路徑和區域邊界節點到區域內每個節點的最短路徑合并,生成最終的SPT樹。
每次拓撲變化,PSPT算法需要重新分割網絡拓撲,算法復雜度高,因此,PSPT算法不適用于網絡拓撲頻繁變化時的SPT計算,基于圖分割能夠較好地實現負載均衡,并行性能較好,PSPT算法在網絡拓撲規模比較大時能夠獲得較好的性能。
(3)PRTC
Xiao-X,P等人根據集群路由器的分布式控制平面提出了并行OSPF路由算法(ParallelRoutingTableComputation,簡稱PRTC),利用集群路由器多個路由節點將OSPF區域按照收集的拓撲信息進行分割,每個節點負責維護自己所在區域的拓撲,各自計算這個區域的路由表,當多個路由節點的路由區域重疊時,選舉指派節點計算重疊區域的路由表,每個區域的指派節點向所有節點通告自己的路由表,每個節點選擇性地將接收的路由合并生成最終的路由表,當自己所在區域的路由變化,每個指派路由節點向其它路由節點廣播變化的路由。
PRTC算法可實現OSPF路由表的并行計算,但它對網絡拓撲依賴比較大,由于每個節點在網絡中所處的位置不同,它們各自的計算負載不同,不能很好地實現節點間的負載均衡,并行性較低,每個節點不維護全局的鏈路狀態數據庫,一定程度上降低了可靠性。
5.2.2 分布式并行BGP路由算法
(1)FDHP
Zhang-X,Zh等人設計了BGP并行路由算法(FullDistributedHighParallelizedBGP,簡稱FDHP),集群路由器的每個路由節點分別充當與它相連的BGP鄰居的代理,負責與其相連的BGP鄰居交換路由信息,每個節點根據本地路由信息計算本地最優路由,每個節點將本地最優路由廣播給集群中其它節點,從而保證每個路由節點都維護一致的全局路由表,當集群中某個節點失效時,將它代理的BGP鄰居會話和路由計算任務重新分配給其它節點。
FDHP方案有效地利用了集群內部各個路由節點的計算資源和存儲資源,每個路由節點只計算和存儲一部分BGP候選路由,多個路由節點分擔負載提高了路由計算性能,但節點間以廣播的方式同步路由信息增加了內部的通信開銷。
(2)ITBGP
Wu-Kun等人設計了“迭代樹”BGP并行路由算法(IterativeTreeBGP,ITBGP),ITBGP方案根據BGP鄰居的數量n和每個控制單元的BGP鄰居數量,采用廣度優先算法構建一棵k階迭代樹,每當路由發生變化,樹中相應的葉子節點首先計算出本地最優路由,然后發送給自己的父節點,這樣沿著葉子向根的方向反復迭代,最后在根節點計算出全局最優路由。
當負載分布比較均衡時,ITBGP算法的性能最優,當負載分布不均衡時,例如,到某一目的地的路由只存儲在一個內部節點時,基于樹形結構需要從葉子到根的方向多次迭代計算,降低了路由計算效率。
5.2.3 小結
PDSPT將計算SPT樹步驟中計算鄰居節點的距離和搜索全局距離最小節點實現了并行處理,但算法復雜度較高,不能實現較好的負載均衡,PSPT將拓撲進行分割,能夠較好實現路由計算的并行和負載均衡,但算法復雜度較高,PRTC對網絡拓撲進行分割,算法性能受網絡拓撲結構影響比較大,負載均衡性能差,但算法復雜度低。
FDHP按鄰居會話將BGP路由計算任務進行劃分,能夠較好地實現BGP路由計算并行,算法復雜度低,采用廣播的方式進行路由信息同步,減少了路由計算的迭代次數,多個節點并行計算,提高了系統的并行性能,但是,在互聯網中,由于多個鄰居會通告同一故障,基于廣播的方式進行路由信息同步將導致內部大量的通信開銷,ITBGP雖然按鄰居會話劃分負載并行計算BGP路由,但需要經過多次迭代才能計算出全局最優路由,隨著樹高度增加,內部通信開銷和延時不斷增大,影響了系統的并行性能。
6 結論和研究展望
路由器控制平面的分布式實現是一種發展趨勢,也是路由器體系結構及軟件設計必須解決的一個關鍵性技術問題,通過以上分析和比較,本文認為實現分布式控制平面應該從以下幾個方面入手:
(1)分布式控制平面體系結構是實現路由器分布式控制的基礎,它為標準化接口和內部通信設計提供依據,為控制平面性能和功能的靈活擴展提供支持。
(2)標準化接口和通信機制是實現與互連技術無關的關鍵技術,是控制單元與轉發單元數量和功能靈活擴展的基本保證。
(3)軟件分布式、模塊化設計是提高路由器性能,支持路由器功能和性能動態擴展的主要途徑,合理設計將有利于提高路由器的可用性和可擴展性。
雖然目前提出了一些路由器分布式控制方案,但是路由器實現分布式控制仍然面臨一些關鍵問題亟待解決,需要進一步深入研究:(1)任務分配,如何將原來并行運行在一個控制單元上的多個路由協議任務合理地分布到多個分布式的控制單元,這需要研究分布式控制平面的任務分配方案,即要考慮每個任務對CPU的占用時間,又要考慮不同路由協議模塊之間的通信開銷,實現負載均衡,使內部通信開銷最小,從而優化整個系統的性能,(2)分布式路由算法,應設計高效的分布式路由算法,充分利用各個節點的計算和存儲資源,提高系統的性能。
轉載請注明出處:拓步ERP資訊網http://www.lukmueng.com/
本文標題:路由器分布式控制研究綜述