4、网络设备基本调试
一、网络连通性测试
1、使用ping测试网络连通性
ping实际上是基于ICMP协议开发的应用程序,它是在计算机的各种操作系统或网络设备上广泛使用的检测网络连通性的常用工具。通过使用ping命令,用户可以检查指定地址的主机或设备是否可达,测试网络连接是否出现故障。
ICMP定义了不同类型的协议报文,ping主要使用了其中Echo Request(回波请求)和Echo Reply(回波响应)两种报文。如图所示,在RTA命令行界面输入ping 192.168.3.1命令,源设备RTA向目的设备RTC发送ICMP Echo Request报文,如果网络工作正常,则目的设备在接收到该报文后,向源设备回应ICMP Echo Reply报文,如果网络工作异常,源设备RTA将显示目的地址不可达或超时等提示信息。通过这个交互过程,源设备RTA即可知道目的设备的IP层相关状态。
在本例中,RTA在超时时间内收到了目的设备RTC对每个ICMP Echo Request报文的响应,因此RTA上输出了响应报文的字节数、报文序号、TTL(Time To Live,生存时间)、响应时间。在图中最后的几行中,输出了ping过程报文的统计信息,主要包括发送报文个数、接收到响应报文个数、未响应报文数百分比、响应时间的最小值、平均值和最大值。
ping命令提供了丰富的可选参数,说明如下。
-a | 指定报文中的源IP地址 |
-c | 指定发送报文的数目,默认是5 |
-s | 指定发送报文的尺寸,默认56字节 |
2、使用tracert检测网络连通性
可以通过tracert探测出沿途路径,进行故障定位和环路检测。默认情况下,华三设备不允许tracert,需要在设备上配置ip unreachables enable和ip ttl-expires enable,实现原理如下。
- RTA向目的端主机B发送一个UDP报文,TTL值为1,目的UDP端口号是大于30000的一个数,因为在大多数情况下,大于30000的UDP端口号是任何一个应用程序都不可能使用的端口号。第一跳(RTB)收到源端发出的UDP报文后,判断出报文的目的IP地址不是本机IP地址,将TTL值减1后,判断出TTL值等于0,则丢弃报文并向源端发送一个ICMP超时(Time Exceeded)报文(该报文中含有第一跳的IP地址10.0.0.2),这样源端就得到了RTB的地址。
- 源端收到RTB的ICMP超时报文后,再次向目的端发送一个UDP报文,TTL值为2。第二跳(RTC)收到源端发出的UDP报文后,回应一个ICMP超时报文,这样源端就得到了RTC的地址(20.0.0.2)。
- 以上过程不断进行,直到目的端收到源端发送的UDP报文后,判断出目的IP地址是本机IP地址,则处理此报文。根据报文中的目的UDP端口号寻找占用此端口号的上层协议,因目的端没有应用程序使用该UDP端口号,则向源端返回一个ICMP端口不可达(Destination Unreachable)报文。源端收到ICMP端口不可达报文后,判断出UDP报文已经到达目的端,则停止tracert程序,从而得到数据报文从源端到目的端所经历的路径。
二、系统调试
对于设备所支持的各种协议和特性,系统基本上都提供了相应的调试功能,帮助用户对错误进行诊断和定位。调试信息的输出可以由两个开关控制,用户只有将两个开关都打开,调试信息才会在终端显示出来。
- 协议调试开关,也称为模块调试开关,控制是否输出某协议模块的调试信息。
- 屏幕输出开关,控制是否在某个用户屏幕上显示调试信息。
全局视图:terminal monitor | 开启控制台对系统信息的监视功能,默认开启 |
全局视图:terminal debugging | 打开调试信息的屏幕输出开关 |
全局视图:debugging ip icmp | 打开对应模块调试开关 |
全局视图:display debugging | 查看哪些协议调试信息开关是打开的 |