天天看點

CEF技術淺析

        傳統路由器的基本作用是路由計算和包轉發,通常基于共享存儲器體系結構,采和集中式CPU,即單個CPU(或多個CPU,聯結成路由器簇)控制共享總線,連接配接到多個接口卡上,接口卡包含簡單的隊列等結構,與CPU通信,通過共享總線實作資料包轉發。随着Internet的快速發展和大量新的服務需求的不斷出現,對網絡的路由和交換性能提出了更高的要求,要同時提高包轉發速率和系統的性能,必須對傳統路由器與交換裝置的設計體系結構進行改進,<SCRIPT language=javascript src="/CMS/JS/newsad.js"></SCRIPT> 并加入一些新的設計方案以完善系統性能。CEF(Cisco Express Forwarding,Cisco特快交換)技術是思科公司推出的一種全新的路由交換方案,它具有良好的交換性能,增強的交換體系結構和極高的包轉發速率。采用CEF技術的GSR1200系列千兆交換路由器,在體系結構,路由方式和接口卡性能等方面都有質的改變,特别适用于大業務量的ISP網絡的核心層,同時也廣泛應用于高速企業網的主幹。本文将對CEF特快交換技術作一介紹和分析。

  一、路由器交換算法的簡單回顧

  1.過程交換

  最初的Cisco路由器采用集中式CPU包交換,所有的包通過共享總線傳到CPU,經路由表查找,CRC重算,再通過共享總線把包傳到适當的線路卡上。

  2.快速交換

  到達某特定目的位址的IP包通常會引起資料包流,即假設交換過到特定目标的包之後,另一個很可能不久也會到達。通過建構最近交換目标的高速緩存,可以減少包在全路由表中查找同一目标的次數,這種“一次路由,然後交換”的方式稱為快速交換,快速交換大大提高了路由器的包轉發速率,因而成為Cisco路由器平台上預設的交換機制。但有一點需要注意,IP路由表的改變必須高速緩存無效,在路由狀況不斷變化的環境中,路由高速緩存的優勢将受到很大限制。

  3.自治交換

  自治交換的特點是從CPU中解除安裝了一些交換功能。在效果上,将路由高速緩存功能從CPU移到輔助交換處理器上,線路卡上的接收包先在交換處理器中完成本地路由高速緩存目标的查找,若查找失敗時才中斷CPU執行路由表查找。在此,Cisco将周期性計算路由的CPU改名為路由處理器,把輔助交換處理器改名為交換處理器。Cisco 7000系列的路由器上執行自治交換,可使吞吐量等性能進一步提高。

  4.分布式交換

  随着VIP(Versatile Interface Processor,通用接口處理器)卡引入,路由器的交換體系逐漸向對等多處理器結構發展。每個VIP卡都包含RISC處理器,維護最新的由路由交換處理器産生的快速交換高速緩存的拷貝,并能獨立實作路由交換的功能,高速完成兩種類型的交換---本地VIP的交換和VIP之間的交換。

  5.CEF特快交換

  如前所述,快速交換的高速緩存機制在Internet之類的高速動态路由選擇環境(經常存在網絡拓撲變化,路由改變、路由震蕩等)中不能很好地伸縮,路由的改變導緻高速緩存無效,而重建高速緩存(即執行“過程交換”的過程)在計算上開銷很大;同時,随着網際網路及其業務的迅猛發展,基于WEB的各種應用和互動式業務使得通信次數多而通信時間短的實時資料流大量增加,快速交換的高速緩存内容處于不斷變化之中,重建高速緩存的負擔加大,進而導緻路由器性能的降低。CEF特快交換技術正是針對上述不足而設計提出的。

  二、CEF特快交換基本原理

  1.CEF部件

  CEF是一種進階的第三層交換技術,它主要是為高性能、高伸縮性的第三層IP骨幹網交換設計的。為優化包轉發的路由查找機制,CEF定義了兩個主要部件:轉發資訊庫(Forwarding Information base)和鄰接表(Adjacency Table)。

  轉發資訊庫(FIB)是路由器決定目标交換的查找表,FIB的條目與IP路由表條目之間有一一對應的關系,即FIB是IP路由表中包含的路由資訊的一個鏡像。由于FIB包含了所有必需的路由資訊,是以就不用再維護路由高速緩存了。當網絡拓撲或路由發生變化時,IP路由表被更新,FIB的内容随之發生變化。

  CEF利用鄰接表提供資料包的MAC層重寫所需的資訊。FIB中的每一項都指向鄰接表裡的某個下一跳中繼段。若相鄰節點間能通過資料鍊路層實作互相轉發,則這些節點被列入鄰接表中。

  系統一旦發現鄰接關系,就将其寫到鄰接表中,鄰接序列随時都在生成,每次生成一個鄰接條目,就會為那個鄰接節點預先計算一個鍊路層頭标資訊,并把這個鍊路層頭标資訊存儲在鄰接表中,當決定路由時,它就指向下一網絡段及相應的鄰接條目。随後在對資料包進行CEF交換時,用它來進行封裝。欲檢視鄰接表的有關資訊,可以使用Cisco IOS的指令:show adjacency/show adjacency detail。當我們檢視鄰接表資訊時,會發現有以下兩種主要鄰接類型:Host adjacency和Point to Point。Host adjacency類型通常的顯示是一個IP位址,它表示鄰接的下一跳IP位址;Point to Point類型N顯示是“point 2point”,表示這是一條點對點電路。此外還有其他一些特殊類型,如Null adjacency、Glean adjacency等,此外不再贅述。

  2.CEF操作模式

  CEF有兩種模式:集中式和分布式。集中式允許一個路由處理子產品運作特快交換,即FIB和鄰接表駐留在路由處理子產品中,當線路卡不可用或不具備分散CEF交換的功能時,就可使用集中CEF交換模式。

  分布式(一般記作dCEF)允許路由器的多個線路卡(VIP)分别運作特快交換功能,前提是線路是VIP線路卡或GSR線路卡。中央路由處理器完成系統管理/路由選擇和轉發表計算等功能,并把CEF表分布到單個線路卡;每個線路卡維護着一個FIB和鄰接表的相同的拷貝。線路卡在端口擴充卡之間執行快速轉發,這樣,交換操作就無需路由交換子產品的參與了。DCEF采用一種“内部過程通信”機制來保證路由處理器和接口卡之間FIB和鄰接表的同步。

  Cisco 12000系列路由器隻運作dCEF模式,由線路卡執行交換功能。在其它路由器中,可以在同一個路由器中混合使用各種類型的接口卡,如果一個不支援CEF的接口卡收到資料包後,将把資料包轉發到路由處理器來進行處理,或把該資料包轉發到下一個網絡段處理。

  CEF在路由器上是全局激活的,但可在每個接口(或VIP的底闆)上啟用/禁用CEF;CEF和快速交換模式也可同時運作,但不推薦這樣使用,因為會占用大量的系統維護資源。

三、CEF與快速交換的比較

  與快速交換相似,CEF也使用自己建立的資料結構(而不是路由表)來執行交換操作。快速交換通過生成并查找路由高速緩存交換資料包,該路由高速緩存交換資料包,該路收高速緩存的條目(包括目的IP位址,輸出接口,MAC位址頭資訊等)是在第一個資料包到來時,對整個路由表執行最長比對查找算法獲得下一跳IP位址,然後查找ARP緩存獲得第二層的MAC位址資訊,并寫入路由高速緩存,之後的資料包則根據已經生成的高速緩存的條目直接重寫MAC頭資訊完成交換操作。

  CEF通過FIB和鄰接表對資料包進行交換,但FIB和鄰接表是在資料包到來以前,由CPU根據路由表生成并定時更新的,是以到達路由器的第一個資料包也無須執行查找路由表的過程,直接由FIB和鄰接表獲得新的MAC頭信和盧,就可進行交換了,對于擁有大容量路由表的路由器來說,這種預先建立交換查找條目的方式能夠有效地提高交換性能。

  四、基于CEF的負載平衡的實作

  當到達某一目的IP位址存在多條路徑時,每條路徑都有一個反映其代價的metric值,路由協定通過計算獲得到達目的位址的具有最短metric值的路徑,資料包通過該路徑到達目的位址。負載平衡的目的則是要把流量配置設定到多條路徑中,這樣可優化資源的使用。CEF特快交換支援兩種類型的負載平衡---按目的地配置的負載平衡和按資料包配置的負載平衡。

  1.按目的地配置負載平衡

  基本原理是:對于給定的一對源/目的IP地下,即使有多個路徑可用,也可保證資料包采用同一路徑;通往不同源/目的IP位址的資料流則傾向于采用不同的路徑。通過采用按目的地負載平衡的方法,可以保證對某個源/目的IP位址對的資料包以一定的次序到達。當啟用CEF時,按目的地配置的負載平衡被預設啟用。

  2.按資料包配置負載平衡

  基本原理是:采用輪轉法确定各個資料包按哪條路徑到達目的地。這種負載平衡方法可使路由器在路徑上連續發送資料包,即保證路徑的使用狀況比較好,但針對一個源/目的IP位址對的資料包可能會采用不同的路徑,進而導緻目的端對資料包的重新排序。這種類型的負載平衡對某些類型的資料流傳送不是很合适(如VoIP資料流)。當然,若在某一源/目的IP位址對之間有大量的資料流,通過并行鍊路傳送,如果按目的地負載平衡方式,将會使某條鍊路負擔過重,而其他鍊路上的資料流很少,此時采用按資料包的負載平衡是合理的。

  五、小結

  CEF是專門為高性能、高伸縮性的IP骨幹網絡設計的一種高速交換方式。從上述介紹我們不難看出,在大規模的動态IP網絡中,CEF能夠提供前所未有的交換的一緻性和穩定性。它能夠有效彌補快速交換的高速緩存條目頻繁失效的缺陷,采用dCEF分布式交換可使每個線路卡進行完全的交換,提供更優越的性能;CEF比快速交換的路由高速緩存占用記憶體要少,并能提供負載平衡,網絡記帳等功能。借助CEF特快交換技術和其它一些革命性的創新技術,Cisco的GSR路由器在全球取得了巨大的成功,在中國網際網路基礎設施建設中發揮着極其重要的作用。

繼續閱讀