過節(jié)不求人 Cisco路由器故障診斷技術(shù)詳解
過年過節(jié)也是網(wǎng)絡(luò)管理員、工程師最忙的時候,偏偏在這種時候,網(wǎng)絡(luò)設(shè)備不聽話,動不動就故障。小編搜羅了一些Cisco路由器故障診斷技術(shù),包括常用命令的使用,以及如何根據(jù)錯誤消息查找故障,希望在您的網(wǎng)絡(luò)環(huán)境出現(xiàn)故障時,及時定位故障并解決故障...
1 引言
本文以CISCO路由式網(wǎng)絡(luò)為基礎(chǔ),介紹使用診斷工具對Cisco路由器進(jìn)行故障診斷的方法。限于篇幅,我們所介紹的內(nèi)容和示例主要是基于IP報文的,基于IPX和Appletalk等協(xié)議的診斷技術(shù)與此類似。
2 故障診斷與排除命令
Cisco ISO操作系統(tǒng)軟件提供了一組功能豐富的命令,可以用來進(jìn)行故障查找與排除、問題診斷以及性能檢測。命令大致可以分為兩類:show命令和debug命令。同時,還包含一組用于連接這兩類命令的clear命令。下面我們分別講解各命令
2.1 show命令
在這一節(jié)中,我們將講述最常用的show命令,闡述這些命令的輸出以及這些命令適用于解決的故障類型。為了敘述清楚,這些命令被分為全局系統(tǒng)命令、與接口相關(guān)的命令和與協(xié)議相關(guān)的命令。我們僅討論最常使用的命令。
全局系統(tǒng)命令
本節(jié)將列出與路由器軟件和硬件相關(guān)的輸出命令,其中包括存儲區(qū)和電源。show version命令是最基本的命令之一,它顯示路由器本身以及其所使用的軟、硬件的基本信息。show hardware命令的功能與show version命令類似。
命令的輸出信息包括:IOS的版本、路由器持續(xù)運行的時間約23周、最近一次重啟動的原因、路由器主存的大小、共享存儲器的大小、閃存的大小、IOS映像的文件名,以及路由器從何處啟動等信息。show version命令顯示了路由器的許多非常有用的信息。在解決問題時,通常應(yīng)該從這個命令開始收集數(shù)據(jù)。
如果路由器的多個接口同時丟失報文,則可能由于路由器內(nèi)存不足或者CPU過載。用戶可以使用show memory命令檢查內(nèi)存利用率(如下所示)。CPU利用率可以使用show process命令檢查。
show memory的前兩行顯示了存儲器的一般信息,它表明系統(tǒng)有足夠可用的內(nèi)存。同時它還顯示內(nèi)存中沒有碎片,因為在13.03兆字節(jié)可用內(nèi)存中***的可用塊接近11.25兆字節(jié)。內(nèi)存碎片表明內(nèi)存被劃分為了許多不連續(xù)的塊。它將導(dǎo)致內(nèi)存的利用率降低,嚴(yán)重時可能產(chǎn)生內(nèi)存錯誤從而也嚴(yán)重影響路由器的性能。
現(xiàn)在看一看路由器中有許多內(nèi)存碎片的情形(如下所示)。此時我們有足夠多的可用內(nèi)存(8.4兆字節(jié)),但是其中***的塊僅為0.5兆字節(jié)。連續(xù)內(nèi)存中沒有足夠大的可用塊,這有可能導(dǎo)致嚴(yán)重的內(nèi)存分配問題。這些問題有時表現(xiàn)為一個或多個接口間歇性的丟失報文。此時路由器產(chǎn)生內(nèi)存碎片錯誤消息。
使用命令show memory free,用戶可以看到可用內(nèi)存被劃分為許多很小的碎片。需要注意的是,路由器中存在一定數(shù)量的內(nèi)存碎片是正常的。雖然并沒有一個很嚴(yán)格的界限來劃分內(nèi)存碎片的可接受程度,但是可用塊的大小至少應(yīng)該不小于可用內(nèi)存的一半。用戶可以通過重新啟動路由器來解決這個問題。在重新啟動時,系統(tǒng)重新分配內(nèi)存和緩存空間。此時,用戶應(yīng)該監(jiān)視內(nèi)存分配的過程。如果再次發(fā)生類似的情況,則應(yīng)該咨詢Cisco TAC。
用戶可以使用show process cpu命令檢查路由器的CPU是否過載。該命令將給出路由器CPU的利用率,同時顯示路由器中不同進(jìn)程的CPU占用率。在下述示例中,路由器的CPU工作正常。在通常情況下,在5分鐘內(nèi)CPU的平均利用率小于60%是可以接受的。如果懷疑CPU利用率出現(xiàn)了問題,則需要不斷地監(jiān)視這一參數(shù),因為它可能在短時間內(nèi)發(fā)生變化。***每10秒鐘使用一次該命令。通過這種方法,可以清楚地了解CPU利用率的波動情況。
如果CPU的平均利用率超過了80%,則表明路由器過載。下一步需要檢測那一些進(jìn)程導(dǎo)致了CPU利用率過高。在上面的顯示中,我們可以看到進(jìn)程IPX SAP占用了絕大部分的CPU處理能力,但是它還在可以接受的范圍之內(nèi)。有時候,如果SRB background參數(shù)持續(xù)過高,則表明發(fā)生了路由網(wǎng)橋風(fēng)暴。
show process memory命令可以用來給出路由器可用內(nèi)存的一般信息,然后顯示每一個進(jìn)程所占用的內(nèi)存空間的詳細(xì)信息。
如果路由器由于臨時重啟動而完全崩潰,則相應(yīng)的錯誤消息將包含在show version命令的輸出中。show stack命令用于跟蹤路由器的堆棧,提供路由器臨時重新啟動的原因。如果由于錯誤而導(dǎo)致重新啟動,堆棧記錄將在輸出的末尾顯示。為了抽取與故障相關(guān)的信息,堆棧記錄需要解碼。這一工作通常由Cisco TAC工程師完成。此外,擁有相應(yīng)CCO登錄ID的用戶可以通過將show stack命令的輸出發(fā)送到CCO而獲得解碼信息。堆棧記錄解碼的結(jié)果有時與Cisco路由器的bug有關(guān)。
當(dāng)用戶向Cisco TAC報告故障時,支持技術(shù)人員通常要求用戶發(fā)送show tech_support命令的輸出結(jié)果。這個命令將導(dǎo)致下述命令的按序執(zhí)行:Show version、Show controllers、Show buffers、Show interface、Show stack、Show process cpu、Show process memory和Show running-config。這些命令的組合將給出路由器配置以及大多數(shù)關(guān)鍵性能參數(shù)的詳細(xì)信息。show tech_support命令的輸出對于Cisco TAC技術(shù)人員解決復(fù)雜網(wǎng)絡(luò)問題是十分有用。
與接口相關(guān)的命令
下面我們將闡述一些直接與路由器活躍接口相關(guān)的命令。show ip interface brief將顯示每一個路由器接口的IP地址信息以及第二層的狀態(tài)信息(如下所示)。其他與IP對應(yīng)的協(xié)議的相關(guān)性信息可以通過相應(yīng)命令屬性獲得,比如show ipx interface brief。
show interface命令可以獲得更多的信息。我們以以太網(wǎng)為例來討論這些通用接口參數(shù)。
其中:
Ethernet 1/0 is up 表明OSI模型的***層成功啟動。
Line protocol up 表明第二層成功啟動 。
Description 用戶自定義的描述。使用這一功能給出接口準(zhǔn)確的描述是十分重要的。在一個大型組織中,一個局部網(wǎng)絡(luò)的工程師很難定位發(fā)生故障的路由器。
MTU 指定***傳輸單元,用戶可以配置。
BW、Dly、rely、load(帶寬、延遲、可靠性和負(fù)載):這些參數(shù)與IGRP/EIGRP標(biāo)準(zhǔn)有關(guān)。帶寬和延遲的配置可以影響到路由選擇。在工作正常的接口中,可靠性的值為255。除非在十分繁忙的條件下,否則負(fù)載通常不應(yīng)超過150/255。
Encapsulation 它指在接口的第二層封裝。在以太網(wǎng)中,對于IP,Cisco的缺省設(shè)置為ARPA,而IPX的缺省設(shè)置為Novell-Ether。
從輸出中還能獲取哪些其他的信息呢?讀者可以看到,ARP cache timeout的值為4小時(該值為缺省設(shè)置)。從路由器接口輸入到輸出的時間不到1秒鐘。輸出從未被掛起。接口計數(shù)器***一次被清0是在5個星期以前。在評估接口的統(tǒng)計信息時,這些數(shù)據(jù)是十分有用的。在通常情況下,可以將計數(shù)器清0以便作進(jìn)一步的監(jiān)視。
接口所采用的是FIFO排隊規(guī)則。輸出隊列和輸入隊列的缺省長度分別為40和75。隊列中都不包含報文。在計數(shù)器***一次被清0后,輸入隊列丟失了許多報文。但是,正如我們前面所說的,計數(shù)器5個星期未被清0;因此,該值不能說明一定發(fā)生了網(wǎng)絡(luò)故障。在這種情況下,應(yīng)該首先將計數(shù)器清0,然后再監(jiān)視輸出隊列的丟失報文數(shù)。
同時,命令的輸出中還顯示每1秒鐘通過路由器接口的平均信息量(以字節(jié)為單位)以及報文數(shù)。這些參數(shù)的總量信息、路由器接口觀測到的所有廣播報文的數(shù)量也在命令的輸出中顯示。如果廣播報文的數(shù)量增長非常迅速,尤其是如果相對于輸入報文的數(shù)量非常高,則表明在局域網(wǎng)段中有廣播風(fēng)暴。由于某些特定的應(yīng)用程序需要頻繁使用廣播報文,因此確定廣播報文的數(shù)量閥值是很困難的。但是,如果廣播報文的數(shù)量超過了整個輸入報文的30%,則需要使用局域網(wǎng)協(xié)議分析儀進(jìn)一步檢測網(wǎng)絡(luò)。
我們還可以獲取接口的下列錯誤檢測信息:
Runts 是指大小小于最小值的報文。在示例的以太網(wǎng)中,該值為64。以太網(wǎng)中指定最小報文大小大小是由于在這種傳輸模式下的工作站需要檢測碰撞。如果以太網(wǎng)段中包含以太網(wǎng)中繼器并且其距離符合規(guī)定的標(biāo)準(zhǔn),最小報文大小大小可以使處在這種傳輸模式下的工作站檢測線路中的任何碰撞。
Giants 指大小超過線路可以承受的***報文大小的報文。以太網(wǎng)的MTU通常為1500字節(jié),或者***的封裝數(shù)據(jù)為1500字節(jié)。
Input errors 指到達(dá)報文中檢測到的錯誤,也可能表明網(wǎng)段本身發(fā)生了錯誤。
Output errors 指輸出報文中的錯誤,它可能表明路由器接口本身發(fā)生了故障。
CRCs 由于報文不正確的以太網(wǎng)校驗和而檢測到的循環(huán)冗余校驗錯。它可能由于網(wǎng)段的噪聲引起,或者由于網(wǎng)卡故障、報文沖突引發(fā)。CRC的頻率應(yīng)是每100000個輸入報文中發(fā)生一次。
Frame errors 指接收到的幀的類型與路由器以太網(wǎng)幀類型(IP協(xié)議幀類型為ARPA)不匹配。
Aborts 在碰撞檢測中過度的重傳而導(dǎo)致的問題。在以太網(wǎng)中,重傳的***次數(shù)不超過15次。
Dribble condition 指接收到的幀比MTU大,但不屬于Giants。
Babble 是指持續(xù)接收到可疑的幀。
Deferred 如果線路繁忙,報文在傳輸時將被延緩發(fā)送。
Interface resets 在檢測到過多的錯誤時,路由器將重置接口。這些錯誤可能存在于局域網(wǎng)段中,也可能是接口本身的錯誤。在此不能夠判斷具體是那兒發(fā)生故障,但是,如果伴隨著大量的輸出錯誤,則表明路由器接口本身發(fā)生故障。
Collisions 在以太網(wǎng)中,沖突被分為兩大類:early和late。early collision 由發(fā)送方在幀的前64個字節(jié)進(jìn)入線路之前檢測到的沖突。early collision是以太網(wǎng)CSMA/CD訪問方法中的組成部分。early collision通常導(dǎo)致小的被中斷的幀或稱為runt。Late collision發(fā)生在幀的多個字節(jié)(大于64)被發(fā)送到線路中時產(chǎn)生的沖突。在理論上,以太網(wǎng)不會產(chǎn)生此類沖突。產(chǎn)生late collision的原因包括:
1、電纜違反了距離規(guī)則。
2、發(fā)生故障的NIC卡不正確地監(jiān)聽線路。
Lost carrier 表明在計數(shù)器***一次清0后,載波和線路協(xié)議發(fā)生的故障。此類故障通常與路由器無關(guān)。例如,載波丟失可能是因為路由器與集線器之間的電纜連接中斷。
Buffer parameters show interface命令還提供與緩沖區(qū)分配有關(guān)的故障信息,它包括no buffer、overruns、ignored、underruns、buffer failures和swapped out buffers等。
上面,我們詳細(xì)討論了show interface命令的用法。這些命令的輸出提供了與路由器接口相關(guān)以及與傳輸介質(zhì)相關(guān)的參數(shù)等有價值的信息。
show controller命令提供連接到路由器接口物理線路以及傳輸介質(zhì)的詳細(xì)信息。并且提供狀態(tài)的歷史信息。其中一些詳細(xì)信息很少被使用,它們一般僅被TAC技術(shù)人員用于解決十分復(fù)雜的問題。
與協(xié)議相關(guān)的命令
本節(jié)將討論如何使用與不同協(xié)議相關(guān)的顯示命令。
show protocol命令給出了路由器運行的協(xié)議信息以及路由這些協(xié)議的每一個接口的地址信息(如下所示)。
#p#
2.2 Debug命令
Cisco IOS 軟件中包含大量的調(diào)試命令。這些命令可以在路由器正常工作或者發(fā)生網(wǎng)絡(luò)故障時獲得在路由器中交換的報文和幀的細(xì)節(jié)信息。調(diào)試命令在排除網(wǎng)絡(luò)故障時的特殊功能,可以減少用戶對協(xié)議分析儀的需求。在使用調(diào)試命令時,需要注意以下幾點:
1、在沒有完全掌握調(diào)試命令的工作過程以及它所提供的信息時,不要使用調(diào)試命令。
2、調(diào)試命令僅能捕獲通過過程交換的報文。調(diào)試命令會明顯增加處理器的負(fù)載。某一些命令的負(fù)載很小,但是另一些處理器敏感的命令會極大地增加處理器的負(fù)擔(dān)。建議讀者在使用調(diào)試命令之前,使用命令show process cpu檢查CPU的負(fù)載。即使CPU的負(fù)載很小,在使用處理器敏感的命令時仍需要十分慎重。在不能確定的情況下,可以查詢Cisco調(diào)試命令參考手冊。對CPU十分敏感的命令將會產(chǎn)生警告信息。通常情況下,調(diào)試命令的大量輸出將會增加處理器的負(fù)擔(dān)。
3、調(diào)試命令針對故障排除,監(jiān)視時***不要使用這些命令。在獲得了足夠的信息后,應(yīng)立刻中止調(diào)試命令的執(zhí)行。
下面我們將闡述在Cisco IOS中可以使用的各種調(diào)試命令。為了敘述清楚,我們將所有的調(diào)試命令分為三類:全局(系統(tǒng))調(diào)試命令、接口調(diào)試命令以及協(xié)議調(diào)試命令。與show命令類似,這些命令之間并沒有嚴(yán)格的界限。
首先,需要了解的是有哪些調(diào)試命令可以使用。使用與調(diào)試相關(guān)的幫助,輸入“debug ?”,我們將獲得了一個命令的列表,其中每一個命令都包含若干的屬性,它們在排除故障時提供各種不同的作用。
全局調(diào)試
在配置Cisco路由器時,全局和接口命令的界限是十分明顯的。在這種情況下,我們使用“全局”來標(biāo)識那些不能用于接口調(diào)試或者特定的傳輸介質(zhì)類型和協(xié)議調(diào)試的命令。例如,在2500系列路由器中,就可以使用調(diào)試命令分析Cisco發(fā)現(xiàn)協(xié)議(Cisco Discovery Protocol,CDP)。我們通過telnet遠(yuǎn)程登錄到路由器。在缺省方式下,調(diào)試命令的輸出被發(fā)送到控制臺,如果處于telnet會話中,我們可以使用terminal monitor命令查看輸出。
接口調(diào)試
debug serial interface命令是直接與路由器接口和傳輸介質(zhì)類型相關(guān)的調(diào)試命令。在下面的示例中,串行接口采用HDLC封裝。端到端的HDLC保持活躍的報文每10秒鐘交換一次。這表明鏈路操作正常并且第二層工作正常。show interface serial0命令表明線路協(xié)議正常啟動。使用undebug all命令關(guān)閉所有的調(diào)試。
協(xié)議調(diào)試
下面我們舉協(xié)議調(diào)試的兩個示例。兩個示例都與IP協(xié)議有關(guān)。當(dāng)然,調(diào)試命令適用于所有的其他協(xié)議。
***個示例(如下所示)顯示ARP調(diào)試。ARP調(diào)試啟動,然后清除ARP緩存,同時產(chǎn)生了ARP請求和響應(yīng)。首先,我們使用命令清除了路由器上所有的ARP緩存,因此路由器連接的每一個局域網(wǎng)段都將產(chǎn)生ARP報文。因為我們不需要產(chǎn)生過多的ARP報文,所以所選擇的路由器僅與一個以太網(wǎng)段相連。
第二個示例(如下所示)顯示IP RIP調(diào)試。在調(diào)試開始時,并沒有清空路由器表,因為路由器每隔30秒自動進(jìn)行一次RIP更新,因此不需要強制更新。與***個示例中類似,在獲得了足夠的信息后應(yīng)該關(guān)閉所有的調(diào)試。
#p#
2.3 Ping命令
Ping是最常使用的故障診斷與排除命令。它由一組ICMP回應(yīng)請求報文組成,如果網(wǎng)絡(luò)正常運行將返回一組回應(yīng)應(yīng)答報文。ICMP消息以IP數(shù)據(jù)包傳輸,因此接收到ICMP回應(yīng)應(yīng)答消息能夠表明第三層以下的連接都工作正常。
Cisco的ping命令不但支持IP協(xié)議,而且支持大多數(shù)其他的桌面協(xié)議,如IPX和AppleTalk協(xié)議的ping命令。我們首先看一下支持IP協(xié)議的ping命令以用戶EXEC方式執(zhí)行的情況,然后再討論在特權(quán)模式下,擴展的ping命令包含的許多強大功能。
用戶執(zhí)行模式
IP PING 簡單的IP ping既可以在用戶模式下執(zhí)行,也可以在特權(quán)模式下執(zhí)行。正常情況下,命令會發(fā)送回5個回應(yīng)請求,5個驚嘆號表明所有的請求都成功地接收到了響應(yīng)。輸出中還包括***、最小和平均往返時間等信息。
每一個“!”表明一個echo響應(yīng)被成功的接受,如果不是“!”號,則表明echo響應(yīng)未被接收到的原因:
! 響應(yīng)成功接收
· 請求超時
U 目的不可達(dá)
P 協(xié)議不可達(dá)
N 網(wǎng)絡(luò)不可達(dá)
Q 源抑制
M 不能分段
? 不可知報文類型
IPX PING IPX ping命令只能在運行IOS v 8.2及其以上版本的路由器上執(zhí)行。用戶模式下的IPX ping通常僅用于測試Cisco路由器接口。在特權(quán)模式下,用戶可以ping特定的NOVELL工作站,命令的格式為“ping ipx IPX地址”。
APPLETALE PING 該命令使用Apple Echo Protocol(AEP)以確認(rèn)AppleTalk節(jié)點之間的連通性。需要注意的是,目前的Cisco路由器僅對以太網(wǎng)接口支持Apple Echo Protocol。命令的格式為“ping apple Appletalk地址”。
特權(quán)執(zhí)行模式
在特權(quán)執(zhí)行模式下,擴展的ping命令適用于任何一種桌面協(xié)議。它包含更多的功能屬性,因此可以獲得更為詳細(xì)的信息。通過這些信息我們可以分析網(wǎng)絡(luò)性能下降的原因而不單單是服務(wù)丟失的原因。擴展的ping命令的執(zhí)行方式也是敲入ping。然后路由器提示各種不同的屬性。
EXTENDED IP PING 其使用方法如下所示:
首先我們討論特權(quán)模式下的ping的各種可用屬性。每種屬性的缺省值在括號中顯示。
Protocol 需要測試的協(xié)議。
Target address 測試的目標(biāo)地址。
Repeat count 如果出現(xiàn)間歇性的失敗或者響應(yīng)時間過慢,ping重復(fù)的次數(shù)。
Datagram size 如果懷疑報文由于延遲過長或者分段失敗而丟失,則可以提高報文的大小。例如,我們可以使用1600字節(jié)的報文來強制分段。
Timeout 如果懷疑超時是由于響應(yīng)過慢而不是報文丟失,則可以提高該值。
Extended commands 回答確定以獲得擴展屬性。
Source address 必須是路由器接口的地址。
Type of service 根據(jù)RFC 791 TOS規(guī)定的屬性,通常缺省值為0。
Set DF bit in IP header? 通過設(shè)置DF位禁止分段,即使是報文超過了路由器定義的MTU也禁止分段。
Data pattern [0xABCD] 通過改變數(shù)據(jù)模式可以測試線路的噪聲。
Loose,Strict,Record,Timestamp,Verbose[none] 這些都是IP報文頭的屬性。一般只使用Record屬性和Verbose,其他屬性很少被使用。Record可以用來記錄報文每一跳的地址,Verbose屬性給出每一個回應(yīng)應(yīng)答的響應(yīng)時間。。
Sweep range of sizes [n] 該屬性主要用于測試大報文被丟失、處理速度過慢或者分段失敗等故障。
EXTEND IPX PING 擴展的IPX ping也允許用戶修改參數(shù),比如報文大小和重復(fù)次數(shù)。對用戶模式下ping的另一個增強屬性是使用了Novell Standard echo屬性。使用這一屬性,用戶可以ping裝載IPX的工作站。如果禁用該屬性,Novell IPX設(shè)備將不響應(yīng)ping,因為它們不支持Cisco proprietary IPX ping協(xié)議。用戶可以修改設(shè)備的屬性使它們支持這一特性
EXTENDED APPLETALK PING 擴展的AppleTalk ping命令是對用戶模式下ping的增強,這一點與擴展的IPX ping類似。與IP和IPX擴展ping一樣,用戶也可以選擇Verbose等屬性。
#p#
2.4 trace命令
trace命令提供路由器到目的地址的每一跳的信息。它通過控制IP報文的生存期(TTL)字段來實現(xiàn)。TTL等于1的ICMP回應(yīng)請求報文將被首先發(fā)送。路徑上的***個路由器將會丟棄該報文并且發(fā)送回標(biāo)識錯誤消息的報文。錯誤消息通常是ICMP超時消息,表明報文順利到達(dá)路徑的下一跳,或者端口不可達(dá)消息,表明報文已經(jīng)被目的地址接收但是不能向上傳送到IP協(xié)議棧。
為了獲得往返延遲時間的信息,trace發(fā)送三個報文并顯示平均延遲時間。然后將報文的TTL字段加1并發(fā)送3個報文。這些報文將到達(dá)路徑的第二個路由器上,并返回超時錯誤或者端口不可達(dá)消息。反復(fù)使用這一方法,不斷增加報文的TTL字段的值,直到接收到目的地址的響應(yīng)消息。
在有些情況下,使用trace命令可能會導(dǎo)致故障。因為IOS中存在與trace命令相關(guān)的bug。這些bug的相關(guān)信息可以從CCO得到。另外一個問題是,某些目標(biāo)站點不響應(yīng)ICMP端口不可達(dá)消息。當(dāng)命令的輸出顯示一系列星號(*)時,就可能碰到了此類站點。用戶可以使用Ctrl-Shift-6中斷命令的執(zhí)行。
用戶執(zhí)行模式 下面展示了一個簡單的在用戶執(zhí)行模式下執(zhí)行的trace命令的輸出。到達(dá)目的地的距離是3跳。TTL值為1的3個報文的響應(yīng)消息是ICMP超時錯誤,并且返回報文的IP地址有兩個。因為路由器1和路由器2在同一個網(wǎng)段中,并且它們到路由器3的距離都是一跳,因此這些路由器都響應(yīng)該報文。
下面列出了IP trace命令的輸出中出現(xiàn)的不同字符及其含義:
XY msec 在接收到響應(yīng)消息之前的往返延遲(以毫秒為單位)
* 報文超時
? 報文類型不能識別
U 端口不可達(dá)
P 協(xié)議不可達(dá)
N 網(wǎng)絡(luò)不可達(dá)
H 主機不可達(dá)
Q ICMP 源抑制
特權(quán)模式擴展Trace 用于擴展ping命令的許多屬性都可以用來擴展trace命令的功能。擴展trace命令的特殊屬性有:
Numeric display 在缺省情況下,trace命令的輸出中既包括IP地址也包括其對應(yīng)的DNS域名。如果用戶不需要顯示DNS域名,則可以使用該屬性。
Probe count 其缺省值為3,用戶可以根據(jù)需要進(jìn)行調(diào)整。
TTL 該值可以在***和最小TTL值之間變化。
Port number 這是一個非常有用的屬性,它可以使工程技術(shù)人員跟蹤特定的傳輸層端口。因此,不但可以確認(rèn)源端與目的端之間的IP連通性,而且可以確認(rèn)高層服務(wù)是否可被訪問。
與trace命令相關(guān)的另外一個問題是,如果存在到達(dá)目的地的多條路徑,返回報文的源地址可能不相同。在這種情況下,用戶需要仔細(xì)比較不同返回報文的延遲時間。如果仍不能得到明確的結(jié)果,可以遠(yuǎn)程訪問路徑上的一個或多個路由器,使用trace命令訪問源地址和目的地址。
#p#
3 理解Cisco錯誤消息
3.1 錯誤消息格式
系統(tǒng)錯誤消息格式如下:
%Facility - subfacility - Severity - Mnemonic : Message Text
Facility 它指出錯誤消息涉及的設(shè)備名。該值可以是協(xié)議、硬件設(shè)備或者系統(tǒng)軟件模塊。
Subfacility 它僅與通道接口處理器(CIP)卡有關(guān)。詳細(xì)的信息可以參見Cisco文檔的相關(guān)章節(jié)。
Severity 它是一個范圍在0到7之間的數(shù)字。數(shù)字的值越小,嚴(yán)重程度越高。
Mnemonic 唯一標(biāo)識錯誤消息的單值代碼。該代碼通??梢园凳惧e誤的類型。
Message Text 它是錯誤消息的簡短描述,其中包括涉及的路由器硬件和軟件信息。
下面是一些錯誤消息的示例。用戶可以查閱CCO ISO文檔的系統(tǒng)錯誤消息一節(jié),以查找這些錯誤消息的說明。
%DUAL-3-SIA:Route 171.155.148.192/26 stuck-in-active state in IP-EIGP 211. Cleaning up
%LANCE-3-OWNERR: Unit 0, buffer ownership error
需要注意的是,并不是所有的消息都涉及到故障或者問題的狀況。某些消息顯示的是狀態(tài)方面的信息。例如,以下消息僅表明ISDN BRI 0接口與特定的遠(yuǎn)端數(shù)據(jù)連接。
%ISDN-6-CONNECT: Interface BRI0 is now connected to 95551212
3.2 Traceback Report
某些與路由器內(nèi)部錯誤相關(guān)的錯誤消息包含了traceback信息。在向Cisco TAC報告錯誤時,應(yīng)在錯誤描述中加入這些信息。
4 錯誤消息和事件信息的日志
根據(jù)錯誤消息的重要性和有效性,Cisco錯誤消息可以被記錄到以下位置:
1、控制臺
2、虛擬終端
3、Syslog服務(wù)器
4、內(nèi)部緩沖區(qū)
logging on命令使日志消息的輸出到上述位置。對于Syslog服務(wù)器,必須使用下述全局配置命令指明服務(wù)器的IP地址:
logging ip-address
通過反復(fù)使用這一命令,可以建立一個服務(wù)器的列表。在管理大型網(wǎng)絡(luò)時,通常需要設(shè)置冗余服務(wù)器。
logging buffered命令用于將日志信息發(fā)送到內(nèi)部緩沖區(qū)。緩沖區(qū)的大小必須在4096字節(jié)以上。缺省值根據(jù)系統(tǒng)平臺的不同而不同。用戶需要選擇適合環(huán)境的緩沖區(qū)大小。如果緩沖區(qū)太小,新的消息將會覆蓋舊的消息。這有可能會導(dǎo)致問題。但是,如果緩沖區(qū)大小過大將會浪費系統(tǒng)緩存。no logging buffered命令將禁止消息被寫入內(nèi)部緩存。
用戶可以使用show logging命令顯示內(nèi)部緩沖區(qū)的內(nèi)容。如果用戶需要某一時間段的信息,首先使用NTP或者手工設(shè)置時鐘,具體操作為:
日志消息的時間戳和調(diào)試信息可以使用以下全局配置命令:
terminal monitor命令將在當(dāng)前終端上顯示調(diào)試時的日志信息。該命令不是一個配置命令。相反,它可以通過telnet到路由器時在命令行方式下使用。
在大多數(shù)情況下,用戶可能需要顯示某一級別的日志信息。因此,日志信息被分為八個不同的級別,按照重要程度由高到低排列如下:
1、Emergencies
2、Alerts
3、Critical
4、Errors
5、Warnings
6、Notifications
7、Informational
8、Debugging
例如,需要在控制臺上顯示嚴(yán)重程度等于或者大于警告(Warning)的所有日志信息,可以使用下述全局配置命令:
logging console warning
類似的,將某種類型的日志信息發(fā)送到當(dāng)前的終端時,使用
logging monitor level
或者將信息發(fā)送到Syslog服務(wù)器時使用
logging trap level
與terminal monitor命令不同,logging monitor命令是路由器配置的一部分。前一種命令不允許在不同的安全級別下執(zhí)行。
需要注意的是,將日志記錄到不同的位置時,系統(tǒng)開銷變化很大。將日志記錄到控制臺的開銷比較大,然而將日志記錄到虛擬終端時開銷較小。使用Syslog服務(wù)器時開銷更小。系統(tǒng)開銷最小的日志寫入方式是寫入內(nèi)部緩沖區(qū)。
#p#
5 核心轉(zhuǎn)儲(Core Dump)
為了查找路由器崩潰的原因,我們可以使用許多命令來獲取有效的信息。其中我們已經(jīng)講解了show stacks命令的用法。核心轉(zhuǎn)儲是系統(tǒng)內(nèi)存映象的拷貝,它可以被寫入到TFTP服務(wù)器中。從這個二進(jìn)制文件中,我們可以獲得與路由器崩潰或者嚴(yán)重誤操作相關(guān)的信息,通過這些信息可以排除可能的故障。
下面的配置命令將核心轉(zhuǎn)儲寫入到命令中IP地址對應(yīng)的TFTP服務(wù)器上:
exception dump ip-address
write core命令通常用于路由器發(fā)生嚴(yán)重的誤操作但是沒有完全崩潰時,保存核心映像。
只有運行IOS v 9.0或更高版本的服務(wù)器才可以使用核心轉(zhuǎn)儲。但是,需要注意的是,在使用核心轉(zhuǎn)儲時,***獲取有經(jīng)驗的工程師或者Cisco TAC的支持。
6 結(jié)束語
要順利地診斷并排除網(wǎng)絡(luò)故障,網(wǎng)絡(luò)工程技術(shù)人員必須掌握兩種基本的技能。首先是對網(wǎng)絡(luò)技術(shù)和協(xié)議要有清楚的理解,它是診斷與排除網(wǎng)絡(luò)故障的基礎(chǔ)。沒有適當(dāng)?shù)闹R和經(jīng)驗,故障診斷與排除工具比如路由器診斷命令和網(wǎng)絡(luò)分析儀都不能發(fā)揮其作用。
網(wǎng)絡(luò)工程技術(shù)人員必須掌握的第二種技能是將所掌握的知識以有條理的方式應(yīng)用于診斷和排除網(wǎng)絡(luò)故障的過程中。本文雖然只闡述了一些診斷的命令,但需要強調(diào)的是:故障診斷與排除是一種結(jié)構(gòu)化的方法。許多工程技術(shù)人員認(rèn)為故障診斷與排除計劃不如研究和應(yīng)用技術(shù)本身重要。事實上,正確的計劃在故障診斷與排除過程中往往起決定性的作用。在故障排除過程中,一個偶然的行為可能使故障得以順利解決,但是它不能替代結(jié)構(gòu)化的故障診斷與排除方法。
網(wǎng)絡(luò)故障的排除是一項系統(tǒng)工程,應(yīng)該經(jīng)過定義問題、搜集事實、基于事實考慮可能性、建立行動計劃、實施計劃、觀察結(jié)果和循環(huán)過程等步驟,這一過程就如同軟件開發(fā)過程的瀑布模型,其重要性是不言而喻的。限于篇幅,本文對這些知識不再贅述