IT貓撲網:您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉貼|軟件發(fā)布

您當前所在位置: 首頁系統(tǒng)集成網絡故障 → 經驗分享:基于CEF的MLS排錯三部曲

經驗分享:基于CEF的MLS排錯三部曲

時間:2015-06-28 00:00:00 來源:IT貓撲網 作者:網管聯(lián)盟 我要評論(0)

  在多層交換機中都會利用高速內存表來創(chuàng)建路由選擇表。這個路有表的生成方式有很多,CEF就是其中典型的一種。簡單的說,CEF是一種基于拓撲的轉發(fā)模型。通過CEF可以將預先所有路由選擇信息加入到轉發(fā)信息庫(FIB)中,并且將動態(tài)更新鄰接表中的第二層重寫信息。通過這種機制,可以提高數據交換的性能。不過有時候CEF轉發(fā)模型也會"生病"。作為網絡管理員,需要學會對癥下藥。筆者根據自己的經驗,將基于CEF的MLS排錯總結為三部曲。希望能夠對大家的網絡排錯提供一點指導意義。

  第一步:查看第三層引擎的CEF表

  由于第三層引擎的CEF表決定了硬件交換的CEF表。所以如果CEF出現(xiàn)問題,網絡管理員應該第一個想到的就是是否是這張第三層引擎的CEF表出現(xiàn)了問題。這是一個資深網絡管理員應該具有的職業(yè)習慣??傊?,在對CEF問題進行排錯的時候,首先就需要查看交換機的CEF表。要查看這個表的內容也很簡單,只需要使用show ip cef (detail)命令即可。不帶參數detail其顯示的比較簡單的信息。而帶上參數的話,顯示的內容就比較完整。通常情況下,我們是先用不帶參數的命令試試看。如果信息不夠的話,再加入參數。

  另外這里需要注意的是,這個命令顯示的內容并不是硬件交換組件中的FIB表。這是什么意思呢?硬件交換組件中的FIB表會有一個副本。通常情況下,兩者是同步更新的。為了安全起見,使用show ip cef命令顯示的是這個副本中的內容,而不是真正的FIB表。故兩者可能有時間差。不過這個時間差很小,一般情況下不會對我們的排錯產生負面影響。

  第二步:查看第三層引擎的鄰接表

  如果通過第一步還不能夠得到問題的原因,那么接下去要查看的就是第三層引擎的鄰接表。鄰接表與CEF表是CEF轉發(fā)模型的兩個基本組件。通常情況下CEF出問題的話,就是這兩個表在作怪。當多層交換機通過ARP過程獲得MAC地址之后,CEF轉發(fā)模型將利用這些信息填充鄰接關系表。在填充的過程中,系統(tǒng)會利用鄰接節(jié)點的MAC地址重新信息與目標接口。CEF表中的所有IP路有選擇條目都會對應于一個下一跳地址。

  要查看這個表的信息,需要使用命令show adjacency。同理在這個命令中也可以使用參數detail。使用這個參數之后,系統(tǒng)會顯示詳細的鄰接關系表信息,如會包括第二層的信息等等。不過這里需要注意的是,這個表并不是實時更新的。默認情況下,這個表的更新頻率為一分鐘。也就是說每60秒更新一次。為此網絡管理員有時候可能需要運行這個命令兩次(中間隔一分鐘),才能夠得到自己想要的結果。

  在查看這張表的時候,需要注意前綴的問題。在CEF表中,前綴可以分為子網前綴與主機前綴。系統(tǒng)設計的時候,如果直接連接了多臺主機的話,則這個路由器中的鄰接表采用的是子網的前綴,而不是各臺主機的前綴。子網前綴會指向一個探查鄰接關系條目。當需要將數據報轉發(fā)給特定主機的時候,系統(tǒng)將在鄰接關系數據庫中查找具體的前綴。在查看這張表中,首先需要對這些前綴搞清楚??纯雌鋵淖泳W前綴是否有問題?;蛘哒f,本來應該是子網前綴的,但是系統(tǒng)中采用的卻是主機前綴。

  其次需要注意的是,在某些特殊的業(yè)務中,需要對IP前綴或者地址進行一些特殊的處理。如用戶所采用的硬件交換不支持對數據幀進行路有選擇,或者第三層引擎要求對數據包進行處理時。在遇到這些情況的時候,交換機就需要對數據包進行特殊的處理。也就是說,可能需要改變IP的前綴。這種案例在實際的工作中還是比較常見的。如NAT(網絡地址轉換)等等。故如果網絡管理員發(fā)現(xiàn)NAT運作異常,而企業(yè)使用的剛好是基于CEF的MLS環(huán)境時,就要條件反射的想到是否是這個鄰接表出現(xiàn)了問題。這種反射非常的重要。如果網絡管理員有這種技能,那么就可以在最短時間內幫助用戶解決網絡問題。不過這需要管理員工作經驗的積累。

  第三步:調試第三層引擎的CEF

  通過以上兩個步驟,基本上可以分析出問題可能發(fā)生的原因。然后就需要使用debug ip cef命令調試第三層引擎的CEF。這個命令主要是從第三層引擎的角度顯示相關的CEF信息,并進行相關的調試工作。在使用這個命令的時候,難點就是這個命令的參數比較多。要查看不同的信息、進行不同的調試動作往往需要使用不同的命令參數。

  如參數drops是讓網絡管理員查看記錄丟棄的數據包;而參數recive是記錄沒有根據FIB鄰接表中的信息對其進行交換,而將其發(fā)送到下一個交換層的數據包。通常情況下,這些命令顯示的信息都是文本形式。對閱讀或者導入到數據庫中進行進一步分析會帶來一定的阻礙。故在這些情況下網絡管理員可能希望系統(tǒng)以表格的形式來顯示相關的內容,此時管理員就需要使用參數table。這個參數就是告知系統(tǒng)以表格的形式顯示與FIB鄰接表相關的事件。不過采用這個參數的時候,需要注意其不會顯示全部的內容,而只是顯示相關的事件。這些事件包括刷新FIB表、填充FIB表的路由選擇更新、添加或者刪除FIB表條目、重新加載FIB表等等事件。故Table參數主要有兩個作用,一是規(guī)范數據顯示的格式,以表格的形式顯示;二是對數據進行過濾,只顯示跟FIB鄰接表相關的事件。

  與Table參數類似的還有一個ipc參數。這個參數也是起到一個信息過濾的作用。使用了這個參數后,系統(tǒng)記錄CEF中與進程間通信相關的信息。具體來說,就是顯示如下這些內容:被重新排序的消息的狀態(tài)、順序到達的IPC消息、IPC消息的傳輸狀態(tài)、用于IPC消息的緩存空間使用狀態(tài)、線路卡發(fā)送給路有處理器的抑制請求等等。

  在第二點"查看第三層引擎鄰接表"的時候筆者說道過需要關注IP前綴的相關信息。當企業(yè)采用了NAT等需要對這些前綴進行特殊處理的業(yè)務時,就很容易在這個地方出現(xiàn)問題。要查看這些前綴的信息,系統(tǒng)還提供了一個專門的參數prefix-ipc。這個參數主要記錄與IP前綴信息相關的更新。如與FIB鄰接表前綴相關的控制信息、線路卡中IP路由選擇更新的調試信息等等。這些信息對于排除IP地址前綴導致的網絡故障非常的有用。

  在調試第三層引擎的CEF時,需要注意,debug命令其會占用網絡設備的CPU資源,而且占用的還會比較多。為了保證正常的應用不受影響,在使用這個命令的時候要謹慎。最好能夠在網絡比較空閑的使用進行調試。另外就是需要注意,這個debug ip cef命令顯示的內容比較多,作為網絡管理員要學會在命令后面帶參數,以過濾一些不必要的信息。雖然這個命令的參數比較多,但是只要多使用幾次就可以掌握參數的要點。特別需要提醒的是,這個命令顯示內容都比較專業(yè)。必須要真正了解顯示結果的含義之后,才能夠做后續(xù)的操作。而不能夠在一知半解的情況下,就對其進行維護。否則的話,就可能會把故障搞的越來越大。

  以上的三部曲只是對CEF排錯的一個基本的思路。如果讀者需要了解具體排錯的過程,在后續(xù)的文章中筆者可以通過案例來具體的講解。

關鍵詞標簽:CEF,MLS排錯,多層交換

相關閱讀

文章評論
發(fā)表評論

熱門文章 提示dns服務錯誤怎么辦 dns錯誤問題多種解決方法 提示dns服務錯誤怎么辦 dns錯誤問題多種解決方法 “無法瀏覽網頁” 十招解決疑難雜癥 “無法瀏覽網頁” 十招解決疑難雜癥 路由器無線不能上網等故障排除 路由器無線不能上網等故障排除 解決VPN路由設置不能訪問外網的問題 解決VPN路由設置不能訪問外網的問題

相關下載

    人氣排行 解決VPN路由設置不能訪問外網的問題 登錄SSH服務器失敗問題的分析及解決 光纖上網 路由器設置頁面進不去怎么辦 核心交換機故障現(xiàn)象及解決辦法 無線網卡連接不上怎么辦_無線網卡連接不上解決方法 路由設置不當 導致VPN無法訪問外網 提示dns服務錯誤怎么辦 dns錯誤問題多種解決方法 徹底避免環(huán)路問題 正確配置交換機步驟