時(shí)間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)
在多層交換機(jī)中都會(huì)利用高速內(nèi)存表來創(chuàng)建路由選擇表。這個(gè)路有表的生成方式有很多,CEF就是其中典型的一種。簡(jiǎn)單的說,CEF是一種基于拓?fù)涞霓D(zhuǎn)發(fā)模型。通過CEF可以將預(yù)先所有路由選擇信息加入到轉(zhuǎn)發(fā)信息庫(kù)(FIB)中,并且將動(dòng)態(tài)更新鄰接表中的第二層重寫信息。通過這種機(jī)制,可以提高數(shù)據(jù)交換的性能。不過有時(shí)候CEF轉(zhuǎn)發(fā)模型也會(huì)"生病"。作為網(wǎng)絡(luò)管理員,需要學(xué)會(huì)對(duì)癥下藥。筆者根據(jù)自己的經(jīng)驗(yàn),將基于CEF的MLS排錯(cuò)總結(jié)為三部曲。希望能夠?qū)Υ蠹业木W(wǎng)絡(luò)排錯(cuò)提供一點(diǎn)指導(dǎo)意義。
第一步:查看第三層引擎的CEF表
由于第三層引擎的CEF表決定了硬件交換的CEF表。所以如果CEF出現(xiàn)問題,網(wǎng)絡(luò)管理員應(yīng)該第一個(gè)想到的就是是否是這張第三層引擎的CEF表出現(xiàn)了問題。這是一個(gè)資深網(wǎng)絡(luò)管理員應(yīng)該具有的職業(yè)習(xí)慣?傊趯(duì)CEF問題進(jìn)行排錯(cuò)的時(shí)候,首先就需要查看交換機(jī)的CEF表。要查看這個(gè)表的內(nèi)容也很簡(jiǎn)單,只需要使用show ip cef (detail)命令即可。不帶參數(shù)detail其顯示的比較簡(jiǎn)單的信息。而帶上參數(shù)的話,顯示的內(nèi)容就比較完整。通常情況下,我們是先用不帶參數(shù)的命令試試看。如果信息不夠的話,再加入?yún)?shù)。
另外這里需要注意的是,這個(gè)命令顯示的內(nèi)容并不是硬件交換組件中的FIB表。這是什么意思呢?硬件交換組件中的FIB表會(huì)有一個(gè)副本。通常情況下,兩者是同步更新的。為了安全起見,使用show ip cef命令顯示的是這個(gè)副本中的內(nèi)容,而不是真正的FIB表。故兩者可能有時(shí)間差。不過這個(gè)時(shí)間差很小,一般情況下不會(huì)對(duì)我們的排錯(cuò)產(chǎn)生負(fù)面影響。
第二步:查看第三層引擎的鄰接表
如果通過第一步還不能夠得到問題的原因,那么接下去要查看的就是第三層引擎的鄰接表。鄰接表與CEF表是CEF轉(zhuǎn)發(fā)模型的兩個(gè)基本組件。通常情況下CEF出問題的話,就是這兩個(gè)表在作怪。當(dāng)多層交換機(jī)通過ARP過程獲得MAC地址之后,CEF轉(zhuǎn)發(fā)模型將利用這些信息填充鄰接關(guān)系表。在填充的過程中,系統(tǒng)會(huì)利用鄰接節(jié)點(diǎn)的MAC地址重新信息與目標(biāo)接口。CEF表中的所有IP路有選擇條目都會(huì)對(duì)應(yīng)于一個(gè)下一跳地址。
要查看這個(gè)表的信息,需要使用命令show adjacency。同理在這個(gè)命令中也可以使用參數(shù)detail。使用這個(gè)參數(shù)之后,系統(tǒng)會(huì)顯示詳細(xì)的鄰接關(guān)系表信息,如會(huì)包括第二層的信息等等。不過這里需要注意的是,這個(gè)表并不是實(shí)時(shí)更新的。默認(rèn)情況下,這個(gè)表的更新頻率為一分鐘。也就是說每60秒更新一次。為此網(wǎng)絡(luò)管理員有時(shí)候可能需要運(yùn)行這個(gè)命令兩次(中間隔一分鐘),才能夠得到自己想要的結(jié)果。
在查看這張表的時(shí)候,需要注意前綴的問題。在CEF表中,前綴可以分為子網(wǎng)前綴與主機(jī)前綴。系統(tǒng)設(shè)計(jì)的時(shí)候,如果直接連接了多臺(tái)主機(jī)的話,則這個(gè)路由器中的鄰接表采用的是子網(wǎng)的前綴,而不是各臺(tái)主機(jī)的前綴。子網(wǎng)前綴會(huì)指向一個(gè)探查鄰接關(guān)系條目。當(dāng)需要將數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)給特定主機(jī)的時(shí)候,系統(tǒng)將在鄰接關(guān)系數(shù)據(jù)庫(kù)中查找具體的前綴。在查看這張表中,首先需要對(duì)這些前綴搞清楚?纯雌鋵(duì)應(yīng)的子網(wǎng)前綴是否有問題;蛘哒f,本來應(yīng)該是子網(wǎng)前綴的,但是系統(tǒng)中采用的卻是主機(jī)前綴。
其次需要注意的是,在某些特殊的業(yè)務(wù)中,需要對(duì)IP前綴或者地址進(jìn)行一些特殊的處理。如用戶所采用的硬件交換不支持對(duì)數(shù)據(jù)幀進(jìn)行路有選擇,或者第三層引擎要求對(duì)數(shù)據(jù)包進(jìn)行處理時(shí)。在遇到這些情況的時(shí)候,交換機(jī)就需要對(duì)數(shù)據(jù)包進(jìn)行特殊的處理。也就是說,可能需要改變IP的前綴。這種案例在實(shí)際的工作中還是比較常見的。如NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)等等。故如果網(wǎng)絡(luò)管理員發(fā)現(xiàn)NAT運(yùn)作異常,而企業(yè)使用的剛好是基于CEF的MLS環(huán)境時(shí),就要條件反射的想到是否是這個(gè)鄰接表出現(xiàn)了問題。這種反射非常的重要。如果網(wǎng)絡(luò)管理員有這種技能,那么就可以在最短時(shí)間內(nèi)幫助用戶解決網(wǎng)絡(luò)問題。不過這需要管理員工作經(jīng)驗(yàn)的積累。
第三步:調(diào)試第三層引擎的CEF
通過以上兩個(gè)步驟,基本上可以分析出問題可能發(fā)生的原因。然后就需要使用debug ip cef命令調(diào)試第三層引擎的CEF。這個(gè)命令主要是從第三層引擎的角度顯示相關(guān)的CEF信息,并進(jìn)行相關(guān)的調(diào)試工作。在使用這個(gè)命令的時(shí)候,難點(diǎn)就是這個(gè)命令的參數(shù)比較多。要查看不同的信息、進(jìn)行不同的調(diào)試動(dòng)作往往需要使用不同的命令參數(shù)。
如參數(shù)drops是讓網(wǎng)絡(luò)管理員查看記錄丟棄的數(shù)據(jù)包;而參數(shù)recive是記錄沒有根據(jù)FIB鄰接表中的信息對(duì)其進(jìn)行交換,而將其發(fā)送到下一個(gè)交換層的數(shù)據(jù)包。通常情況下,這些命令顯示的信息都是文本形式。對(duì)閱讀或者導(dǎo)入到數(shù)據(jù)庫(kù)中進(jìn)行進(jìn)一步分析會(huì)帶來一定的阻礙。故在這些情況下網(wǎng)絡(luò)管理員可能希望系統(tǒng)以表格的形式來顯示相關(guān)的內(nèi)容,此時(shí)管理員就需要使用參數(shù)table。這個(gè)參數(shù)就是告知系統(tǒng)以表格的形式顯示與FIB鄰接表相關(guān)的事件。不過采用這個(gè)參數(shù)的時(shí)候,需要注意其不會(huì)顯示全部的內(nèi)容,而只是顯示相關(guān)的事件。這些事件包括刷新FIB表、填充FIB表的路由選擇更新、添加或者刪除FIB表?xiàng)l目、重新加載FIB表等等事件。故Table參數(shù)主要有兩個(gè)作用,一是規(guī)范數(shù)據(jù)顯示的格式,以表格的形式顯示;二是對(duì)數(shù)據(jù)進(jìn)行過濾,只顯示跟FIB鄰接表相關(guān)的事件。
與Table參數(shù)類似的還有一個(gè)ipc參數(shù)。這個(gè)參數(shù)也是起到一個(gè)信息過濾的作用。使用了這個(gè)參數(shù)后,系統(tǒng)記錄CEF中與進(jìn)程間通信相關(guān)的信息。具體來說,就是顯示如下這些內(nèi)容:被重新排序的消息的狀態(tài)、順序到達(dá)的IPC消息、IPC消息的傳輸狀態(tài)、用于IPC消息的緩存空間使用狀態(tài)、線路卡發(fā)送給路有處理器的抑制請(qǐng)求等等。
在第二點(diǎn)"查看第三層引擎鄰接表"的時(shí)候筆者說道過需要關(guān)注IP前綴的相關(guān)信息。當(dāng)企業(yè)采用了NAT等需要對(duì)這些前綴進(jìn)行特殊處理的業(yè)務(wù)時(shí),就很容易在這個(gè)地方出現(xiàn)問題。要查看這些前綴的信息,系統(tǒng)還提供了一個(gè)專門的參數(shù)prefix-ipc。這個(gè)參數(shù)主要記錄與IP前綴信息相關(guān)的更新。如與FIB鄰接表前綴相關(guān)的控制信息、線路卡中IP路由選擇更新的調(diào)試信息等等。這些信息對(duì)于排除IP地址前綴導(dǎo)致的網(wǎng)絡(luò)故障非常的有用。
在調(diào)試第三層引擎的CEF時(shí),需要注意,debug命令其會(huì)占用網(wǎng)絡(luò)設(shè)備的CPU資源,而且占用的還會(huì)比較多。為了保證正常的應(yīng)用不受影響,在使用這個(gè)命令的時(shí)候要謹(jǐn)慎。最好能夠在網(wǎng)絡(luò)比較空閑的使用進(jìn)行調(diào)試。另外就是需要注意,這個(gè)debug ip cef命令顯示的內(nèi)容比較多,作為網(wǎng)絡(luò)管理員要學(xué)會(huì)在命令后面帶參數(shù),以過濾一些不必要的信息。雖然這個(gè)命令的參數(shù)比較多,但是只要多使用幾次就可以掌握參數(shù)的要點(diǎn)。特別需要提醒的是,這個(gè)命令顯示內(nèi)容都比較專業(yè)。必須要真正了解顯示結(jié)果的含義之后,才能夠做后續(xù)的操作。而不能夠在一知半解的情況下,就對(duì)其進(jìn)行維護(hù)。否則的話,就可能會(huì)把故障搞的越來越大。
以上的三部曲只是對(duì)CEF排錯(cuò)的一個(gè)基本的思路。如果讀者需要了解具體排錯(cuò)的過程,在后續(xù)的文章中筆者可以通過案例來具體的講解。
關(guān)鍵詞標(biāo)簽:CEF,MLS排錯(cuò),多層交換
相關(guān)閱讀
熱門文章 提示dns服務(wù)錯(cuò)誤怎么辦 dns錯(cuò)誤問題多種解決IS-IS同時(shí)下發(fā)缺省路由出現(xiàn)路由環(huán)路問題的解IBGP鄰居無法建立連接問題的解決方法對(duì)稱結(jié)構(gòu)承載網(wǎng)流量出現(xiàn)異常問題的故障解決
人氣排行 光纖上網(wǎng) 路由器設(shè)置頁(yè)面進(jìn)不去怎么辦登錄SSH服務(wù)器失敗問題的分析及解決無線網(wǎng)卡連接不上怎么辦_無線網(wǎng)卡連接不上解決方法提示dns服務(wù)錯(cuò)誤怎么辦 dns錯(cuò)誤問題多種解決方法本機(jī)IP設(shè)置不當(dāng)造成路由異常故障分析路由設(shè)置不當(dāng) 導(dǎo)致VPN無法訪問外網(wǎng)無線路由器無不能上網(wǎng)的秘密ADSL頻繁掉線如何解決?