ip cef 命令介紹及CEF技術淺析
來源:互聯網
上載者:User
為了在路由處理器卡上啟用CEF,利用ip cef命令,在全域配置模式下進行。為了禁用CEF,使用該命令的“no”格式。
ip cef < distributed>
no ip cef < distributed>
句法 描述
distributed (可選項)啟用dCEF操作。把CEF資訊分散到線路卡。線路卡執行快速轉寄。
預設情況
平台 預設值
裝備RSP7000的Cisco 7000系列 沒有啟用CEF。
Cisco 7200系列 沒有啟用CEF。
Cisco 7500系列 啟用CEF。
Cisco 12000系列GSR 啟用dCEF。
命令模式
全域配置模式。
操作要點
本命令第一次出現時是在Cisco IOS 11.1CC版本中。
該命令在Cisco 12000系列GSR中不能用,這是因為這種路由器系列只在dCEF模式下使用。
CEF是進階的第3層(Layer 3 )的IP交換技術。CEF可以最佳化某些網路的效能和伸縮性。這些網路帶有動態、結構分散的資料通訊模式,例如與基於Web的應用程式和互動式操作相關聯的網路就屬於這種情況。
傳統路由器的基本作用是路由計算和包轉寄,通常基於共用儲存空間體繫結構,采和集中式CPU,即單個CPU(或多個CPU,連接成路由器簇)控制共用匯流排,串連到多個介面卡上,介面卡包含簡單的隊列等結構,與CPU通訊,通過共用匯流排實現資料包轉寄。隨著Internet的快速發展和大量新的服務需求的不斷出現,對網路的路由和交換效能提出了更高的要求,要同時提高包轉寄速率和系統的效能,必須對傳統路由器與交換裝置的設計體繫結構進行改進,並加入一些新的設計方案以完善系統效能。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類型的顯示是“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的Server Load Balancer的實現
當到達某一目的IP地址存在多條路徑時,每條路徑都有一個反映其代價的metric值,路由協議通過計算獲得到達目的地址的具有最短metric值的路徑,資料包通過該路徑到達目的地址。Server Load Balancer的目的則是要把流量分配到多條路徑中,這樣可最佳化資源的使用。CEF特快交換支援兩種類型的Server Load Balancer---按目的地配置的Server Load Balancer和按資料包配置的Server Load Balancer。
1.按目的地配置Server Load Balancer
基本原理是:對於給定的一對源/目的IP地下,即使有多個路徑可用,也可保證資料包採用同一路徑;通往不同源/目的IP地址的資料流則傾向於採用不同的路徑。通過採用按目的地Server Load Balancer的方法,可以保證對某個源/目的IP地址對的資料包以一定的次序到達。當啟用CEF時,按目的地配置的Server Load Balancer被預設啟用。
2.按資料包配置Server Load Balancer
基本原理是:採用輪轉法確定各個資料包按哪條路徑到達目的地。這種Server Load Balancer方法可使路由器在路徑上連續發送資料包,即保證路徑的使用狀況比較好,但針對一個源/目的IP地址對的資料包可能會採用不同的路徑,從而導致目的端對資料包的重新排序。這種類型的Server Load Balancer對某些類型的資料流傳送不是很合適(如VoIP資料流)。當然,若在某一源/目的IP地址對之間有大量的資料流,通過並行鏈路傳送,如果按目的地Server Load Balancer方式,將會使某條鏈路負擔過重,而其他鏈路上的資料流很少,此時採用按資料包的Server Load Balancer是合理的。
五、小結
CEF是專門為高效能、高伸縮性的IP骨幹網路設計的一種高速交換方式。從上述介紹我們不難看出,在大規模的動態IP網路中,CEF能夠提供前所未有的交換的一致性和穩定性。它能夠有效彌補快速交換的快取條目頻繁失效的缺陷,採用dCEF分布式交換可使每個線路卡進行完全的交換,提供更優越的效能;CEF比快速交換的路由快取佔用記憶體要少,並能提供Server Load Balancer,網路記帳等功能。藉助CEF特快交換技術和其它一些革命性的創新技術,Cisco的GSR路由器在全球取得了巨大的成功,在中國互連網基礎設施建設中發揮著極其重要的作用。
-------------------------------------------------------------------
實質MPLS也是以CEF作為基礎來完成的,
基本的MPLS的作用是:由於MPLS對資料轉送時使用標籤來選擇路徑速度比使用最長相符的IP路由選擇快,因此MPLS可以提高資料轉送速度,同時可以提高網路的輸送量
設定基本的MPLS相當簡單僅需要下面幾個命令
1、在ROUTER啟動CEF或ip distribute CEF
router(config)# ip cef distributed或使用IP CEF命令
2、在ROTUER啟動標記分發
router(config)# tag-switching advertise-tags
3、在介面上使用MPLS(在骨幹LSR間串連的介面使用這個命令)
router(config)# interface e0/1
router(config-if)# tag-switching ip
4、指定使用那種標籤協議,標準的協議是LDP,TDP是CISCO私人的
Router(config)# mpls lable protocol LDP