摘 要:MPLS是目前Internet核心網上最看好的技術,基于Crossbar的高速交換技術的發展也很快,但是如何實現2種技術的有機結合以到達最優的性能卻有一系列問題需要考慮。
本文結合某MPLS路由器的設計項目,綜合考慮了當前MPLS的標準以及有關交換結構的最新技術,對實現MPLS交換路由器進行了深入研究,并詳細探討了高速接口、排隊和調度以及Crossbar等關鍵模塊的設計和實現方案。
關鍵詞:因特網;多協議標簽交換;交換路由器;設計?
Internet業務量的飛速增長以及寬帶技術的不斷出現 ,對 Internet的網絡結構以及互連的核心設備路由器的性能提出更高的要求。而由IETF提出的MPLS(多協議標簽交換)技術以其在以下幾個方面的絕對優勢而成為目前最為看好的核心網技術:能夠提供對QoS業務的靈活支持;能夠支持流量工程以提高網絡資源的利用率;能夠靈活支持將來Internet上第一大業務VPN;能夠有足夠快的轉發速率[1,2,3]。?
高端路由器廠商Cisco、Juniper等都推出了自己的MPLS產品,但是并沒有公開其詳細的設計細節。我們的目的是設計一種支持多種接口和多種協議的高速交換路由器,該路由器既可以應用于校園網/企業網的骨干,也可以應用于大型ISP的邊緣接入。我們的設計吸取了近年來國際上對寬帶IP路由器技術前沿的研究成果,設計思想主要包括 4個方面:將路由引擎 (Routing Engine)和轉發引擎 (Forwarding Engine)分開;用快速的硬件實現IP分組的頭處理、路由和轉發;用多個分布式的接口單元加中央控制器的模式取代中央處理器加接口卡的模式;用交換結構 (Switch Fabric)提高各接口單元之間的數據通信速度[4,5]。?
基于以上的設計思想,本文描述的MPLS交換路由器包括以下組件: LDP/CR-LDP、MPLS分類器、業務分類器、地址分類器、接納控制、資源管理、分組排隊和調度以及交換結構Fabric。該MPLS路由器的模塊化設計不僅能夠提高分組轉發率,提供靈活的QoS支持、流量規劃以及故障恢復能力,還具有很好的可擴展性。?
一、 MPLS基本概念及標簽交換路由器?
MPLS即多協議標簽交換技術,是一種在開放的通信網上利用標簽引導數據高速、高效傳輸的新技術,它的價值在于能夠在無連接的網絡中引入連接模式。MPLS采用傳統的IP路由,但將路由與分組轉發分離開來,這使得在MPLS網中可以通過修正轉發方法來推動路由技術的演進。而且,網絡中分組的轉發基于定長標簽,簡化了轉發機制,使得路由器容量很容易擴展到太比特級。實際上當前推出的幾乎所有高速路由器都支持MPLS。?
MPLS還是一種與鏈路層無關的技術,它同時支持FR、ATM、PPP、SDH、DWDM等,保證了多種網絡的互聯互通,可以將各種不同的網絡傳輸技術統一在同一個MPLS平臺上,最大限度地兼顧原有的各種技術,保護現有投資和網絡資源。而MPLS能夠靈活地支持流量工程、CoS、QoS和VPN的能力則是MPLS實用中最據吸引力的亮點。?
1. MPLS標簽交換過程?
圖1所示為分組在MPLS網絡中的轉發過程,主要經過以下3個步驟:?
(1)入口LSR在FIB(Forwarding Information Base)表中按照傳統的最長匹配算法對FEC進行查找,找到要壓入的標簽5和相應的出接口,然后壓入標簽發送分組到相應的端口;?
(2)核心LSR根據標簽棧頂層的標簽5查找ILM(Incoming Label Map)表,找到要進行的操作為標簽的交換,交換使用的標簽為9,執行標簽交換,然后發送分組到相應的接口;?
(3)出口LSR根據ILM查找的結果進行標簽的彈棧(POP),然后再按照第三層IP地址進行轉發。?
在拓撲驅動的模式中,FIB和ILM是在路由協議(BPG、OSPF或RIP)建立路由表的同時建立起來的。?
2. MPLS路由器的結構?
MPLS路由器采用高速交換、分布式轉發和集中式管理相結合。當前路由器設計采用的主流結構由接口卡、交換結構和CPU卡組成。CPU卡的主要功能是運行路由協議(BGP、OSPF或RIP)和MPLS信令(LDP/CR-LDP),負責各接口卡上的路由表、FIB表以及ILM表的更新以及同步,同時它還完成接納控制、資源管理以及某些設備管理功能。接口卡完成物理層處理、MAC層處理、IP層處理,主要包括MPLS分類、業務分類以及排隊和調度功能。?
圖2給出的是MPLS交換路由器的概念模型,由以下主要組件組成:CR-LDP/LDP、MPLS分類器、業務分類器、地址分類器、接納控制、資源管理和隊列管理器等。各模塊主要功能如下:
LDP/CR-LD:產生和處理LDP/CR-LDP消息;?
MPLS分類器:為進入的分組分類,并為相應的分組執行標簽的操作,如壓棧、彈棧和標簽交換;?
業務分類器:根據標簽、入接口以及MPLS頭中的CoS對分組進行業務分類,并把分組與相應的隊列關聯起來;?
接納控制:檢查CR-LDP中攜帶的流量參數,并判斷該路由器是否有足夠的資源來滿足所需的QoS要求;?
資源管理:管理資源信息以及隊列的參數,主要包括帶寬和緩存等;?
隊列管理器:管理隊列中的分組,完成分組的調度,使其獲得相應的服務。
二、 標簽交換路由器的設計?
1. MPLS標簽交換以及流量處理?
MPLS標簽交換以及流量處理主要在接口卡上完成,本節介紹接口卡詳細功能,我們在此不討論物理層和MAC層的處理。如圖3所示,當MPLS路由器接收到一個分組后,它執行如下的操作:?
(1)MPLS分類器首先判斷接收到的分組是帶標簽的還是不帶標簽的。如果攜帶了標簽,MPLS分類器就通過查詢ILM表得到相應的標簽,然后對分組執行標簽交換。如果未攜帶標簽,則查詢FIB表,若其對應的LSP存在,就與攜帶標簽一樣處理。否則,分組被發送到地址分類器。?
(2)地址分類器根據路由表對分組執行第三層轉發。
? (3)如果分組的下一跳就是自己,分組就被送到端口分類器中,然后根據端口號送往相應的上層應用處理程序,如LDP/CR-LDP、OSPF、BGP等。否則,就根據查詢的結果進入隊列管理器進行排隊,等候服務。?
(4)當業務分類器接收到來自MPLS分類器的分組后,查找ERB表得到相應的ServiceID,ServiceID指示了分組應該被怎么排隊。然后根據ServiceID以及輸出接口信息,分組被發送到相應的隊列中,并得到相應QoS的服務。來自地址分類器的分組就直接發送到相應輸出接口的最低優先級隊列進行排隊。?
從以上分組轉發的過程我們看到,分組處理時需要以下4個表:?
FIB表只有在入口LSR上保存該表,它記錄了FEC到標簽的映射信息;
? ILM表每個LSR上都保存該表,它記錄了已建立的LSP的信息,為攜帶標簽的分組進行標簽交換提供信息,它主要包括入/出標簽和入/出接口;?
ERB表主要維護分組的排隊信息,為不同等級的業務提供不同QoS的保證;
? 路由表與傳統的路由表相同,由路由協議維護,主要完成第三層轉發信息的存儲。
2. 資源預留?
接納控制和資源管理器組件是為了實現資源管理而設計的。資源管理器負責為隊列管理器創建和維護隊列提供參數信息并且負責資源信息的管理(如資源表)。?
圖4所示為MPLS路由器對資源預留消息的處理過程。當LDP/CR-LDP組件接收到CR-LDP的Request消息時,它調用接納控制來檢查路由器是否有足夠的資源。如果有,接納控制模塊通過更新資源表來預留資源,然后LDP的Request消息被發送到下一個節點。?
當LDP/CR-LDP組件接收到CR-LDP的Mapping消息后,在ILM表中記錄標簽和接口信息,并且在ERB中記錄CR-LSP的信息(如LSPID),產生ServiceID。然后,調用資源管理器修改此CR-LSP對應隊列的參數,并且在ERB表中記錄ServiceID。最后,CR-LDP的Mapping消息被發送到上游節點。
3. 隊列管理和Crossbar調度算法?
當前的高速交換機和路由器采用的主流排隊方法和Crossbar調度方式有3種:輸入排隊、輸出排隊和輸入/輸出排隊(CIOQ:Combined Input-output Queued)。?
輸入排隊實現簡單,存儲器讀寫速率也只需和接口線速相等,Fabric加速比只需為1。但是,單隊列的輸入排隊會造成隊頭阻塞(HOL),使吞吐率只有58.6%[6]。由于輸出排隊受限于存儲器的讀寫速率,并且要求Fabric的加速比為N(N為端口數),所以也不適于高速的交換。本文中的設計選擇了CIOQ排隊結構,它是一種結合輸入/輸出排隊的實現方法,在輸入排隊上采用VOQ方式,避免了HOL,大大提高了吞吐率,在輸出排隊上采用FIFO。如圖5所示。研究證明CIOQ的平均分組時延、分組丟失率、分組阻塞率、最大吞吐率都優于其它的方法,并且當Fabric加速比為4時,可以達到99%的吞吐率[5,7]。
? 由于Internet上越來越多的業務具有不同的QoS要求,因此我們在輸入排隊處采用兩級調度。去往同一端口的分組進入VOQ之前首先進入CBQ進行排隊,然后按照不同的優先級進行調度進入VOQ。CBQ是優先級排隊的一個變種[8,9],該算法可以通過為某些類型的流量設置優先級來提供公平的排隊,并且不允許某個等級的流量獨占系統資源和帶寬。算法通過改變CBQ的參數可以分別達到不同等級業務需要的性能[10],比如支持DiffS