e博士看台(48):分层排查网络故障
网络通信
网络管理员要进行故障的分析和排除是非常不易的。如何高效、快速地处理这些故障呢?我们需要一些科学的排查方法,使用这些方法,不仅可使网管的日常维护工作轻松很多,还可以使很多网络新手能够自行解决网络故障。而利用逻辑网络的层次结构进行故障排查,就是一种行之有效的方法。本期,e博士将会把这一从不“外授”的方法无私提供给大家。
何为分层
本文所说的“逻辑”层次结构并不是指局域网实际存在的物理分层,而是在逻辑上抽象出来的层次结构,也就是大家通常所说的OSI/RM(开放系统互连参考模型)分层结构。OSI/RM将网络从下向上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。我们可以按照这种层次关系,逐层进行故障排查,快速找出导致故障发生的原因。
小知识:OSI/RM是国际化标准组织在网络通信方面所定义的一个开放协议标准,整个OSI/RM模型共分7层。有了这个统一的标准,各设备厂商的设备就可以相互兼容。有了OSI/RM这种分层结构,用户就可根据不同层次的特性和功能,把网络问题集中到某个具体的层面上进行解决,非常有利于网络故障的排查。
与OSI/RM相对应,互联网中普遍采用的TCP/IP协议簇,也划分为若干层,并与OSI/RM的层次结构相对应,这也就有利于网管对TCP/IP网络进行故障排查。TCP/IP协议簇分为应用层、传输层、互联层、网络接口层。它和OSI/RM的对应关系如表所示。
小知识:TCP/IP协议簇是互联网通信的基础,它是由一系列协议组成的(包含IP协议、TCP协议、UDP协议、ICMP协议等),是用来实现互联网中各种计算机网络之间通信的协议。TCP/IP协议簇中的协议根据不同的特性和功能,被划分到不同的层次上,这种协议的层次划分标准,也有利于网络故障的排查。
我们平时浏览网页、收发邮件、文件传输所使用的协议几乎都位于应用层,包括简单电子邮件传输协议(SMTP)、文件传输协议(FTP)、网页浏览(HTTP)等协议。
排查的方式
既然我们可以按照OSI/RM的层次关系进行故障排查,但我们该从哪一层开始下手呢?面对不同的网络故障、不同的网络拓扑结构,我们可以从不同的层着手,进行逐层排查。一般情况下,有三种排查方式使用得较为广泛。
方式一:从物理层入手,由低向高逐层向上排查。
这种方式适用于不够成熟稳定的物理网络或正处于调试阶段的物理网络,如新组建的局域网、重新调整了通信线缆或新增了网络设备的网络等。
方式二:从应用层入手,由高向低逐层向下排查。
这种方式适用于相对成熟稳定的物理网络。一般情况下,这种网络中的所有网络设备基本没有变动,网络运行情况也较为正常。
方式三:从网络层入手,根据具体情况,分别由低层或高层向网络层进行排查。
这种方式适用于物理网络相对成熟稳定或正处于调试阶段两种环境。特别是在解决某些疑难问题的时候,网管无法初步判断故障的原因,不知该从哪个层上入手,使用此方式,效果比较好。
实战演练
下面,e博士以解决Web服务器故障为例,介绍如何在实际工作中排查网络故障。
也许你会采用第二种方式进行排查。首先检查客户端的Web浏览器配置是否正确,以及服务器中的Web服务是否正常运行。如果没有找到问题,再测试通信线缆的连通性。当然,也可使用第一种方式,从底层逐层向上排查。虽然使用上述两种排查方式最终都可解决问题,但它们都会耗费很长的时间。
由于网络环境的复杂性,在实际的排查过程中,很多网管会采用第三种方式,从位于中间的网络层开始排查。首先测试网络线路的连通性,如果网络没有连通,就从物理层开始排查;如果网络已经连通,就从应用层开始排查。
排查方法
1.Ping命令
用Ping命令测试网络的连通性是第三种排查方式的关键。因为TCP/IP协议簇在网络中被普遍采用,所以在排查网络故障时,可以根据OSI/RM和TCP/IP的对应关系,首先使用Ping命令。如果能够在本地机器上Ping通Web服务器,就说明网络连接没有出现故障。
2.Ping命令的两种应用
●使用Ping命令测试连通性时,需要有一个逐步检测、判断的过程。以图中所示的网络为例,首先要测试客户端和Web服务器间的网络能否正常通信。
一般从Ping“Web服务器”开始。如果成功,表示系统和网络正常;如果失败,则可能是Web服务器离线或网络故障,失败后就Ping图中所示的所有路由器,以确定客户端是否连接到路由器。如果失败,再Ping“127.0.0.1”,以此来确定本机的“TCP/IP”协议是否有问题,如果有问题,就要重新安装TCP/IP协议。Ping命令操作的失败,说明物理层或数据链路层出现了问题,可以对这两层进行检查。
●Ping命令也可以从“127.0.0.1”开始,如果失败,说明TCP/IP协议有问题,如果成功就Ping同一子网的路由器,Ping通之后,Ping其他网段中的路由器,逐步排查网络中的各个环节,直到最后Ping远端的Web服务器。如果能够Ping通,就可以判断网络问题发生在比“网络层”更高的层中。接下来,就可以对应用层进行检查。
3.各层的排查方法
每层都有相应的排查工具和措施,对于物理层,往往采用专门的测试仪进行测试。如果没有测试仪,可以通过网卡、交换机等设备的信号灯进行目测。
数据链路层出现的问题不多,想排查该层,可使用“arp”命令来检查MAC地址和IP地址之间的映射关系,看看IP地址与MAC地址是否能够正常的相互转换。
网络层通常是最容易出现问题的。如果想知道路由配置是否存在问题,可以使用“route”命令来查看路由路径,也可以使用“Ping”命令测试连通性。
在进行应用层的排查工作时,必须对应用服务本身进行测试,如测试Web服务是否能正常工作。
以上只是简单的介绍排查的方法和过程,具体操作中,还需要大家领会每种方式的适用环境,根据实际情况进行具体排查。同时大家还要能够正确判断当前故障存在于哪一个层中,并采取相应的办法进行解决。

