路由器上快速轉發CEF

快速轉發CEF簡介:

CEF採用一個4級每級256條通道結構的轉發表來指明轉發條目的位置,轉發表有next hop等信息,涵蓋了整個IPv4的地址範圍,並有指針指向另一個鄰接表。轉發條目(MAC地址之類)都存儲在一個單獨的鄰接表上。這兩個表包括了所有的轉發信息,而這些轉發信息是根據路由表和ARP來構造的。

CEF簡化了查詢的步驟,提高了單位時間的工作效率。而且從整體上來看,路由信息和轉發信息是分離的,數據包的轉發只根據轉發信息而不用參照路由信息,可以充分利用專用硬件的功能來達到線速轉發,而不受路由變化或者其他因素的干擾,保證了轉發的高速高效

 clip_p_w_picpath001

 

CEF轉發提供3張表:

1.>;FIB:從路由選擇表中拷貝過來的轉發信息,包括路由選擇表中用於轉發路由分組所必須的最少信息。

2.>;鄰接表:維護一個鄰接節點以及他們相關的2層MAC重寫或嚇一跳信息數據庫

3.>;NetFlow Table:用於統計網絡數據等

需要指出的是,CEF的轉發信息不是存儲在cache裏的,因此也不存在過期作廢或定時刷新,只有根據路由表的變化而進行的更改,通常很穩定。而且轉發信息是從路由信息經過一定處理後轉換過來的,也就是說,如果在轉發信息裏找不到某個數據包的轉發信息,那麼也不用費心到路由那裏去了,因爲那裏肯定也沒有。這個數據包的下場不是被扔掉就是轉到其他轉發線程中去,轉發信息等於是路由信息針對於硬件轉發的一個變形。

CEF操作模式:

CEF有兩種模式:集中式和分佈式。

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

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

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

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

 

CEF的優點:

CEF可以通過大規模的動態通訊方式優化網絡的性能和伸縮性,它的優點如下。
1.改善路由器效率
和常規的快速交換路由相比較,CEF可以使用較少的內存容量來實現數據包的轉發,這樣,就可以節省更多處理器的資源,使得處理器能夠專用於第三層的服務,比如提高服務質量(QoS)和加密功能等。

2.良好的伸縮性
當啓用分散式CEF模式時,CEF的每個線路卡上維護着一個與轉發信息庫 (Forwarding Information Base,FIB)和鄰接表相同的拷貝,它能獨自提供完全的交換能力。

3.提高網絡性能
在大規模的動態網絡中,CEF能提供了更好的交換的一致性和穩定性。在動態網絡中,因爲路由的改變會導致快速交換高速緩存條目頻繁地失效,這些變化可能的結果就是要通過路由表對數據進行過程交換,而不是通過路由高速緩存進行快速交換。因爲FIB查閱表中包含所有路由表中已知的路由,這樣就不用維護路由高速緩存了,也不用採用快速交換和過程交換相互轉換這種轉發方案了。CEF能夠比典型的高速緩存技術更有效地交換數據流。儘管CEF是一種高級IP交換技術,支持很多通訊媒體,但它並不是支持所有的通訊方式,目前CEF支持ATM/AAL5snap、ATM/AAL5mux、ATM/AAL5nlpid、幀中繼、以太網、FDDI、PPP、HDLC和隧道(tunnel)等。

 

支持CEF的硬件平臺:

Cisco7000系列路由器(需要裝備RSP7000)
Cisco7200系列
Cisco7500系列
Cisco12000系列

Cisco首先在高端路由器平臺實現CEF,此後,Catalyst交換機也支持CEF的轉發,但是還存在一些差別,但均提供如下特性:

1. 基於“最長地址匹配”查找的高速轉發

2. 等價路徑的負載均衡

3. 逆向路徑轉發檢查(RPF)

4. 不詳路由的無效

 

有些CEF特性僅在路由器上實現 :

1. 關閉基於CEF的轉發能力

2. 每個前綴和每個前綴長度的CEF統計

3. 從負載共享路徑統計數據

4. 基於每個分組的負載均衡

當需要在網絡中使用CEF時,必須先考慮以下項目:

加載當前完整的Internet路由信息的平臺所需的最小內存(推薦):

- 集中路由模塊上需要128MB

- 每個線路卡上需要64MB

CEF不能在一個線路卡上和VIP-分佈式快速交換同時運行。

缺省情況下,如果Cisco IOS軟件在交換數據報時遇到CEF不支持的功能和封裝類型,它將採用其他交換方法(如最優交換、快速交換、過程交換)。

當前CEF不支持以下功能:

- 策略路由

- 網絡地址翻譯(NAT)

-路由交換模塊上的訪問控制列表

-多點PPP封裝

- SMDS

-令牌環

- ATM

- ISL封裝

 

