一、介紹
本文內容說明了使用Cisco IOS(r)平臺上所提供的調試功能的一些基本指導原則,以及正確使用 debug ip packet 命令和有條件調試的示例。
注: 對于如何使用并解釋特定的debug命令和輸出,本文不加以說明。有關特定 debug 命令的信息,請參考相應的Cisco debug 命令參考文獻。
debug 特權EXEC命令的輸出提供有關各種網際互聯事件的診斷信息,這些事件一般涉及到協議狀態和網絡行為。
前提條件 本文讀者應了解以下方面的一些知識:
通過控制面板、aux和vty端口與路由器相連。
基本IOS配置問題。
解釋IOS調試命令輸出。
警告:請謹慎使用 debug 命令。當解決具體問題時,通常只推薦在路由器技術支持人員提供指導的情況下使用這些命令。
在互聯網絡處于高負載的情況下,啟用調試功能會中斷路由器的運行。因此,若啟用日志功能,則在控制面板端口日志消息超載的情況下,訪問服務器可能會出現間歇性的中斷。
在啟動 debug 命令之前應始終考慮此命令將生成的輸出及所花費的時間。例如,若您配置了有一個基本速率接口(BRI)的路由器,則 debug isdn q931 可能不會對系統產生危害。但是,在具有全部E1配置的AS5800上進行相同的調試,則可能生成許多輸入,以致使系統“掛起”或停止響應。
在調試之前,通過 show processes cpu show processes cpu命令來查看CPU負載情況。開始調試之前應驗證是否有足夠的CPU。有關處理高CPU負載方面的信息 ,請參考“解決Cisco路由器上高CPU利用率問題”的文獻。例如,若通過具有ATM接口的Cisco 7200路由器來進行橋接,那么根據所配置子接口數量的不同,重新啟動路由器可能會使用大量的CPU。這是因為:對于每個虛電路(VC),都需要生成網橋協議數據單元(BPDU)數據包。在這樣的重要時間內啟動調試功能可能會使CPU利用率急劇增加,并導致系統掛起或網絡斷開。
注: 在運行調試功能時,特別是進行大量調試時,通常不出現路由器提示。但是,在大多數情況下,可以通過 no debug all 或 undebug all 命令來停止調試。有關安全使用調試的更多信息,請參考“ 獲得調試輸出 ”一章。
二、調試之前應注意的事項
除了上述幾點外,還必須了解調試對平臺穩定性的影響,并應考慮連接路由器上的哪個接口。以下的章節提供這方面的一些指導原則。
獲得調試輸出
路由器可顯示各種接口的調試輸出,其中包括控制面板、aux和vty端口。路由器還可將發送到內部緩沖器的日志消息記錄到外部unix syslog服務器上。下面討論每種方法的使用說明和注意事項:
控制面板端口
若在通常配置下連接到控制面板上,則無需額外工作。調試輸出應自動顯示。但是,必須保證按照要求來設置 logging console level ,并保證日志功能沒有由 no logging console 命令而禁用。有關更多信息,請參考“ 使用Debug命令 ”的文獻。
警告: 對路由器控制面板端口進行過多的調試可能引起路由器處于“掛起”狀態。這是因為:在執行路由器其他功能之前,路由器對控制面板輸出自動劃分優先權。若路由器處理發送到控制面板端口的大型調試輸出,路由器可能處于掛起狀態。所以,若出現過多的調試輸出,則使用vty (telnet)端口或日志緩沖器來獲得調試輸出。下面提供這方面的更多信息。
注: 在缺省情況下,控制面板端口上的日志功能處于啟用狀態。即使實際上使用一些其他端口或方法(如:Aux、vty或緩沖器)來捕獲輸出,控制面板端口通常也要處理調試輸出。所以,在通常條件下,推薦始終啟用 no logging console 命令,并使用其他方法來捕獲調試輸出。在需要使用控制面板的情況下,暫時將 logging console 設置為啟用狀態。
Aux端口
若通過輔助端口進行連接,則鍵入 terminal monitor命令。 還要驗證路由器上 no logging on 命令是否處于禁用狀態。 注: 若使用Aux端口來監視路由器,則時刻注意:在路由器重新啟動的情況下,Aux端口不顯示啟動序列輸出。若要查看啟動序列,需連接控制面板端口。
VTY端口
若要通過輔助端口或遠程登錄進行連接,則鍵入 terminal monitor 命令,并驗證no logging on 命令是否處于未用狀態。
將信息記錄到內部緩沖器
缺省的日志設備是控制面板;除非指定其他設備,否則在控制面板上顯示所有消息。若要將日志信息記錄到內部緩沖器上,則使用日志緩沖路由器配置命令。
此命令的全部句法如下:
logging buffered
no logging buffered
logging buffered 命令將日志消息復制到內部緩沖器上,而不是將這些消息寫在控制面板中。緩沖器具有循環特性,新消息將覆蓋舊消息。若要顯示緩沖器中所記錄的消息,則使用show logging特權EXEC命令。所顯示的第1個消息是緩沖器中最舊的消息。可以指定緩沖器的大小,以及要記錄的信息的重要級別。
提示:在輸入緩沖器大小之前,要保證設備有足夠的可用內存。使用 show proc mem IOS命令來查看可用內存。通過 no logging buffered 命令,可禁用緩沖器,并將消息寫入到控制面板中(缺省條件下)。
將信息記錄到UNIX Syslog服務器
若要將日志信息記錄到syslog服務器主機上,則使用日志路由器配置命令。此命令的全部句法如下:
logging
no logging
通過 logging 命令確定syslog服務器主機以接收日志消息。