网络按照初始目标组建配置完成后,首要的认识是检查网络的连通性。网络的连通性是指一台主机或设备上的一个IP地址到另一台主机或设备上的一个IP地址的可达性。本章将介绍检测网络连通性的常用命令。
创新互联专注于淮北网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供淮北营销型网站建设,淮北网站制作、淮北网页设计、淮北网站官网定制、小程序设计服务,打造淮北网络公司原创品牌,更为您提供淮北网站排名全网营销落地服务。
为了达到网络连通性,单个网络设备及网络设备之间同时还运行各种协议或交互相关控制信息。有时,为了定位这些协议或模块是否正常运行,需要使用调试工具。本章对如何使用调试工具以及如何控制调试信息的输出和显示也进行了介绍。
网络连通性测试
使用ping测试网络的连通性
ping的实现原理
ping实际上是基于ICMP协议开发的应用程序,它是在计算机的各种操作系统或网络设备上广泛使用的检测网络连通性的常用工具。通过使用ping命令,用户可以检查指定地址的主机或设备是否可达,测试网络连接是否出现故障。
ICMP定义了不同类型的协议报文,ping主要使用了其中Echo Request(回波请求)和Echo Reply(回波响应)两种报文。如图所示,在RTA命令行界面输入ping 192.168.3.1命令,源设备RTA向目的设备RTC发送ICMP Echo Request报文;如果网络工作正常,则目的设备在接收到该报文后,向源设备R回应ICMP Echo Reply报文(如本例);如果网络工作异常,源设备RTA将显示目的地址不可达或超时等提示信息。通过这个交互过程,源设备RTA即可知道目的设备的IP层相关状态。
ping命令的输出
上图演示了ping命令的实际输出结果。
在本例中,RTA在超时时间内收到了目的设备RTC对每个ICMP Echo Request报文的响应,因此RTA上输出了响应报文的字节数、报文序号、TTL(Time To Live,生存时间)、响应时间。
在图中最后的几行中,输出了ping过程报文的统计信息,主要包括发送报文个数、接收到响应报文个数、未响应报文数百分比、响应时间的最小值、平均值和最大值。
使用ping命令
ping命令提供了丰富的可选参数,数目如下:
-a source-ip:指定ICMP Echo Request报文中的源IP地址。
-c count:指定发送ICMP Echo Request报文的数目,取值范围为1~4294967295,默认值为5。
-f:将长度大于接口MTU的报文直接丢弃,即不允许对发送的ICMP Echo Request报文进行分片。
-h ttl:指定ICMP Echo Request报文中的TTL值,取值范围为1~255,默认值为255。
-i interface-type interface-number:指定发送报文的接口的类型和编号。
-m interval:指定发送ICMP Echo Request报文的时间间隔,取值范围为1~65535,单位为毫秒,默认值为200毫秒。如果在timeout时间内收到目的主机的响应报文,则下次ICMP Echo Request报文的发送时间间隔为报文的实际响应时间与interval之和;如果在timeout 时间内没有收到目的主机的响应报文,则下次ICMP Echo Request报文的发送时间间隔为timeout与interval之和。
-n:不进行域名解析。默认情况下,系统将对hostname进行域名解析。
-p pad:指定ICMP Echo Request报文的填充字节,格式为16进制。比如将“pad”设置为ff,则报文将被全部填充为ff。默认情况下,填充的字节从0x01开始,逐渐递增,直到0x09,然后又从0x01开始循环填充。
-q:除统计数字外,不显示其它详细信息。默认情况下,系统将显示包括统计信息在内的全部信息。
-r:记录路由。默认情况下,系统不记录路由。
-s packet-size:指定发送的ICMP Echo Request报文的长度(不包括IP和ICMP报文头),取值范围为20~8100,单位为字节,默认值为56字节。
-t timeout:指定ICMP Echo Reply报文的超时时间,取值范围为1~65535,单位为毫秒,默认值为2000毫秒。
-tos tos:指定ICMP Echo Request报文中的ToS(Type of Service,服务类型)域的值,取值范围为0~255,默认值为0。
-v:显示收到的非Echo Reply的ICMP报文。默认情况下,系统不显示非Echo Reply的ICMP报文。
使用tracert检测网络连通性
tracert的实现原理
通过使用tracert命令,用户可以查看报文从源设备传送到目的设备所经过的路由器。当网络出现故障时,用户可以使用该命令分析出现故障的网络节点。
本图演示了在RTA上执行tracert 192.168.3.1命令的工作过程:
源设备RTA对目的设备的某个较大的端口发送一个TTL为1的UDP报文;
由于网络设备处理IP报文中的TTL值时,将其逐跳递减,因此,该报文到达第一跳RTB后,TTL将变为0,RTB于是回应一个TTL超时的ICMP报文,该报文中含有第一跳的IP地址,这样远设备就得到了第一跳路由器的RTB的地址;
源设备重新发送一个TTL为2的报文给目的设备;
TTL为2的ICMP报文首先传递给RTB,TTL递减为1,该ICMP报文到达RTC后,TTL将递减为0,由于RTC是ICMP的目的地,RTC将回应给RTA一个端口不可达的ICMP消息,RTA收到该消息后,将会知道已经跟踪到目的地,因此,将停止向外发送报文。
如果RTC距离RTA有多跳,以上过程将不断进行,直到最终到达目的设备,源设备就得到了从它到目的设备所经过的所有路由器的地址。
tracert命令的输出
本图的上半部分显示了RTA执行tracert命令后的输出,对于每个TTL递增的报文,RTA都要重复发三次,因此输出结果中显示了每一跳接收响应的时延。最后一跳是跟踪的目的地。
本图的下半部分显示了RTA执行tracert命令后的调试信息(后面的小节将详细讲解如何获得调试信息),调试信息显示了中间跳路由器和最后目的跳路由器对RTA的不同响应方法。
使用tracert命令
tracert命令使用的可选参数含义如下:
-a source-ip:指明tracert报文的源IP地址。
-f first-ttl:指定一个初始TTL,即第一个报文所允许的跳数。取值范围为1~255,且小于最大TTL,默认值为1。
-m max-ttl:指定一个最大TTL,即一个报文所允许的最大跳数,取值范围为1~255,且大于初始TTL,默认值为30。
-p port:指明目的设备的UDP端口号,取值范围为1~65535,默认值为33434。用户一般不需要更改此选项。
-q packet-num:指明每次发送的探测报文个数,取值范围为1~65535,默认值为3。
-w timeout:指定等待探测报文响应的报文的超时时间,取值范围是1~65535,单位为毫秒,默认值为5000毫秒。
remote-system:目的设备的IP地址或主机名(主机名是长度为1~20的字符串)。
系统调试
系统调试概述
系统调试介绍
对网络设备所支持的绝大部分协议和功能,系统都提供了相应的调试功能,帮助用户对错误进行诊断和定位
调试信息的输出由两个开关控制
对于设备所支持的各种协议和特性,系统基本上都提供了相应的调试功能,帮助用户对错误进行诊断和定位。
调试信息的输出可以由两个开关控制:
协议调试开关:也称为模块调试开关,控制是否输出某协议模块的调试信息。
屏幕输出开关:控制是否在某个用户屏幕上显示调试信息。
协议调试开关和屏幕输出开关的关系如图所示。用户只有将两个开关都打开,调试信息才会在终端显示出来。
系统调试操作
terminal debugging命令的作用是打开调试信息的屏幕输出开关,以控制是否在某个用户屏幕上显示调试信息。
debugging命令用于打开协议调试开关。因此,该命令后面要指定相关的协议模块名称,如ATM、ARP。当然模块名称可能不只一个参数,比如关系IP层如何处理报文时,可以使用debugging ip packet命令。
terminal monitor命令用于开启控制台对系统信息的监视功能,调试信息属于系统信息的一种,因此,这是一个更高一级的开关命令,只不过该命令在需要观察调试信息时候是可选的,因为默认情况下,控制台的监视功能就处于开启状态。
最后,通过display debugging命令可以查看系统当前哪些协议调试信息开关是打开的。
调试信息输出示例
这里是一个为了观察ping命令执行过程,打开debug ip packet协议调试开关的例子。该例显示了当RTA发出一个ICMP ECHO-REQUEST报文和收到一个ICMP ECHO-REPLY报文时,IP协议层处理的详细过程。
该例中,执行ping命令时使用了-c参数,因此只发出一个ICMP请求回应报文。“Oct 1 17:16:21:648 2008 RTA IPFWD/7/debug_case:”位屏幕打出的系统信息,提示以下将是调试信息的输出,并且说明了调试信息的输出时间,及相关的模块名IPFWD——IP转发模块。
调信息分为三个段落。第一段说明了承载该ICMP报文的IP报头实际内容,包括报文长度、报文ID、偏移量、协议号、源地址和目的地址等。经过查找路由表/转发表,该ICMP报文将从本地的串行接口Serial 6/0转发出去。第二段说明RTA从Serial 6/0收到了一个报文,和第一段类似,RTA打印出了该报文IP头的相关内容。可以看出,这个报文就是对刚刚发出的ICMP回应请求报文的应答。最后一段与第二段描述的是同一个报文,由于RTA就是此报文的目的地,它要被递交该本地IP转发层的上层进行处理,因而,系统可以后续打印出“Reply from 192.168.1.2:”,证明到达192.168.1.2是可达的。
在图中最后的几列中显示了ping过程报文的统计信息,主要包括:发送了一个报文,接收到一个响应报文,由于没有未响应报文,因此丢包率是0%,此处ping响应时间的最小值、平均值和最大值都是26毫秒(因为只进行了一次ICMP请求和应答)。