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