安裝終端仿真器軟件(例如,HyperTerminal) 以便將調(diào)試輸出捕獲到文件上。例如:在HyperTerminal中,點(diǎn)擊Transfer, 然后點(diǎn)擊CaptureText并選擇相應(yīng)的選項(xiàng)。有關(guān)更多信息,請(qǐng)參考“ 捕獲 Hyperterminal 中文本輸出”文獻(xiàn)。有關(guān)其他終端仿真器軟件,請(qǐng)參考軟件文獻(xiàn)。
通過以下業(yè)務(wù)時(shí)間標(biāo)記命令來啟用毫秒(msec)時(shí)間標(biāo)記:
router(config)#service timestamps debug datetime msec
router(config)#service timestamps log datetime msec
這些命令將時(shí)間標(biāo)記以MMM DD HH:MM:SS的格式添加到調(diào)試中,從而根據(jù)系統(tǒng)時(shí)鐘來顯示日期和時(shí)間。若未設(shè)置系統(tǒng)時(shí)鐘,則日期和時(shí)間之前帶有星號(hào)(*)以說明日期和時(shí)間可能不正確。
通常合理的辦法是配置毫秒時(shí)間標(biāo)記,這是因?yàn)椋涸诓榭凑{(diào)試輸出時(shí),通過這種辦法可實(shí)現(xiàn)更高級(jí)別的準(zhǔn)確性。對(duì)于相互聯(lián)系的調(diào)試事件,毫秒時(shí)間標(biāo)記提供了更好的指示說明。但是,值得注意的是,在控制面板端口輸出大量信息時(shí),可能不與事件的實(shí)際定時(shí)發(fā)生聯(lián)系。例如,若啟用標(biāo)有200 VC方框中的 debug x25 all ,并將輸出記錄到緩沖器(使用 no logging console 和logging buffered 命令)的情況下,調(diào)試輸出(在緩沖器范圍內(nèi))所顯示的時(shí)間標(biāo)記可能不是數(shù)據(jù)包通過接口時(shí)的準(zhǔn)確時(shí)間。因此,不要使用msec時(shí)間標(biāo)記來證明性能情況,但可使用這種時(shí)間標(biāo)記來獲得事件發(fā)生時(shí)間的相對(duì)信息。
停止調(diào)試
若要停止調(diào)試,則使用 no debug all 或 undebug all 命令。通過show debug命令來驗(yàn)證是否已經(jīng)關(guān)閉調(diào)試。請(qǐng)注意,通過 no logging console 和 terminal no monitor 命名,只能分別使輸出不在控制面板、Aux或 vty上發(fā)生,而不能停止調(diào)試,并因此用盡路由器資源。
三、使用 debug ip packet 命令
通過 debug ip packet 命令,可產(chǎn)生有關(guān)數(shù)據(jù)包的信息,這種數(shù)據(jù)包未經(jīng)路由器進(jìn)行快速轉(zhuǎn)換。但是,由于生成每個(gè)數(shù)據(jù)包的輸出,所以輸出尺寸擴(kuò)大,并因此使路由器處于“掛起”狀態(tài)。所以,如本文所描述的那樣,只在最嚴(yán)格的控制下使用 debug ip packet 。
限制 debug ip packet 輸出的最佳辦法是 創(chuàng)建與調(diào)試鏈接的訪問列表。只有符合訪問列表標(biāo)準(zhǔn)的數(shù)據(jù)包需要使用debug ip packet。不必在所有接口上都應(yīng)用此訪問列表,但非常適用于調(diào)試操作。
在使用 debugging ip packet之前,請(qǐng)注意:在缺省狀態(tài)下,路由器進(jìn)行快速交換,或在特定配置情況下進(jìn)行CEF交換。也就是說,如果這些方法可用,則不向處理器提供數(shù)據(jù)包,因此,調(diào)試不顯示任何內(nèi)容。若要使調(diào)試顯示內(nèi)容,則需要通過no ip route-cache (適用于單點(diǎn)發(fā)送數(shù)據(jù)包)或no ip mroute-cache(適用于組播數(shù)據(jù)包)來禁止路由器上的快速交換。這種辦法適用于傳輸業(yè)務(wù)的接口。通過 show ip route 命令來驗(yàn)證這種情況。
警告:對(duì)于處理大量數(shù)據(jù)包的路由器,啟用路由器上快速交換可增加CPU利用率,從而使設(shè)備處于“掛起”狀態(tài),并失去對(duì)等連接。 對(duì)于運(yùn)行多協(xié)議標(biāo)記 (MPLS) 交換的路由器,不要禁用路由器上的快速交換。MPLS是與CEF一起使用的。因此,禁用接口上的快速交換可導(dǎo)致很嚴(yán)重的后果。
下面研究一個(gè)示例方案:
router_122上所配置的訪問列表是:
access-list 105 permit icmp host 10.10.10.2 host 13.1.1.1
access-list 105 permit icmp host 13.1.1.1 host 10.10.10.2
此訪問列表允許所有互聯(lián)網(wǎng)控制消息協(xié)議(ICMP)數(shù)據(jù)包從主機(jī)router_121(IP地址為10.10.10.2)傳輸?shù)街鳈C(jī)router_123(IP地址為13.1.1.1),以及傳輸?shù)狡渌较蛏稀T试S數(shù)據(jù)包傳輸?shù)饺我环较蚴呛苤匾模駝t路由器可能會(huì)丟棄返回的ICMP數(shù)據(jù)包。
下面只刪除router_122一個(gè)接口上的快速交換。因此,從IOS截取數(shù)據(jù)包的角度來看,只能看到傳輸?shù)皆摻涌诘臄?shù)據(jù)包的調(diào)試。通過調(diào)試,這類數(shù)據(jù)包將出現(xiàn)"d="。因?yàn)檫€沒有關(guān)閉其他接口上的快速交換,返回的數(shù)據(jù)包將不使用debug ip packet。下面的輸出顯示了禁用快速交換的過程:
router_122(config)#interface virtual-template 1
router_122(config-if)#no ip route-cache
router_122(config-if)#end
現(xiàn)在必須通過以前定義的訪問列表(訪問列表 105)來激活debug ip packet。
router_122#debug ip packet detail 105
IP packet debugging is on (detailed) for access list 105
router_122#
00:10:01: IP: s=13.1.1.1 (Serial3/0), d=10.10.10.2 (Virtual-Access1),
g=10.10.10.2, len 100, forward
00:10:01: ICMP type=0, code=0
! -- 從13.1.1.1到10.10.10.2的ICMP包
! -- 顯示此包是因?yàn)?BR>
! -- 它滿足訪問列表105中的源和目的地要求。
00:10:01: IP: s=13.1.1.1 (Serial3/0), d=10.10.10.2 (Virtual-Access1),
g=10.10.10.2, len 100, forward
00:10:01: ICMP type=0, code=0
00:10:01: IP: s=13.1.1.1 (Serial3/0), d=10.10.10.2 (Virtual-Access1),
g=10.10.10.2, len 100, forward
00:10:01: ICMP type=0, code=0