思科CCIE快速轉(zhuǎn)發(fā)機制知識
思科公司已成為公認(rèn)的全世界網(wǎng)絡(luò)互聯(lián)解決方案的領(lǐng)先廠商,其公司出產(chǎn)的一系列路由器更是引領(lǐng)全世界,那么你知道思科CCIE快速轉(zhuǎn)發(fā)機制知識嗎?下面是學(xué)習(xí)啦小編整理的一些關(guān)于思科CCIE快速轉(zhuǎn)發(fā)機制知識的相關(guān)資料,供你參考。
思科CCIE快速轉(zhuǎn)發(fā)機制知識
CEF采用一個4級每級256條通道結(jié)構(gòu)的轉(zhuǎn)發(fā)表來指明轉(zhuǎn)發(fā)條目的位置,轉(zhuǎn)發(fā)表有nexthop等信息,涵蓋了整個IPv4的地址范圍,并有指針指向另一個鄰接表。轉(zhuǎn)發(fā)條目(MAC地址之類)都存儲在一個單獨的鄰接表上。這兩個表包括了所有的轉(zhuǎn)發(fā)信息,而這些轉(zhuǎn)發(fā)信息是根據(jù)路由表和ARP來構(gòu)造的。
CEF簡化了查詢的步驟,提高了單位時間的工作效率。ff1200>而且從整體上來看,路由信息和轉(zhuǎn)發(fā)信息是分離的,數(shù)據(jù)包的轉(zhuǎn)發(fā)只根據(jù)轉(zhuǎn)發(fā)信息而不用參照路由信息,可以充分利用專用硬件的功能來達(dá)到線速轉(zhuǎn)發(fā),而不受路由變化或者其他因素的干擾,保證了轉(zhuǎn)發(fā)的高速高效。
CEF轉(zhuǎn)發(fā)提供3張表
1>FIB:從路由選擇表中拷貝過來的轉(zhuǎn)發(fā)信息,包括路由選擇表中用于轉(zhuǎn)發(fā)路由分組所必須的最少信息。
2>鄰接表:維護一個鄰接節(jié)點以及他們相關(guān)的2層MAC重寫或嚇一跳信息數(shù)據(jù)庫
3>NetFlow Table:用于統(tǒng)計網(wǎng)絡(luò)數(shù)據(jù)等
需要指出的是,CEF的轉(zhuǎn)發(fā)信息不是存儲在cache里的,因此也不存在過期作廢或定時刷新,只有根據(jù)路由表的變化而進(jìn)行的更改,通常很穩(wěn)定。而且轉(zhuǎn)發(fā)信息是從路由信息經(jīng)過一定處理后轉(zhuǎn)換過來的,也就是說,如果在轉(zhuǎn)發(fā)信息里找不到某個數(shù)據(jù)包的轉(zhuǎn)發(fā)信息,那么也不用費心到路由那里去了,因為那里肯定也沒有。這個數(shù)據(jù)包的下場不是被扔掉就是轉(zhuǎn)到其他轉(zhuǎn)發(fā)線程中去,轉(zhuǎn)發(fā)信息等于是路由信息針對于硬件轉(zhuǎn)發(fā)的一個變形。
這樣的結(jié)構(gòu)布局保證了路由功能和交換功能的分離(軟件上)。路由功能只處理三層以上信息,如路由信息處理、策略等,然后形成一個路由表,再根據(jù)這個路由表生成相應(yīng)的轉(zhuǎn)發(fā)信息。轉(zhuǎn)發(fā)功能很明確,就是根據(jù)這些轉(zhuǎn)發(fā)信息來工作,沒有相關(guān)信息就拒絕。而不象MLS那樣,遇到不認(rèn)識的還得回頭找路由問明白,那樣降低了轉(zhuǎn)發(fā)效率。CEF在軟件形式上實現(xiàn)了路由和交換功能的分離,而并不意味著路由器物理結(jié)構(gòu)上的分離,所以它也可以在一些多層交換機和低端的路由器上實施。
它的高速表現(xiàn)在以下兩個方面:
1>在查詢方式上簡化了步驟,提高了速度;
2>在分離了路由和轉(zhuǎn)發(fā)功能。
支持CEF的硬件平臺
Cisco首先在高端路由器平臺實現(xiàn)CEF,此后,Catalyst交換機也支持CEF的轉(zhuǎn)發(fā),但是還存在一些差別,但均提供如下特性:
1. 基于“最長地址匹配”查找的高速轉(zhuǎn)發(fā)
2. 等價路徑的負(fù)載均衡
3. 逆向路徑轉(zhuǎn)發(fā)檢查(RPF)
4. 不詳路由的無效
有些CEF特性僅在路由器上實現(xiàn)
1. 關(guān)閉基于CEF的轉(zhuǎn)發(fā)能力
2. 每個前綴和每個前綴長度的CEF統(tǒng)計
3. 從負(fù)載共享路徑統(tǒng)計數(shù)據(jù)
4. 基于每個分組的負(fù)載均衡
當(dāng)您在網(wǎng)絡(luò)中使用CEF時,請先考慮以下項目:
加載當(dāng)前完整的Internet路由信息的平臺所需的最小內(nèi)存(推薦):
- 集中路由模塊上需要128MB
- 每個線路卡上需要64MB
CEF不能在一個線路卡上和VIP-分布式快速交換同時運行。
缺省情況下,如果Cisco IOS軟件在交換數(shù)據(jù)報時遇到CEF不支持的功能和封裝類型,它將采用其他交換方法(如最優(yōu)交換、快速交換、過程交換)。
當(dāng)前CEF不支持以下功能:
- 策略路由
- 網(wǎng)絡(luò)地址翻譯(NAT)
- 路由交換模塊上的訪問控制列表
- 多點PPP封裝
- SMDS
- 令牌環(huán)
- ATM
- ISL封裝
以下平臺支持CEF功能:
Cisco7000系列路由器(需要裝備RSP7000)
Cisco7200系列
Cisco7500系列
Cisco12000系列
第二代接口模塊(VIP2-20、VIP2-40、VIP2-50)支持CEF。
在不同的路由器平臺上,硬件對CEF的支持可能會有所不同,這要由路由器中安裝的路由模塊和其他硬件所決定。例如在Cisco12000系列路由器上,所有的線路卡都支持CEF交換;在Cisco7500系列路由器上,要實現(xiàn)CEF交換,需要有RSP模塊和VIP線路卡的支持。每個接口卡用自己的引擎獨立地運行CEF去轉(zhuǎn)發(fā)數(shù)據(jù)包,并且都獨自擁有一個對FIB表的拷貝。每個接口卡獨立的去交換數(shù)據(jù)包,減輕了中心路由處理模塊的負(fù)擔(dān)。
CEF操作
要了解CEF,必須先了解Supervisor的處理結(jié)構(gòu)
底板:
主要提供交換矩陣,32Gbit/s的總線,多播復(fù)制ASIC,網(wǎng)絡(luò)管理處理器,還有基于GBIC的2個接口。此外還提供PFC2和MSFC2子板的連接器
PFC2:
提供一組ASIC進(jìn)行所有基于硬件的轉(zhuǎn)發(fā)。通常CEF就是在這個卡上實現(xiàn)的。 他提供基于3層的轉(zhuǎn)發(fā)引擎。提供各種3層表,如FIB,鄰接表等。此外,PFC還包口基于硬件的訪問控制列表和Qos機制的ASIC。
MSFC2:
MSFC2提供一個處理所有3層控制板活動的cpu??刂瓢迨翘幚砺酚捎嬎愕挠布w系結(jié)構(gòu)的一部分。MSFC2負(fù)責(zé)處理不能由PFC2硬件元素處理的功能,以及所有路由選擇協(xié)議活動的處理,比如OSPF和BGP的路由選擇更新。MSFC2 也負(fù)責(zé)形成lP路由選擇表、FIB 表和鄰近表。
在這3個組件中,監(jiān)控底板和PFC2是強制構(gòu)件,而MSFC2組件是可選的(盡管它是第3層交換十分需要的),因為它包括形成CEF表的CPU.MSFC2子卡上的CPU運行任何所配置的路由選擇協(xié)議需要的所有實例。此外,CPU還處理不能用硬件處理的分組。MSFC2是基于ciscoIOS軟件的路由器,并以同樣方式配置。配置參數(shù)與Cisco 7200系列路由器上的一樣。CEF同Supervisor一起默認(rèn)啟用。事實上,它不能關(guān)閉。
對于大多數(shù)通用的CEF功能,不需要特別地配置來啟用CEF ,除了路由選擇協(xié)議、網(wǎng)絡(luò)接口地址等的標(biāo)準(zhǔn)配置。
在路由器初始化時,會根據(jù)路由器軟件配置中的信息構(gòu)建一張路由選擇表(如靜態(tài)路由、直連路由,以及通過路由選擇協(xié)議交換動態(tài)學(xué)習(xí)到的路由)。在構(gòu)建了路由選擇表之后,CPU自動創(chuàng)建FIB和鄰近表。FIB 和鄰近表顯示了按照最佳轉(zhuǎn)發(fā)方式進(jìn)行的出現(xiàn)在路由選擇表中的數(shù)據(jù)。
與基于通信流的流緩存不同,cEF表是基于網(wǎng)絡(luò)拓?fù)?。?dāng)一個分組進(jìn)入交換機時,交換機的第3層轉(zhuǎn)發(fā)引擎ASIC根據(jù)目的網(wǎng)絡(luò)和最詳細(xì)的網(wǎng)絡(luò)掩碼澎于最長匹配查找。例如,PFC2不是基于目的地址172.31.10.3進(jìn)行交換,而是查找網(wǎng)絡(luò)172.31.10.0/24 并交換到連接該網(wǎng)絡(luò)的接口上。并且不涉及除路由選擇表和預(yù)先建立的FIB表之外的任何軟件。此外,一旦路由選擇表中發(fā)生了變化,所有的cEF 表會立即更新。這使得這個方法是高效的,緩存不會由于路由翻動而無效。CEF更加適應(yīng)網(wǎng)絡(luò)拓?fù)涞淖兓?/p>
CEF表
1.CEF轉(zhuǎn)發(fā)信息庫:
CEF利用轉(zhuǎn)發(fā)數(shù)據(jù)庫(FIB)來進(jìn)行基于IP目的地前綴的交換決策。從概念上講,F(xiàn)IB類似于一個路由表或信息庫,它維護著一個包含IP路由表轉(zhuǎn)發(fā)信息的鏡像。當(dāng)網(wǎng)絡(luò)中路由或拓?fù)浣Y(jié)構(gòu)發(fā)生了變化時,IP路由表就被更新,而這些變化也將反映在FIB中。基于IP路由表中的信息,F(xiàn)IB維護著下一跳的地址信息。因為FIB條目和路由表條目之間有一一對應(yīng)的關(guān)系,所以FIB中包含了所有已知的路由,這樣就不用維護路由高速緩存了,而先前的交換方法(比如快速交換和最優(yōu)交換)都要維護路由高速緩存。
CEF FIB 表由一棵4級層次的樹組成。4 級來源于IP 議所使用的犯比特地址。層次的每一級是基于32比特中的8 位。CEF依賴最長匹配轉(zhuǎn)發(fā)算法,這意味著按降序搜索整棵樹直到“最長匹配”,即匹配最大比特數(shù)。FIB樹分層表示,樹的頂端是最不詳細(xì)的地址,底端是最詳細(xì)的地址。每個葉以8比特為邊界,按降序排列更詳細(xì)的表項。這棵樹(通常被認(rèn)為是一個256路的分支樹)提供了一種用于快速查找的高效機制,確保查找過程中產(chǎn)生最少的延遲。這棵樹也提供一個高擴展性的體系結(jié)構(gòu),因為它能以相比與表效率來說最小的性能開銷完全統(tǒng)計IPv4 編址。每個樹葉提供了一個到鄰近表中相應(yīng)下一跳表項的指針。
2.鄰接表(Adjacency Table)
如果網(wǎng)絡(luò)中的網(wǎng)絡(luò)節(jié)點只通過一跳就可以穿越鏈路層而彼此到達(dá)對方,那么它們是鄰接的。除了FIB外,CEF還利用鄰接表來提供第二層的尋址信息。鄰接表為所有FIB條目維護第二層的下一網(wǎng)段地址。
鄰接的發(fā)現(xiàn)當(dāng)路由器發(fā)現(xiàn)存在鄰接時就增加在鄰接表中,每次生成一個鄰接條目(就像ARP協(xié)議一樣),CEF會為那個鄰接節(jié)點預(yù)先計算一個鏈路層頭標(biāo)信息,并把這個頭標(biāo)信息存儲在鄰接表中。當(dāng)決定路由時,它就會指向下一跳以及相應(yīng)的鄰接條目。隨后,在對數(shù)據(jù)包進(jìn)行CEF交換時,用預(yù)先生成的頭標(biāo)信息來對數(shù)據(jù)包進(jìn)行封裝。
分解鄰接 一個路由表中也許存在多條到達(dá)目標(biāo)網(wǎng)絡(luò)的路徑,例如:當(dāng)路由器被配置成允許冗余路徑和允許負(fù)載均衡時。對于每一個被分解的轉(zhuǎn)發(fā)路徑,鄰接條目會被附加一個頭標(biāo)信息指示出那條路徑的下一跳地址。這種機制可以用來在多條路徑上實現(xiàn)負(fù)載均衡。
需要作特殊處理的鄰接類型 另外,因為鄰接條目和下一跳地址相關(guān)聯(lián),所以一些特殊的鄰接類型可以被用來加速交換過程。前綴被定義后,當(dāng)存在以下被緩存的鄰接條目存在時,前綴需要作特殊處理。空鄰接一個以Null0接口為目標(biāo)地址的包會被拋棄,在訪問過濾器時,這可以被用作一種有效的機制。
鄰接歸納 當(dāng)路由器直接和幾臺主機相連時,F(xiàn)IB表中維持的是這個子網(wǎng)的前綴,而不是各個主機的前綴。這個子網(wǎng)前綴是一個鄰接的歸納。當(dāng)要轉(zhuǎn)發(fā)某個數(shù)據(jù)包到某個具體主機時,鄰接數(shù)據(jù)庫使用這個被歸納的鄰接。
轉(zhuǎn)出鄰接 當(dāng)遇到某些作特殊處理的功能或者CEF不支持的功能時,路由器將采用更高級別的交換方法處理數(shù)據(jù)包。
丟棄鄰接 數(shù)據(jù)包被丟棄。這種鄰接類型僅僅在Cisco12000系列路由器上出現(xiàn)。
釋放鄰接 數(shù)據(jù)包被釋放,但是前綴仍然有效。
沒有被分解的鄰接 當(dāng)鏈路層頭標(biāo)信息被附加到數(shù)據(jù)包上時,F(xiàn)IB需要頭標(biāo)指出下一跳的地址。如果FIB表中建立了一個鄰接,但是并沒有找到第二層的尋址信息,比如沒有通過ARP發(fā)現(xiàn)第二層的尋址信息,這個鄰接就被認(rèn)為是不完整的。這個數(shù)據(jù)包就會交給路由模塊處理,鄰接關(guān)系由ARP來決定。
看過文章“思科CCIE快速轉(zhuǎn)發(fā)機制知識”的人還看了: