|
|
故障定位是在一个给定的系统中检测、隔离和修理故障的过程。一个网络是一个动态系统,对于一个动态的系统而言,故障定位的主要挑战在于,如何在许许多多的部件中隔离出故障部件。有经验的故障定位人员和网络技术人员遵循一套精心设计的过程来诊断一个问题的来源。
|
|
|
进行故障定位所遵循的规则实际上是在基于一些常识的基础上进行的,例如:
|
|
|
|
|
|
"确定—隔离—解决"这3个步骤在大部分网络中都能够成功地奠定对问题故障定位的基础,如下图所示。
|
|
|
|
|
|
知道出了问题并能够避免,是进行成功故障定位最重要的步骤。大部分网络问题是通过某些现象表现出来的。所以在遇到问题时,要想高效地解决问题,首先必须能对问题进行定位,这就需要设法收集一些与问题有关的线索。需要强调的一点是,在确定问题的实际性质之前,必须知道系统的正常运行特性(即基线)。
|
|
|
|
如果得到一个差错消息,应将屏幕显示的内容记录下来,并将该差错信息写到一个网络差错日志中。差错消息的内容以及差错显示的位置(是显示在服务器上还是显示在客户机上)信息,对于判断该差错发生的位置是一个重要的线索。
|
|
|
所以,一定要在网络配置日志中对每个硬件和软件的改变做详细的记录。一旦把能够观察到的一切现象都收集到了,就可以依赖经验形成一个假设。
|
|
|
|
列举出所有可能导致被监测到的故障现象,然后利用有效的工具剔除各种可能的误报故障,根据最终结果形成一个关于故障的假设。
|
|
|
在故障定位中,经验和专门知识是非常有用的。为了使假设与这些现象相一致,必须熟悉网络问题的类型,才能从正常出现的网络问题中分辨出这些故障现象,同时也需要深入理解运行在该网络上的相关协议和应用程序。
|
|
|
|
确定问题可能的来源后,应该针对不同原因分别进行测试。当决定这样做时,应当能够确定假设的正确性。
|
|
|
|
可以使用几种方法来验证假设的正确性。专家们经常使用的一种方法是"替换法",即用可以正常工作的类似部件来替代怀疑存在问题的部件。在熟悉每个部件的性能以及它们可能引起的后果时,使用这个方法比较有效。
|
|
|
|
针对每个假设进行的实验,必须确定该假设是否正确。如果问题依然存在,则可判断该假设是不正确的。如果问题已经解决了,则表明已经找到了问题的根源。其中最麻烦的一种情况是,当替换掉部件之后,问题依然存在,但外在表现形式却不同。随着积累的经验越来越多,将逐渐知道对于每个可能的实验的结果,其结论会是什么。对于一个具有可能不熟悉的测试结果的实验,应该扩展或修订关于该问题的方法,从而能够更好地将所观察到的测试结果与收集到的现象联系在一起。
|
|
|
故障的定位过程是一个循环的过程。如果一个测试的结果没有得出结论,必须重新详细地分析该问题所表现出的现象,从而形成新的假设。在大多数情况下,需要在重新检查该现象之前,变换一下该问题的环境。
|
|
|
|
一旦隔离出所有故障的部件后,必须对此故障进行修复。围绕有问题的部件进行修理、更换或处理。对于有故障的硬件,唯一的选择就是修理或更换该部件。对于软件,通常可以通过重新安装或删除来修复该问题。
|
|
|
|
一旦发现了用户错误或物理连接问题(包括网线损坏),一些网络监控工具(包括网络监视器和分析仪)就会帮助分析网络流量、捕捉和分析网络上的数据,进行一个更深入的分析。
|
|
|
网络监视器是一个基于软件的工具,它可以在连到网络上的一台服务器或工作站上持续监测网络流量。网络监视器一般工作在OSI模型的第三层,可以检测出每个包使用的协议,但是不能破译包里的数据。
|
|
|
网络分析仪是一个便携的、基于硬件的工具。网络管理员把它连入网络,专门用来解决网络问题。网络分析仪可以破译直到OSI模型第七层的数据,例如,分析仪可以辨别一个使用TCP/IP的包,甚至可以辨别它是从特定工作站到服务器的ARP应答信号。分析仪可以破译包的负载率,把它从二进制码转换为易读的十进制或十六进制码,因此,网络分析仪可以捕获运行于网络上的密码(只要它们的传输不是加密的)。一些网络测试仪软件包可以在标准PC上运行,但有的需要在带特殊网络接口卡和操作系统软件的PC上运行。
|
|
|
网络监视工具通常比网络分析仪便宜,并且可能包含在网络操作系统软件中,下面介绍其中的两种:Microsoft的Network Monitor(附于Windows NT Server Version 4.0及以后系统)和Novell的LANalyzer agent(附于Novell's manage wise software package)。其他的产品有类似的工作方式,大多数甚至使用非常相似的图形界面。
|
|
|
注意:为了利用基于软件的网络监视器和分析仪,计算机上的网络接口卡必须支持随机模式。随机模式是指设备驱动程序引导网络接口卡接收流过网络的所有帧,不光是指向该节点的帧。
|
|
|
|
Network Monitor(NetMon)是基于软件的且内置于Windows NT Server 4.0或者Microsoft的Systems Management Server(SMS)的网络监视软件。它提供以下功能。
|
|
|
|
|
|
◆检测在网络上NetMon的其他运行副本(依赖于路由器的位置和配置)。
|
|
|
|
NetMon最有用的能力是捕获网络上传输的数据,NetMon观察网络一段时间后,捕获通过特定网络的数据(因为NetMon利用随机模式,它捕获所有的数据,不仅仅是来/去NetMon控制台的数据)。然后,可以在NetMon中找出错误的帧,按照每个节点产生坏数据的多少按从大到小的顺序排序,一般在队列最前边的工作站就是问题所在,在网络传输中,它产生了比其他节点多得多的坏数据包。
|
|
|
|
Novell提供了一个和Microsoft的Network Monitor相似的网络监视工具——LANalyzer代理,它可作为一个独立的程序工作于Windows工作站或作为Manage Wise的一部分在Netware服务器上装配网络管理工具。LANalyzer具有如下功能。
|
|
|
|
|
◆当流量达到预定的阈值时报警(例如利用率超过70%)。
|
|
|
|
像Network Monitor一样,LANalyzer能按节点捕获流量和辨别错误数据,按网段产生流量参数;另外,作为Manage Wise的套件,LANalyzer能在特定的网段上发现所有的节点。它可以利用这些数据构造网络管理系统,这个网络管理系统不仅可以收集信息(例如,发现一个用户在某一特定的工作站上登录的次数,记录工作站通向服务器申请程序的类型),而且可以提供实时的网络参数,当达到网络阈值时发送提示信息或发出警告声音。
|
|
|
|
除了利用随同网络操作系统的软件,还可以从专门从事网络管理的提供商那里购买网络分析软件。一个典型的例子是网络联盟的NetXRay,这个网络分析软件提供数据捕获、分析、发现节点、流量转向、记录、报警和利用率预测。NetXRay与Network Monitor和LANalyzer有相同的特征,同时又增加了一些附属物,它也可以为了重现网络故障而产生流量和同时监测多个网络段,其图形界面使这个产品使用方便,显示网络流量的可读性强。NetXRay支持多协议和网络拓扑结构。
|
|
|
另外,网络联盟还牵头开发了基于硬件的网络分析仪,叫作探测器(Sniffer)。探测器通常是装配了特殊的网络接口卡和网络分析软件的便携式电脑。探测器的基本工作是分析网络问题。探测器提供了它所能捕获到的大量的各种类型和深度的信息。用这种类型工具的危险是它可能收集了超过计算机所能处理的信息,为了避免这个问题,应该为收集到的数据设置过滤器。
|
|
|
如果一个网络是全部交换的(即每个节点连接到自己的交换端口),则网络分析仪只能捕获到广播的包和目的地址为正运行软件的节点的包,因为在交换环境下,只有这些数据包才能传输到目的地址。交换机的使用使网络监视更加困难,解决方案是重新配置交换机以重新选择路由,这样网络分析仪才能接收到所有的流量。显然,应该权衡一下重新配置引起的破坏性和潜在的好处(能够分析网络流量和排除故障)。
|
|
|
|
网络故障排除应按照规定的步骤进行,这样可以节省时间和经费(譬如不必要的软件、硬件替换等)。
|
|
|
|
|
|
(2)验证用户权限。例如,确保用户正确地输入了口令。
|
|
|
(3)限定问题的范围。它是全局性的吗?即网上的所有用户总是会碰到这个问题吗?或者问题只发生在网络上某一地理区域、某一特定的工作组、某一特定的时间段?换句话说,这问题是属于地区性的、工作组性的还是时间相关的?
|
|
|
(4)重现故障,并且要保证能够可靠地重新产生这个错误。
|
|
|
(5)验证网络物理连接(例如网络连线、网络接口卡的插槽、供电电源)的完整性。从受到影响的节点开始,向主干网延伸。
|
|
|
(6)验证网络的软连接问题(例如地址、协议绑定、软件安装等)。
|
|
|
(7)考虑最近的网络变更和可能因此导致的网络问题。
|
|
|
|
|
根据自己的观察,可以从上述步骤中的一步跳到另一步,以减少所执行的检查步骤。
|
|
|
|
由于以太网采用通用总线拓扑结构以及物理层可扩展的潜在问题,所以某个特定物理层的问题会以不同的方式显示出来,而且由于采用的测试手段、位置和环境不同,显示出的现象还常常相互矛盾。
|
|
|
为了避免被假象所误导,可以按照以下两个步骤查找故障。
|
|
|
|
如果故障现象随测试点的不同还保持一样,就可以依照所测试出的故障现象去排除。如果故障现象在一些或所有的测试点都不相同,就要把查找故障的方向定在物理层(除非有特别提示),例如,查找坏的电缆、噪声环境、接地循环等故障。
|
|
|
|
在测试的同时要把测试仪器设置成至少可同时发送较低的流量。由于增加了网络流量,微小的和间歇性的物理层问题就会暴露出来。
|
|
|
|
网络中可能出现的故障多种多样,解决一个复杂的网络故障往往需要广泛的网络知识与丰富的工作经验。这也是为什么一个成熟的网络管理机构制定有一整套完备的故障管理日志记录机制,同时人们也率先把专家系统和人工智能技术引进到网络故障管理中来的原因。另外,由于网络故障的多样性和复杂性,网络故障的分类方法也不尽相同。
|
|
|
|
根据网络故障的性质可以把故障分为物理故障与逻辑故障。
|
|
|
(1)物理故障。物理故障是指设备或线路损坏、插头松动、线路受到严重电磁干扰等的情况。比如,网络中某条线路突然中断,这时网络管理人员从监控界面上会发现该线路流量陡然下降或系统弹出报警界面,此时首先用ping检查线路在网络管理中心的端口是否连通。如果不连通,则检查端口插头是否松动,如果松动则插紧,再用ping检查,如果连通则故障解决。这时需把故障的特征及其解决步骤详细记录下来。也有可能是线路远离网络管理中心的那端插头松动,此时则需要通知对方进行解决。另一种常见的物理故障就是网络插头误接。这种情况经常是在没有搞清网络插头规范或没有弄清网络拓扑规划的情况下导致的。另一种情况,比如两个路由器直接连接,这时应该让一台路由器的出口连接另一台路由器的入口,而这台路由器的入口连接另一台路由器的出口才行,这时制作的网线就应该满足这一特性,否则也会导致网络误接。不过像这种网络连接故障显得很隐蔽,要诊断这种故障没有什么特别好的工具,只能依靠经验。
|
|
|
(2)逻辑故障。逻辑故障中的一种常见情况是配置错误,就是指因为网络设备的配置原因而导致的网络异常或故障。配置错误可能是路由器端口参数设定有误,或路由器的路由配置错误以至于路由循环或找不到远程地址,或者是网络掩码设置错误等。比如,同样是网络中某条线路故障,发现该线没有流量,但又可以ping通线路两端的端口,这时很可能就是路由配置错误导致循环了。诊断该故障可以用traceroute工具,可以发现在traceroute的结果中某一段之后,两个IP地址循环出现。这时,一般就是线路远端把端口路由又指向了线路的近端,导致IP地址在该线路上来回反复传递。这时需要更改远端路由器端口配置,把路由设置为正确配置,就能恢复线路了。当然处理该故障的所有动作都要记录在日志中。
|
|
|
逻辑故障中另一类故障就是一些重要进程或端口关闭,以及系统的负载过高。比如,路由器的SNMP进程意外关闭或死掉,这时网络管理系统将不能从路由器中采集到任何数据,因此网络管理系统失去了对该路由器的控制。还有,就是线路中断,没有流量,这时用ping发现线路近端端口ping不通,检查发现该端口处于down的状态,就是说该端口已经关闭了,因此导致了故障。这时只需重新启动该端口,就可以恢复线路的连通了。
|
|
|
|
根据故障的不同对象可将网络故障划分为线路故障、路由器故障和主机故障。
|
|
|
(1)线路故障。线路故障最常见的情况就是线路不通。诊断这种故障可用ping检查线路远端的路由器端口是否还能响应,或检测该线路上的流量是否还存在。
|
|
|
一旦发现远端路由器端口不通,或该线路没有流量,则表示该线路可能出现了故障。这时有几种处理方法。
|
|
|
首先是ping线路两端的路由器端口,检查两端的端口是否关闭了。如果其中一端端口没有响应,则可能是路由器端口故障。如果是近端端口关闭,则可检查端口插头是否松动,路由器端口是否处于down的状态;如果是远端端口关闭,则要通知线路对方进行检查。进行这些故障处理之后,线路往往就通畅了。
|
|
|
如果线路仍然不通,一种可能就是通知线路的提供商检查线路本身的情况,看是否线路中间被切断等。另一种可能就是路由器配置出错,比如路由循环了。就是远端端口路由又指向了线路的近端,这样线路远端连接的网络用户就不通了,这种故障可以用traceroute来诊断。解决路由循环的方法就是重新配置路由器端口的静态路由或动态路由。
|
|
|
(2)路由器故障。事实上,线路故障中很多情况都涉及路由器,因此也可以把一些线路故障归结为路由器故障。但线路涉及两端的路由器,因此在考虑线路故障时要涉及多个路由器。而有些路由器故障仅仅涉及它本身,这些故障比较典型的就是路由器CPU温度过高、CPU利用率过高和路由器内存余量太小。其中最危险的是路由器CPU温度过高,因为这可能导致路由器被烧毁。而路由器CPU利用率过高和路由器内存余量太小都将直接影响网络服务的质量,比如路由器上的丢包率就会随内存余量的下降而上升。
|
|
|
检测这种类型的故障,需要利用MIB变量浏览器工具,从路由器MIB变量中读出有关的数据。通常情况下,网络管理系统有专门的管理进程不断地检测路由器的关键数据,并及时给出报警。而解决这种故障,只有对路由器进行升级、扩内存等,或者重新规划网络的拓扑结构。另一种路由器故障就是自身的配置错误,比如配置的协议类型不对、配置的端口不对等。这种故障比较少见,没有什么特别的发现方法,排除故障就与网络管理人员的经验有关了。
|
|
|
(3)主机故障。主机故障常见的现象就是主机的配置不当。比如,主机配置的IP地址与其他主机冲突,或IP地址根本就不在子网范围内,这将导致该主机不能连通。还有一些服务的设置故障,比如邮件服务器设置不当导致不能收发E-mail,或者DNS服务器设置不当将导致不能解析域名。主机故障的另一种可能是主机安全故障,比如主机没有控制其上的finger、rpc和rlogin等多余服务。而恶意攻击者可以通过这些多余进程的正常服务或错误(Bug)攻击该主机,甚至得到该主机的超级用户权限等。
|
|
|
另外,还有一些其他的主机故障,比如共享本机硬盘不当等,将导致恶意攻击者非法利用该主机的资源。发现主机故障是一件困难的事情,特别是别人恶意的攻击。一般可以通过监视主机的流量、扫描主机端口和服务来防止可能的漏洞。当发现主机受到攻击之后,应立即分析可能的漏洞,并加以预防,同时及时通知网络管理人员注意。
|
|
|
|
网络出现故障问题长期解决不了,就要建立一个单独文档记录所有的发现问题、解决问题的信息。这个问题档案的序号要记录到工作日志中以便交叉查询,项目结束后它应当记录了很多问题以及解决问题所需要的技术信息。
|
|
|
故障报告是反映网络系统出现故障情况及解决方法的文档,文档可以只是简单的文本形式,一页通常记录一个问题;可以使用数据库,这样便于交叉查找。下表所示为故障报告的一个简单样本,建立它或使用它都非常节省时间。
|
|
|
|
|
项目结束后,这份文档要加入历史文档,供其他项目或其他组织使用。经常做这样的工作,测试的成本就会随项目的不断进行而下降。
|
|
|