CEF配置:

CEF:

1.啓用或禁止CEF
如果用戶的Cisco路由器中有接口處理器支持CEF時,就可以啓用CEF。爲了啓用或禁止CEF,在全局配置模式下,利用下面的命令進行。
(1) 啓用標準的CEF模式
命令:ip cef
(2) 禁止標準的CEF模式
命令: no ip cef


2.啓用或禁止dCEF
當用戶想讓其線路卡執行快速轉發時,則啓用dCEF,這樣,路由處理器就可以處理路由協議。爲了啓用或禁止dCEF操作,在全局配置模式下,利用下面的命令進行。
(1) 啓用dCEF模式
命令:ip cef distributed
(2) 禁止dCEF模式
命令:no ip cef distributed
當用戶按全局模式啓用CEF或dCEF時,所有支持CEF的接口都被默認地啓用了。


3.在特定的接口上啓用或禁止CEF/ dCEF
有時候,在某個接口配置了一項功能,而CEF或dCEF並不支持該功能。這時用戶就可能需要在這個特定的接口上禁止CEF或dCEF。例如,策略路由和CEF就不能一起使用。用戶可能想讓一個接口支持策略路由,而讓其他的接口支持CEF。在這種情況下,可以按全局模式啓用CEF,而在那個打算配置策略路由的接口上禁用CEF。這樣,除了那一個接口外,在其他所有接口上都啓用快速轉發。爲了在某個接口上禁止CEF或dCEF,可以在接口配置模式下,使用下面的命令實現:
no ip route-cache cef
當禁用了CEF或dCEF後,Cisco IOS自動使用下一個最快的交換路徑來交換數據包。對於dCEF而言,下一個最快的交換路徑是在路由處理器上的CEF。如果用戶在某個接口上禁用了CEF或dCEF操作,爾後又想重新啓用它,那麼在接口配置模式下,可以使用下面的命令實現:
ip route_cache cef
在Cisco 12000系列路由器上,dCEF被默認啓用。沒有用來啓用dCEF的命令。而且,配置文件中並沒有列出在路由器上啓用了dCEF,也不要在Cisco 12000系列路由器接口上禁用dCEF。

 

CEF負載均衡

基於目的地的負責均衡:

基於目的地的負載均衡允許路由器將使用多條路徑來均衡負載。對於某一源/目標主機,數據包轉發採用同一路徑,即使有多個路徑可用,也將這樣處理。對於到達不同目的地的數據包則可以採用不同的路徑。

當啓用CEF時,基於目的地的負載均衡功能缺省被啓用。大多數情況下,都採用這種負載均衡方法。

因爲基於目的地的負載均衡是依賴於對數據流的統計來分佈信息的,所以隨着“源/目的地對”個數的增加,負載均衡會變得更加有效。

 

基於數據包的負載均衡:

當啓用基於數據包的負載均衡功能時,必須先禁用基於目的地的負載均衡功能。爲了禁用基於目的地的負載均衡功能,可以在接口配置模式下,

no ip load-sharing per-destination

使用基於數據包的負載均衡,路由器可以在路徑上連續發送數據包,而不用考慮具體的主機或用戶情況。這種負載均衡機制採用輪轉辦法來確定每個數據包採用哪條路徑到達目的地。基於數據包的負載均衡可以保證在多條鏈路上進行負載均衡。

要啓用基於數據包的負載均衡功能,可以在接口配置模式下,

ip load-sharing per-packet

爲CEF配置網絡記賬功能

啓用收集被快速轉發到某個目的地的數據包個數和字節數

ip cef accounting per-prefix

啓用收集通過某個目的地被快速轉發的數據包的個數

ip cef accounting non-recursive

在全局配置模式中爲CEF啓用網絡記賬功能後,相應的路由處理器會收集記賬信息。當用戶爲dCEF啓用網絡記賬功能後,線路卡上會收集記帳信息。

查看show ip cef

Show ip cef fa 0/1 detail

Show adjacency fa 0/1 detail

Show interface ?

調試Debug ip cef ?

 

CEF配置跨隧道的交換 :

CEF支持跨隧道的交換,例如GRE隧道。當你啓用CEF或者dCEF模式時,跨隧道的交換會被自動啓用,所以您無需再執行任何附加操作來啓用跨隧道的交換。

 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地址對之間有大量的數據流,通過並行鏈路傳送,如果按目的地負載平衡方式,將會使某條鏈路負擔過重,而其他鏈路上的數據流很少,此時採用按數據包的負載平衡是合理的。

 

分離,而並不意味着路由器物理結構上的分離,所以它也可以在一些多層交換機和低端的路由器上實施。

它的高速表現在以下兩個方面:

1.>;在查詢方式上簡化了步驟,提高了速度;

2.>;在分離了路由和轉發功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章