多種交換技術和CEF及其負載均衡
一、進程交換技術(process switching):每一個數據包過來都要查找一次路由表,數據包進入順序就是數據包出來順序,按照進程的先后進行。降低系統性能,大量占用系統資源,并且不可以中斷IOS進程,需要排隊。
二、基于緩存的交換(cache-based switching):一種更有效率的交換機制,它利用了從***個被交換的數據包所獲得的信息優勢,***個數據包進行進程交換。基于緩存的交換,當前運行于處理器上的IOS進程可以被中斷,來進行數據包的交換。
處理器在進程級別上交換***個數據包,并在路由緩存中創建一個表項,以便后續、具有相同目的地址的數據包能夠基于緩存表項被交換。
幾種基于緩存交換的交換方式:
1、快速交換(fast switching):使用二叉樹來存儲轉發信息和MAC頭改寫字符串,以便快速查找和參考。
2、***交換(optimum switching):在256-way(8-8-8-8,使用4個八位組的IPv4地址映射到4個8bit的結構中)。的基數樹中存儲轉發信息和MAC頭改寫信息。只有基于路由交換處理器(RSP)的平臺才支持***交換。
3、分布式***交換:將路由選擇決策轉移到接口處理器上,來減少主CPU進行包交換功能的負擔。在路由選擇平臺的每個接口上都有一個專門的CPU即可。
注:***交換和分布式***交換從cisco IOS 12.0開始就不再被支持了。
4、網絡流交換(netflow switching),通過一種標準的交換機制,處理了流的***個數據包,然后就創建了網路流緩存。
設計網絡流交換的目的是,提供一種高效率的機制,來處理擴展或復雜的訪問列表時,不必像其他的交換方式一樣喪失同樣多的系統性能。在網絡流交換方式下,能夠為每一個流收集詳細的記賬信息,對于新發布的IOS軟件來說,網絡流交換被專門用來實現該目的,而不再用來交換數據包了。
在同時啟用CEF和網絡流交換的情況下,CEF為IP數據包提供交換路線,并生成流緩存,而網絡流交換被用來向流收集器輸出統計信息。這些流信息包括基于每個用戶、每種協議、每個端口以及每種類型的服務統計信息。這些信息被廣泛用于各種目的,例如:網絡分析和規劃、記賬以及計費。
基于緩存交換的缺點:
1、是流量驅動的,依賴于***個數據包的接收以生成緩存,這個數據包是在慢速交換路線中被交換的,導致了低性能和高CPU消耗。
2、緩存是基于IP地址的,條目眾多,消耗大量內存。
3、由于路由抖動導致了無效緩存,促使網絡不穩定。
三、CEF(cisco express forwarding,cisco快速交換)
進程交換和基于緩存的交換都是數據驅動(data-driven),CEF是拓撲驅動(topology-driven),并與路由選擇表緊密相關。
優點:
1、可擴展性(Scalability):當激活了分布式CEF(Distributed CEF)模式時,CEF在每一塊線卡(line card)上也提供了全部的交換能力。
2、增強了性能:CEF使用CPU率較低,更多的CPU處理能力可以專注于第3層的服務,比如動態路由協議的運行。
3、彈性(Resilience):在大型動態網絡中,CEF提供了更好的一致性和穩定性。
CEF 是由新的cisco設備使用的提供線速路由選擇的技術。CEF讓分組交換完全繞過路由處理器,通過專門的數據結構來完成,該數據結構通過路由處理器和交換處理器之間的一個通信過程來動態更新。通常,CEF被認為是“沒有路由,一直交換”
基于CEF的機制針對所有的分組,包括給定流中的***個分組都用硬件處理的。路由選擇表仍然由路由器的CPU維護,但是創建了兩張額外的表:
1、轉發信息庫(FIB,Forwarding Information Base)表:該表是從路由選擇表中拷貝過來的轉發信息,不包括任何路由選擇協議信息。路由表有任何增刪變化,FIB表均會隨之變化
2、鄰接表:維護一個鄰近結點(如果兩個節點能通過第2層一跳到達彼此則被認為是鄰接)以及他們相關的第2層MAC重寫或下一條信息的數據庫。
FIB表由一棵四層的樹組成,是按照IPv4所使用的點分十進制來分層的,CEF依賴最長匹配轉發算法,這意味著按照降序搜索整棵樹知道“最長匹配”。
#p#
cisco路由器通常才使用兩種類型的mtrie結構:
1、8-8-8-8:這種格式也被稱為256-way mtrie,因為4個八位組的IPv4地址被映射到4個8bit的結構中,例如上圖。這種格式用在大多數cisco路由器中。
2、16-8-8:這是一個3級的mtrie,它的根級有65536個表項。因此,一條前最的***查找次數是3次,換句話說,***次查找解析了前面的兩個八位組,接著最多在需要兩次查找就可以確定。這種格式只用于cisco 12000系列路由器。
FIB和鄰接表都被優化提供進行轉發決定所需的信息,而沒有更多的其他信息,如果FIB表已滿,后續表項將和現有表項比較,并以犧牲不詳細表項的代價來保存更詳細的表項。
FIB表的好處:
1、可以被硬件ASIC調用
2、解決遞歸路由問題,直接找到下一跳
3、擴展性,應用于MPLS
FIB內容可通過show ip cef 命令來查看:
列舉出一下幾種FIB表項:
1、附接的(attached):這種前綴被配置為可以通過借口直接到達,不需要由IP下一跳來創建林接管,這種前綴是指路由器本地接口所屬的網絡。
2、連接的(connected):由IP address address mask 配置命令來配置的
3、收到(receive):這種前綴是一個32位掩碼的主機地址。每個接口通常有3種這樣的地址:實際的接口地址、主機位全0的網絡地址和全1的廣播地址
4、遞歸的(recursive):當前綴的輸出接口不能通過路由選擇協議或靜態配置指定時,它就被標記為遞歸的。
鄰接表是由ARP實現的,將第2層地址映射到相應的第3層地址上。路由器能從路由選擇更新中發現下一跳路由器,并相應的在臨街表中增加表項。這個處理讓路由器構建了第3層分組轉發所需的下一跳重寫信息。
僅有路由器上的CEF轉發機制才可以關閉基于CEF的轉發。CEF默認啟用,在路由器初始化時,會根據路由器中的路由選擇協議構建一張路由選擇表,構建完成后,CPU自動創建 FIB表和鄰接表。與基于流的流緩存轉發不同,CEF表是基于網絡拓撲。當一個分組進入交換機時,交換機的第3層轉發引擎ASIC根據目的網絡和最詳細的網絡掩碼進行最長匹配查找。
MSFC:多層交換功能卡
基于CEF的Catalyst交換機,支持下面兩種3層硬件交換方法:
1、集中式交換:在一個專用的ASIC上作出轉發決策,該ASIC是第3層交換機中所有接口的樞紐。所有需要路由或交換的數據包都必須經過總線或交換矩陣進入中央引擎。使用該交換方式,硬件交換性能取決于中央交換引擎和交換機矩陣/總線體系結構。用于catalyst 6500和catalyst4000系列
2、分布式交換:第3層交換機的接口或線路模塊獨立地做出轉發決策。采用分布式交換的交換機將CEF FIB和鄰接表的副本放在線路模塊或接口中,供其路由選擇和轉發數據幀。系統性能為所有轉發引擎之和。用于catalyst 3550 和catalyst帶DFC(分布轉發卡)的6500
基于CEF的多層交換:
#p#
CEF的兩種負載均衡方式:
1、基于每個會話的負載均衡(per-session load sharing)
基于每個會話的負載均衡允許路由器使用多條路徑分發流量。對于一個給定的源—目的主機對,即使有多條路徑可用,路由器也會保證該會話的數據包走相同的路徑。不同的會話采用不同的路徑,使用負載均衡,基于每個會話的負載均衡再激活CEF的時候缺省的也被激活。由于基于每個會話的負載均衡依賴于流量的統計分發,因而在會話數增加的情況下更有效率。
基于每個會話的負載均衡能夠確保導向給定的源—目的對的數據包按序到達,因為導向相同主機對的所有數據包都被路由到相同的鏈路上。
2、 基于每個數據包的負載均衡
基于每個數據包的負載均衡使得路由器可以把連續的數據包發送到不同的路徑上,而不必關心個別的主機或用戶會話,使用輪轉的方法來確定每一個數據包選擇哪條路徑到達目的地。
當大量數據通過單個會話的多條并行鏈路時,基于每個數據包的負載均衡顯得更加有效。在這種情況下,基于每個會話的負載均衡將會過載其中一條鏈路,而其他鏈路幾乎沒有什么流量。
但基于每個數據包的負載均衡會導致針對某一個會話來說,數據包可能走不同的路徑,這會引起數據包的重新排序,對于某些數據流量類型來說是不合適的,必須對于IP語音流量來說。
當啟用基于數據包的負載均衡功能時,必須先禁用基于目的地的負載均衡功能。為了禁用基于目的地的負載均衡功能,可以在接口配置模式下,
- no ip load-sharing per-destination
使用基于數據包的負載均衡,路由器可以在路徑上連續發送數據包,而不用考慮具體的主機或用戶情況。這種負載均衡機制采用輪轉辦法來確定每個數據包采用哪條路徑到達目的地。基于數據包的負載均衡可以保證在多條鏈路上進行負載均衡。要啟用基于數據包的負載均衡功能,可以在接口配置模式下
- ip load-sharing per-packet
#p#為CEF配置網絡記賬功能
啟用收集被快速轉發到某個目的地的數據包個數和字節數
- ip cef accounting per-prefix
啟用收集通過某個目的地被快速轉發的數據包的個數
- ip cef accounting non-recursive
在全局配置模式中為CEF啟用網絡記賬功能后,相應的路由處理器會收集記賬信息。當用戶為dCEF啟用網絡記賬功能后,線路卡上會收集記帳信息。
查看網絡記帳信息
- show ip cef
為CEF配置跨隧道的交換
CEF支持跨隧道的交換,例如GRE隧道。當你啟用CEF或者dCEF模式時,跨隧道的交換會被自動啟用,所以您無需再執行任何附加操作來啟用跨隧道的交換。有時候,在某個接口配置了一項功能,而CEF或dCEF并不支持該功能,這時您就可能需要在這個特定的接口上禁止CEF或dCEF。例如,策略路由和CEF就不能一起使用。您可能想讓一個接口支持策略路由,而讓其他的接口支持 CEF。在這種情況下,可以按全局模式啟用CEF,而在那個打算配置策略路由的接口上禁用CEF。這樣,除了那一個接口外,在其他所有接口上都啟用了快速轉發。在某個接口上禁用CEF 或dCEF,可以在接口配置模式
- no ip route-cache cef
爾后又想重新啟用CEF,在接口配置模式下,可以使用:
- ip route-cache cef
在Cisco12000 系列路由器上,您不可以在某個接口上禁用dCEF模式。
本文出自 “孤劍” 博客,請務必保留此出處http://gujian139.blog.51cto.com/1166106/399320