利用Cisco的ISO命令檢測以太網(wǎng)端口故障
Cisco故障診斷一、路由器的功能特性和體系結(jié)構(gòu)
在學(xué)習(xí)Cisco路由器上可使用的各種故障排除和診斷工具之前,了解路由器的基本體系結(jié)構(gòu)是十分重要的。網(wǎng)絡(luò)工程師應(yīng)該理解診斷命令執(zhí)行時所起的作用以及對于路由器性能所產(chǎn)生的影響。
交換與路由是我們在網(wǎng)絡(luò)互聯(lián)中經(jīng)常遇到的術(shù)語。此處所說的交換與局域網(wǎng)中的幀級交換是完全不同的概念。交換過程是指路由器如何在兩個不同的接口間傳送報文。
比如,路由器在以太網(wǎng)接口0接收到一個報文。路由器首先從報文中獲取MAC頭信息,然后檢查網(wǎng)絡(luò)層報文頭。路由器檢查路由表是否有與報文的目的地址匹配的表項。假設(shè)路由表中包含匹配的項,并且下一跳地址是另外一個路由器,該路由器可以通過以太網(wǎng)接口1到達。然后路由器需要檢查下一跳的第二層地址。如果它沒有該地址,則需要在以太網(wǎng)接口1發(fā)送ARP廣播報文。如果沒有接收到ARP響應(yīng),路由器則將該報文丟棄。如果有響應(yīng)信息,路由器則建立到下一跳路由器的以太網(wǎng)幀。在這個例子中,路由器從接收到以太網(wǎng)幀到建立并發(fā)送以太網(wǎng)幀的整個過程稱為交換過程。需要注意的是,ARP解析過程通常不認為是交換過程的一部分。上面的過程中,執(zhí)行路由表查詢以尋找下一跳的地址表明采用了交換過程。這是一種最簡單的報文交換方法,因而其開銷和延遲都比較大。所有的路由協(xié)議最終都依賴于路由表的建立,路由器通過接收運行相同協(xié)議的相鄰路由器發(fā)送的路由更新報文來更新相應(yīng)的路由表,我們稱之為路由過程(routing process),它主要由路由處理器完成。
目前在國內(nèi)應(yīng)用比較廣泛的Cisco路由器包括2500系列、4000系列、7000系列和7500系列,這些路由器進行路由的過程基本上是相似的,但是交換的過程卻根據(jù)其系統(tǒng)結(jié)構(gòu)的不同而不同。
7000系列支持過程交換、快速交換、自治交換和硅交換。
7500系列路由器比7000系列在體系結(jié)構(gòu)方面有很多改進。路由處理器和交換處理器的功能被集成到路由器交換處理器(RSP)中。這一新的體系結(jié)構(gòu)減少了快速交換時系統(tǒng)總線的負載。集成后的功能對路由處理器和交換處理器都作了性能、穩(wěn)定性、可擴充性和安全等方面的優(yōu)化。7500系列路由器既不支持自治交換也支持硅交換,它支持更加靈活的優(yōu)化交換。
4000/2500系列路由器的硬件結(jié)構(gòu)比7000/7500系列路由器的硬件結(jié)構(gòu)簡單。這些設(shè)備只在交換過程中才共享存儲器。所有的報文緩存和Cache都位于共享存儲器中,因此只支持快速交換或過程交換。
需要知道過程交換需要通過查詢路由表來做出路由選擇,而且其他交換技術(shù)都是通過緩存來提高交換速度的,因為其緩存的位置不同而分別稱為不同的技術(shù)。
Cisco故障診斷二、故障診斷與排除命令
ISO操作系統(tǒng)軟件提供了一組功能豐富的命令,可以用來進行故障查找與排除、問題診斷以及性能檢測。命令大致可以分為兩類:show命令和debug命令。同時,還包含一組用于連接這兩類命令的clear命令。下面我們分別講解各命令:
Cisco故障診斷三、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命令檢查。
YH-Router#show memory
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 60DB19C0 19195456 6162924 13032532 11615164 11250780
Fast 60DB19C0 131072 128344 2728 2728 2684
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)存的利用率降低,嚴重時可能產(chǎn)生內(nèi)存錯誤從而也嚴重影響路由器的性能?,F(xiàn)在看一看路由器中有許多內(nèi)存碎片的情形(如下所示)。此時我們有足夠多的可用內(nèi)存(8.4兆字節(jié)),但是其中最大的塊僅為0.5兆字節(jié)。連續(xù)內(nèi)存中沒有足夠大的可用塊,這有可能導(dǎo)致嚴重的內(nèi)存分配問題。這些問題有時表現(xiàn)為一個或多個接口間歇性的丟失報文。此時路由器產(chǎn)生內(nèi)存碎片錯誤消息。
HX-Router#sh mem
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 60DB19C0 19195456 10713712 8481744 192680 586748
Fast 60DB19C0 131072 90936 40136 40136 40092
使用命令show memory free,用戶可以看到可用內(nèi)存被劃分為許多很小的碎片。需要注意的是,路由器中存在一定數(shù)量的內(nèi)存碎片是正常的。雖然并沒有一個很嚴格的界限來劃分內(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的利用率,同時顯示路由器中不同進程的CPU占用率。在下述示例中,路由器的CPU工作正常。在通常情況下,在5分鐘內(nèi)CPU的平均利用率小于60%是可以接受的。如果懷疑CPU利用率出現(xiàn)了問題,則需要不斷地監(jiān)視這一參數(shù),因為它可能在短時間內(nèi)發(fā)生變化。最好每10秒鐘使用一次該命令。通過這種方法,可以清楚地了解CPU利用率的波動情況。
YH-Router#sh process cpu
CPU utilization for five seconds:15%/4%;one minute:175;five minutes:19%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 460184 5380085 85 0.00% 0.00% 0.00% 0 NTP
2 252749536 2384205 106010 0.00% 2.35% 2.65% 0 Check Heaps
......
13 26155236 9135958 2862 0.32% 0.25% 0.22% 0 IP Background
14 317720 150150 2116 0.00% 0.00% 0.00% 0 IP Cache ager
......
23 51598380 135094851 381 0.32% 0.24% 0.28% 0 IPX Input
24 86792124 23662071 3667 0.98% 0.87% 0.89% 0 IPX RIP
25 438480948 123384161 3553 7.94% 3.31% 3.91% 0 IPX SAP
......
如果CPU的平均利用率超過了80%,則表明路由器過載。下一步需要檢測那一些進程導(dǎo)致了CPU利用率過高。在上面的顯示中,我們可以看到進程IPX SAP占用了絕大部分的CPU處理能力,但是它還在可以接受的范圍之內(nèi)。有時候,如果SRB background參數(shù)持續(xù)過高,則表明發(fā)生了路由網(wǎng)橋風(fēng)暴。
show process memory命令可以用來給出路由器可用內(nèi)存的一般信息,然后顯示每一個進程所占用的內(nèi)存空間的詳細信息。
如果路由器由于臨時重啟動而完全崩潰,則相應(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ù)的詳細信息。show tech_support命令的輸出對于Cisco TAC技術(shù)人員解決復(fù)雜網(wǎng)絡(luò)問題是十分有用。
Cisco故障診斷四、與接口相關(guān)的命令
下面我們將闡述一些直接與路由器活躍接口相關(guān)的命令。show ip interface brief將顯示每一個路由器接口的IP地址信息以及第二層的狀態(tài)信息(如下所示)。其他與IP對應(yīng)的協(xié)議的相關(guān)性信息可以通過相應(yīng)命令屬性獲得,比如show
ipx interface brief。
YH-Router#sh ip in brief
Interface IP-Address OK? Method Status Protocol
TokenRing0/0 172.26.12.3 YES NVRAM up up
TokenRing0/1 172.27.12.3 YES NVRAM up up
TokenRing0/2 172.28.12.3 YES NVRAM up up
TokenRing0/3 unassigned YES NVRAM administratively down down
Ethernet1/0 172.30.12.3 YES NVRAM up up
Ethernet1/0 172.31.12.3 YES NVRAM up up
Ethernet1/0 172.32.12.3 YES NVRAM up up
Ethernet1/0 172.33.12.3 YES NVRAM up up
show interface命令可以獲得更多的信息。我們以以太網(wǎng)為例來討論這些通用接口參數(shù)。
YH-Router#sh int e1/0
Ethernet1/0 is up,line protcol is up
Hardware is cxBus Ethernet,address is 00e0.f78a.6d40(bia 00e0.f78a.6d40)
Description:seg=E2 LAB SRV1
Internet address is 172.30.12.3/16
MTU 1500bytes,BW 10000Kbit,DLY 1000usec,rely 255/255,load 1/255
Encapsulation ARPA, loopback not set, keepalive set(10sec)
ARP type:ARPA,ARP Timeout 04:00:00
Last input 00:00:00,output 00:00:00,output hang never
Queueing strategy:fifo
Output queue 0/40,44 drops;input queue 0/75,66114 drops
5 minute input rate 181000 bits/sec,23 packets/sec
5 minute output rate 43000 bits/sec,26 packets/sec
525599659 packets input,2042735431 bytes, 0 no buffer
Received 4004547 broadcasts,10 runts,0 giants
139 input errors, 0 CRC, 129 frame, 0 overrun, 0 ignored, 0 abort
0 input packets with dribble condition detected
481020335 packets output, 1069273018 bytes, 47 underruns
20 output errors, 95880485 collisions, 0 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out
其中:
Ethernet 1/0 is up 表明OSI模型的第一層成功啟動。
Line protocol up 表明第二層成功啟動 。
Description
使用這一功能給出接口準確的描述是十分重要的。在一個大型組織中,一個局部網(wǎng)絡(luò)的工程師很難定位發(fā)生故障的路由器。
MTU 指定最大傳輸單元,用戶可以配置。
BW、Dly、rely、load(帶寬、延遲、可靠性和負載):這些參數(shù)與IGRP/EIGRP標(biāo)準有關(guān)。帶寬和延遲的配置可以影響到路由選擇。在工作正常的接口中,可靠性的值為255。除非在十分繁忙的條件下,否則負載通常不應(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以便作進一步的監(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é)議分析儀進一步檢測網(wǎng)絡(luò)。
我們還可以獲取接口的下列錯誤檢測信息: Runts 是指大小小于最小值的報文。在示例的以太網(wǎng)中,該值為64。以太網(wǎng)中指定最小報文大小大小是由于在這種傳輸模式下的工作站需要檢測碰撞。如果以太網(wǎng)段中包含以太網(wǎng)中繼器并且其距離符合規(guī)定的標(biāo)準,最小報文大小大小可以使處在這種傳輸模式下的工作站檢測線路中的任何碰撞。
Giants 指大小超過線路可以承受的最大報文大小的報文。以太網(wǎng)的MTU通常為1500字節(jié),或者最大的封裝數(shù)據(jù)為1500字節(jié)。
Input errors 指到達報文中檢測到的錯誤,也可能表明網(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é)進入線路之前檢測到的沖突。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的原因包括:
;; 電纜違反了距離規(guī)則。
;; 發(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等。
上面,我們詳細討論了show interface命令的用法。這些命令的輸出提供了與路由器接口相關(guān)以及與傳輸介質(zhì)相關(guān)的參數(shù)等有價值的信息。
show controller命令提供連接到路由器接口物理線路以及傳輸介質(zhì)的詳細信息。并且提供狀態(tài)的歷史信息。其中一些詳細信息很少被使用,它們一般僅被TAC技術(shù)人員用于解決十分復(fù)雜的問題。
Cisco的相關(guān)文章: