目錄

簡介

必要條件

需求

採用元件

慣例

控制檯沒有響應

故障排除步驟

流量無法通過

可能原因

從ROM監視器獲取堆疊跟蹤

開啟TAC服務請求時要收集的資訊

相關資訊

簡介

本文幫助對沒有響應的系統進行故障排除。本文檔還討論了問題的原因以及如何消除問題。

當系統不響應控制檯或從網路傳送的查詢(例如Telnet、簡單網路管理協定(SNMP)等)時，路由器似乎會停止工作。這些問題可以分為兩大類：

- 當控制檯不響應時。

- 當流量不通過時。

必要條件

需求

本文件沒有特定需求。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- 所有Cisco IOS®軟體版本

- 所有思科路由器

本檔案不適用於Cisco Catalyst交換器或MGX平台。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

慣例

如需文件慣例的詳細資訊，請參閱思科技術提示慣例。

控制檯沒有響應

當路由器對控制檯埠上的輸入無響應時，就會發生控制檯問題。如果控制檯沒有響應，則意味著高優先順序進程會阻止控制檯驅動程式響應輸入。

故障排除步驟

- 檢驗電纜連通性。

- 驗證電源是否開啟。

- 檢驗路由器LED狀態。如果所有LED都熄滅，則很可能是路由器電源有問題。

如果流量仍流經路由器：

- 斷開網路介面連線，並檢視路由器是否響應。很多時候，路由器會認為它在執行某些太重要的操作，因而無法提供服務exec會話。

- 您也可以發出以下命令後嘗試重現問題：

在Cisco 7200和7500系列上：

configure terminal

scheduler allocate 3000 1000

^Z

scheduler allocate命令可保證低優先順序進程的CPU時間。它將每個網路中斷上下文的最長時間分配給快速交換（3000微秒 — usec）和進程交換(1000 usec)。

在所有其他平台上，使用：

configure terminal

scheduler interval 500

^Z

scheduler interval命令允許每500 usec排程一次低優先順序進程，從而允許鍵入一些命令，即使CPU使用率為100%。

有關這些命令的詳細資訊，請參閱《Cisco IOS軟體命令參考》中的基本系統管理命令。

- 如果由於路由器CPU使用率較高而控制檯沒有響應，則查詢並糾正CPU使用率較高的原因非常重要。例如，如果程式交換IP流量導致問題，則在show processes cpu 命令的輸出中的「IP Input」進程中反映出來。在這種情況下，收集show interfaces、show interfaces stat和show processes的輸出對於進一步診斷問題非常重要。要解決此問題，您需要減少進程交換的IP通訊量。如需詳細資訊，請參閱疑難排解Cisco路由器上的CPU使用率高。

- 明顯的掛起現象的另一個可能原因是記憶體分配失敗；即，路由器已使用所有可用記憶體，或者記憶體被分段為非常小的片段，以致路由器無法找到可用的可用塊。如需詳細資訊，請參閱疑難排解記憶體問題。

- 路由器可能由於與安全相關的問題（如蠕蟲或病毒）而停止響應。如果網路最近未發生更改（例如路由器IOS升級），則尤其可能是導致此問題的原因。通常，配置更改（例如向訪問清單新增其他行）可以減輕此問題的影響。Cisco Security Advisories and Notices頁面包含有關偵測最可能的原因和特定解決方法的資訊。

如需其他資訊，請參閱：

- 有關Internet威脅的100個問題解答

- 思科威脅控制

- 如果路由器在啟動過程中似乎凍結，則可能是由於功能配置不當或功能配置中的軟體缺陷所致。這一點通常會在路由器凍結之前立即從控制檯上出現警告或錯誤消息中明顯看出。

解決此問題的方法是，將路由器引導至ROMMON，並繞過儲存的配置，然後重新進行配置。請完成以下步驟：

1. 將終端機或具有終端模擬的PC連線到路由器的主控台連線埠。

使用以下終端機設定：

- 9600波特率

- 無奇偶校驗

- 8個資料位

- 1個停止位

- 無流量控制

2. 在通電後60秒內通過按終端鍵盤上的break重新啟動路由器並進入ROMMON。如果Break按鍵順序不起作用，請參閱密碼復原期間的標準Break按鍵順序組合以瞭解其他按鍵組合。

3. 將配置暫存器更改為0x2142，然後重置路由器。為此，請在rommon 1>提示符下執行confreg 0x2142命令。然後在rommon 2>提示符下鍵入reset。這會導致路由器從快閃記憶體啟動，而不載入配置。

4. 在每個設定問題後鍵入no，或按Ctrl-C跳過初始設定過程。

5. 在Router>提示時鍵入enable。

您處於enable模式，並看到Router#提示。

6. 現在，您可以儲存一個空配置（刪除了所有命令）。發出copy running-config startup-config命令。或者，如果您懷疑某個命令導致了問題，則可以編輯配置。為此，請發出copy startup-config running-config命令。然後鍵入configure terminal，並進行更改。

7. 完成後，將配置暫存器改回0x2102。為此，請鍵入config-register 0x2102。發出copy running-config startup-config命令以提交更改。

如果流量不流經路由器：

- 如果流量不再通過路由器，而控制檯沒有響應，則可能是系統出現了問題。這通常表示路由器陷入連續循環或卡在某個功能上。這幾乎總是由軟體中的錯誤所導致。安裝您當前運行的Cisco IOS軟體系列的最新維護版本。

使用Cisco TAC建立服務要求之前，請從ROM Monitor取得堆疊追蹤軌跡。在問題期間獲取堆疊跟蹤可以確定路由器在代碼中循環或停滯的位置。

流量無法通過

當控制檯保持響應但流量不通過路由器時，就會發生流量問題。在這種情況下，部分流量或部分介面沒有響應。此行為可能是由多種不同的原因導致的。發生此問題時，可以通過控制檯埠從路由器收集資訊。造成這些流量問題的原因可能包括介面上的錯誤以及軟體和硬體問題。

可能原因

- 路由問題 — 網路拓撲或某些路由器配置中的更改可能會影響路由表。

- CPU使用率高 — 發出show process cpu命令。如果CPU使用率超過95%，則可能會影響路由器的效能，而且可能會延遲或丟棄資料包。有關詳細資訊，請參閱對路由器上的CPU使用率過高進行故障排除。

- Interface down — 其中一個路由器介面可能關閉。可能會有多個事件導致此問題，範圍從錯誤配置命令到介面或電纜的硬體故障。如果在發出show interfaces命令時某些介面顯示為關閉，請嘗試找出其原因。

- 楔形介面 — 這是緩衝區洩漏的一種特殊情況，它會導致介面的輸入佇列填滿到無法再接受封包的程度。重新載入路由器。這樣可以釋放輸入隊列，並恢復流量，直到隊列再次滿。根據洩漏的嚴重性，這可能需要幾秒到幾週的時間。

識別楔形介面的最簡單方法是發出show interfaces命令，並尋找類似以下的內容：

Output queue 0/40, 0 drops; input queue 76/75, 27 drops

如需詳細指南和範例，請參閱疑難排解緩衝區洩漏。

從ROM監視器獲取堆疊跟蹤

K-trace指用於從ROM監控器從路由器獲取堆疊跟蹤的過程。在具有舊版ROM Monitor代碼的路由器上，使用k命令獲取堆疊跟蹤。在執行較新ROM Monitor代碼的路由器上，也可使用stack指令。

完成以下步驟，從沒有回應的路由器取得堆疊追蹤：

1. 啟用Break序列。為此，請更改配置暫存器值。八位值必須設定為零，這樣中斷就不會被忽略。值為0x2002有效。

Router#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#config-register 0x2002

2. 重新載入路由器，以便使用新的配置暫存器值。

3. 發生問題時傳送break序列。必須顯示ROM Monitor提示「>」或「rommon 1 >」。

4. 擷取堆疊追蹤軌跡。為此，請收集k 50或stack 50命令的輸出。將50新增到命令中，以列印更長的堆疊追蹤軌跡。

5. 發出c或cont命令以繼續。

6. 多次重複上述三個最後步驟，以確保已捕獲連續循環中的多個點。

7. 獲得多個堆疊追蹤後，請重新啟動路由器，以從掛起狀態中復原。

以下是此程式的範例：

User break detected at location 0x80af570

rommon 1 > k 50

Stack trace:

PC = 0x080af570

Frame 00: FP = 0x02004750    RA = 0x0813d1b4

Frame 01: FP = 0x02004810    RA = 0x0813a8b8

Frame 02: FP = 0x0200482c    RA = 0x08032000

Frame 03: FP = 0x0200483c    RA = 0x040005b0

Frame 04: FP = 0x02004b34    RA = 0x0401517a

Frame 05: FP = 0x02004bf0    RA = 0x04014d9c

Frame 06: FP = 0x02004c00    RA = 0x040023d0

Frame 07: FP = 0x02004c68    RA = 0x04002e9e

Frame 08: FP = 0x02004c78    RA = 0x040154fe

Frame 09: FP = 0x02004e68    RA = 0x04001fc0

Frame 10: FP = 0x02004f90    RA = 0x0400c41e

Frame 11: FP = 0x02004fa4    RA = 0x04000458

Suspect bogus FP = 0x00000000, aborting

rommon 2 > cont

發生系統問題時，多次重複此過程以收集堆疊跟蹤的多個例項。

當路由器不響應時，幾乎總是軟體問題。在這種情況下，請在開啟TAC服務要求之前，收集儘可能多的資訊，包括堆疊追蹤軌跡。包括show version、show run和show interfaces命令的輸出也很重要。

開啟TAC服務請求時要收集的資訊

如果開啟TAC服務請求，請將以下資訊附加到路由器掛起故障排除請求中：

- 開啟案例之前執行的故障排除

- show technical-support輸出（如果可能，在啟用模式下）

- show log輸出或控制檯捕獲（如果可用）

- 來自ROM監控器的堆疊跟蹤

請將收集到的資料以非壓縮純文字檔案格式(.txt)附加到您的案例。您可以使用TAC服務請求工具（僅限註冊客戶）將資訊上傳到您的案件（僅限註冊客戶）。如果您無法存取TAC服務請求工具，可將相關資訊附加到您的案件，方法是將相關資訊傳送到attach@cisco.com，並將您的案件編號填寫在郵件主題行。
註：如果控制檯有響應，請不要在收集上述資訊之前手動重新載入或重新啟動路由器，除非需要排除路由器掛起故障，因為這將導致確定問題根本原因所需的重要資訊丟失。

相關資訊

- show processes命令

- 密碼復原期間的標準Break按鍵順序組合

- 技術支援與文件 - Cisco Systems