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路由器在全球取得了巨大的成功,在中國互聯網基礎設施建設中發揮着極其重要的作用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章