*免责声明:除非必须,否则不要在设备上运行调试甚至远程有用的东西*
此外,您已经指定了很酷的控制台电缆,因为调试通常会转到控制台会话。但是,如果您通过 SSH 连接,则在您键入之前不会看到调试信息
Router1#terminal monitor
正如 YLearn 所指出的,默认情况下,这只会显示寻址到您正在调试的路由器的数据包。要同时显示传输数据包,您需要在希望数据包通过的接口上运行以下命令。
R1(config-if)#no ip route-cache
这将在软件接口之间交换数据包,而不是使用快速交换/CEF。因此,您应该只在测试环境中执行此操作,因为它会减慢发送和接收数据的过程。
使用图像 c2600-adventerprisek9-mz.124-15.T14.bin 提供了一些可能有帮助的功能,思科12.1 版中的 ping 文档(我首先在 Google 上获得)表明它已经普遍存在了一段时间。
假设您要监视 Router1 以获取来自 Router2 的 ping 并且它们分别位于 10.0.0.1 和 10.0.0.2,您可以运行
Router1#debug ip icmp
在路由器 1 上,每当您从路由器 2 发送 ping 时,您都会看到类似
*Mar 1 00:02:30.530: ICMP: echo reply sent, src 10.0.0.1, dst 10.0.0.2
*Mar 1 00:02:30.622: ICMP: echo reply sent, src 10.0.0.1, dst 10.0.0.2
*Mar 1 00:02:30.674: ICMP: echo reply sent, src 10.0.0.1, dst 10.0.0.2
这只是表明 Router1 回复了(很明显收到了 ping)。
类型
Router1#undebug all
关闭此特定调试。
如果你去
Router1#debug ip packet
并从 Router2 发送一些 ping,您将看到更多详细信息:
*Mar 1 00:15:42.961: IP: tableid=0, s=10.0.0.2 (FastEthernet0/0), d=10.0.0.1 (FastEthernet0/0), routed via RIB
*Mar 1 00:15:42.961: IP: s=10.0.0.2 (FastEthernet0/0), d=10.0.0.1 (FastEthernet0/0), len 100, rcvd 3
它告诉您源地址和接口以及目标地址和接口。
最后,如果你去
Router1#debug ip packet detail
然后每次 ping 都会显示:
*Mar 1 00:19:15.069: IP: tableid=0, s=10.0.0.2 (FastEthernet0/0), d=10.0.0.1 (FastEthernet0/0), routed via RIB
*Mar 1 00:19:15.069: IP: s=10.0.0.2 (FastEthernet0/0), d=10.0.0.1 (FastEthernet0/0), len 100, rcvd 3
*Mar 1 00:19:15.073: ICMP type=8, code=0
*Mar 1 00:19:15.073: IP: tableid=0, s=10.0.0.1 (local), d=10.0.0.2 (FastEthernet0/0), routed via FIB
*Mar 1 00:19:15.073: IP: s=10.0.0.1 (local), d=10.0.0.2 (FastEthernet0/0), len 100, sending
*Mar 1 00:19:15.077: ICMP type=0, code=0
它为您提供了与之前的调试相同的详细信息,但也告诉您数据包的长度为 100 个字节,是 ICMP 和类型 - 8 是实际的 ping,0 是响应。