本节书摘来自异步社区《CCNP TSHOOT 300-135学习指南》一书中的第1章,第1.2节结构化故障检测与排除方法,作者【加】Amir Ranjbar(阿米尔 兰吉巴),更多章节内容可以访问云栖社区“异步社区”公众号查看

1.2 结构化故障检测与排除方法
CCNP TSHOOT 300-135学习指南
虽然故障检测与排除工作并不是一门精密科学,通常可以采用多种不同的方法来诊断和解决特定故障问题。但是如果按照结构化故障检测与排除方法来解决故障问题,那么每一步都能有所发现,能够比采用随意的故障检测与排除方法更快地解决故障问题。结构化故障检测与排除方法分为很多种,每种结构化故障检测与排除方法都适用于不同的故障场景。不存在普适的方法,因而排障人员必须全面掌握这些结构化故障检测与排除方法,并且能够为特定故障问题选择最佳方法或最佳方法组合。

结构化故障检测与排除方法是整个故障检测与排除进程的指南,所有结构化故障检测与排除方法的关键就是系统化排除潜在故障原因并不断缩小故障原因的范围。通过系统化地排除潜在故障原因,可以有效减小故障范围,直至成功隔离并解决故障。如果在某个阶段需要求助他人或者需要将工作转交给他人,那么将会发现,结构化故障检测与排除方法能够给他人提供有效帮助,而且不会白白浪费前期所作的排障工作。常用的结构化故障检测与排除方法如下。

自顶而下法(The top-down approach):该方法首先从OSI(Open Systems Interconnection,开放系统互连)参考模型中的应用层入手,一直向下检查到物理层。为便于参考,图1-3给出了OSI七层网络模型与TCP/IP四层


自底而上法(The bottom-up approach):该方法与自顶而下法正好相反,首先从OSI参考模型中的物理层入手,一直向上检查到应用层。
分而治之法(The divide-and-conquer approach):该方法首先从OSI参考模型的中间层(通常是网络层)入手,根据发现的情况可以沿着OSI协议栈往下或往上进行依次检查。
跟踪流量路径法(The follow-the-path approach):该方法沿着数据包从源端到目的端所经过的网络路径进行检查。
对比配置法(The spot-the-differences approach):顾名思义,该方法就是将运行正常的网络设备或网络进程与运行异常的网络设备或网络进程进行对比,通过找出两者之间的差异来收集故障线索。如果对某台设备实施了变更操作之后出现了故障,那么对比配置法通过查找该设备故障前后的配置差异,即可快速找出故障原因。
组件替换法(The move-the-problem approach):该方法的策略就是从物理上替换不同的组件,并观察故障是否随着组件的替换而消失了。
下面将依次描述上述结构化故障检测与排除方法。

1.2.1 自顶而下法
自顶而下故障检测与排除法利用OSI参考模型作为理论基础。OSI参考模型的一个最重要的特性就是每一层都依赖于以下各层的运行,这就意味着如果发现某层工作正常,那么就能确信该层的以下各层均运行正常。

假设正在调查某故障问题,此时用户无法浏览特定网站,但是发现主机能够在端口80上与远程服务器建立TCP连接,并且能够从服务器收到响应(如图1-4所示)。此时完全有理由推断客户端与服务器之间的传输层及以下各层完全正常,最可能的故障原因就是客户端或服务器本身(可能位于应用层、表示层或会话层),而不是一个网络问题。请注意,对于本例来说,虽然有理由相信第一层到第四层的工作均正常,但还不能确切证明这一点。例如,一种可能的情况就是虽然能够正确路由未分段数据包,但是却丢弃了分段数据包,此时到端口80的TCP连接就无法揭示该问题。


从本质上来说,自顶而下故障检测与排除法的目的是发现仍能正常工作的最高OSI层,这样就可以将位于该层及以下各层的所有设备及所有进程均排除在故障范围之外。很显然,如果故障出在了某个OSI高层,那么该方法将非常有效。此外,该方法也是一种最直接的故障检测与排除方法。因为用户报告故障时通常描述为应用层故障,因而从应用层入手检测与排除故障也是非常自然的。但是,该方法的缺点是需要访问客户端的应用层软件来开展故障检测与排除进程。如果该软件仅安装在少量机器上,那么将会大大限制排障人员的故障检测与排除工作。

1.2.2 自底而上法
自底而上故障检测与排除法也是以OSI参考模型为理论基础。该方法从物理层(即OSI七层网络模型中的最底层)开始入手,然后逐层向上依次检测网络组件是否正常,直至应用层。该方法需要排除尽可能多的潜在故障,从而不断缩小潜在的故障范围。

假设正在调查某故障问题,此时用户无法浏览特定网站,在故障验证阶段发现该用户的工作站无法通过DHCP进程获取IP地址(如图1-5所示)。此时完全有理由推断OSI参考模型的低层有问题,因而可以采用自底而上的故障检测与排除方法。


自底而上法的一个好处就是所有的初始故障检测与排除操作都在网络中进行,无需访问客户端、服务器或应用程序,直到最后的故障检测与排除阶段才可能需要访问这些对象。根据经验,大多数网络故障都与硬件故障相关,如果确实如此,那么自底而上故障检测与排除法将非常有效。但是该方法的一个缺点是,在大型网络中按照此方法进行排障操作可能会耗费大量时间,因为需要花费很多时间和精力来收集和分析信息,而且每次都要从最低层入手。最好的自底而上法使用方式就是首先采用其他故障检测与排除法减小潜在的故障范围,然后再利用自底而上法对网络拓扑结构中较为明确的故障组件进行排查。

1.2.3 分而治之法
分而治之故障检测与排除法是自顶而下故障检测与排除法和自底而上故障检测与排除法的折中。如果刚开始不清楚自顶而下故障检测与排除法和自底而上故障检测与排除法哪个更优,那么就可以从OSI参考模型的中间层(通常是网络层)入手并执行某些测试操作(如ping操作)。ping是一种非常好的连接性测试工具,如果ping测试成功,那么就可以确信网络层以下各层均正常,此时就可以从该层使用自底而上故障检测与排除法。如果ping测试失败,那么就可以从该层使用自顶而下故障检测与排除法。

假设正在调查某个故障问题,此时用户无法浏览特定网站,在故障验证阶段该用户的工作站能够ping通服务器的IP地址(如图1-6所示)。此时完全有理由推断OSI参考模型的物理层、数据链路层以及网络层运行正常,因而可以利用自底而上法从传输层开始排查OSI的高层故障。


图1-6 成功的ping测试可以将排障重点转移到OSI高层(分而治之法)

无论初始测试结果是否成功,该方法都能比完整执行自顶而下故障检测与排除法或自底而上故障检测与排除法更快地缩小故障范围,因而分而治之法被认为是最有效、也可能是最常用的故障检测与排除方法。

1.2.4 跟踪流量路径法
跟踪流量路径故障检测与排除法是一种最基本的故障检测与排除方法,通常作为其他故障检测与排除法(如自顶而下故障检测与排除法或自底而上故障检测与排除法)的补充手段。跟踪流量路径法首先要找出源端至目的端的实际流量路径,然后将故障范围缩小到流量路径所涉及的链路及网络设备。该方法的原理是排除所有与当前故障检测和排除工作无关的链路及网络设备。

假设正在调查某故障问题,此时用户无法浏览特定网站,在故障验证阶段发现,如果从用户PC向服务器的IP地址发起路由跟踪操作(tracert),那么只能到达第一跳,即图1-7中的三层交换机v(三层或多层交换机v)。根据网络的链路带宽以及所用的路由协议,可以在网络结构图上以数字1~7标示出从用户工作站到服务器的最佳路径(如图1-7所示)。


图1-7 利用跟踪流量路径法将排障重点转移到去往服务器的链路3及以上链路

此时完全有理由将故障检测与排除重点转移到去往服务器的最佳路径上的三层交换机及其以上网段。跟踪流量路径法能够快速找出故障区域,并准确定位故障设备,最终找出出现中断、配置错误或者有故障的特定物理或逻辑组件。

1.2.5 对比配置法
另一种常见的故障检测与排除方法就是对比配置法,也称为寻找差异法。通过对比正常与异常状况下的配置、软件版本、硬件以及其他设备属性,可以快速发现两者之间的重要差异。该方法的出发点就是将工作异常的组件更改为与工作正常的组件一致,但该方法的缺点是虽然解决了故障,但仍然不知其所以然。在某些情况下,排障人员可能不确定是否已经实施了解决方案或建立了临时工作环境。

例1-1给出了两份路由表,其中一份属于分支机构2的边缘路由器(目前出现了故障),另一份属于分支结构1的边缘路由器(目前运行正常)。按照对比配置法(寻找差异法),通过对比这两份路由表可以很自然地发现,出现故障的分支机构缺少了静态路由表项,因而可以在分支机构2的路由表中增加静态路由表项,看看是否可以解决该故障。


虽然对比配置法(寻找差异法)并不是一种完整的故障检测与排除方法,但是对于其他故障检测与排除方法来说却是一种很好的辅助排障技术。该方法的好处之一就是易于缺乏经验的排障人员使用,至少可以让故障更加清晰。如果拥有实时更新且能够访问的基线配置、网络结构图等信息,那么将当前配置与这些基线信息进行对比,就能比其他方法更快地解决故障问题。

1.2.6 组件替换法
组件替换法(也称为移除故障法)是一种非常基础的可用于隔离故障范围的故障检测与排除方法。通过物理替换各个网络组件以确认故障是否是由该网络组件引起,如果是,那么替换了该故障组件之后,故障现象将完全消失。图1-8中的两台PC和三台笔记本电脑连接在一台LAN交换机上,其中笔记本电脑B出现了连接性故障。假设怀疑出现了硬件故障,那么就必须检查交换机、电缆或笔记本电脑是否有问题。一种方法就是首先检查出现故障的笔记本电脑的设置情况以及交换机的设置情况,然后对比所有笔记本电脑以及交换机端口的配置信息。但排障人员可能没有PC、笔记本电脑或交换机的管理员密码,那么此时唯一能收集到的信息就是交换机、PC以及笔记本电脑上的链路LED的状态,很明显所能做的工作非常有限。此时最常见的故障隔离方式(如果故障还没有完全解决)就是更换电缆或交换机端口,替换交换机与笔记本电脑B(出现故障的笔记本电脑)之间的电缆,并用确认工作正常的电缆将笔记本电脑B连接到交换机的其他端口上。通过这些简单的替换工作,就可以有效地隔离故障范围,确定故障是在电缆、交换机还是笔记本电脑上。


通过执行简单的系统测试方法,组件替换法可以在只能收集有限信息的场合下隔离故障范围。即便没有解决故障,也能将故障范围隔离在单个网络组件上,接下来就可以集中精力检测与排除该组件的故障。请注意,在前面的案例中,如果确信故障出在了电缆上,那么完全不需要交换机、PC或笔记本电脑的管理员密码就可以解决故障。但是组件替换法的缺点是只能将故障隔离到少数网络组件上,而无法真正认识故障本质。因为该方法只能收集非常有限的间接信息,而且该方法假定故障仅出在某个网络组件上,如果故障出在了多个网络组件上,那么就很难正确隔离网络故障了。

《CCNP TSHOOT 300-135学习指南》——1.2节结构化故障检测与排除方法相关推荐

  1. 《CCNP TSHOOT 300-135认证考试指南》——2.2节故障检测与排除及网络维护工具箱

    本节书摘来自异步社区<CCNP TSHOOT 300-135认证考试指南>一书中的第2章,第2.2节故障检测与排除及网络维护工具箱,作者 [加]Raymond Lacoste , [美]K ...

  2. 《CCNP TSHOOT 300-135认证考试指南》——5.4节STP故障检测与排除

    本节书摘来自异步社区<CCNP TSHOOT 300-135认证考试指南>一书中的第5章,第5.4节STP故障检测与排除,作者 [加]Raymond Lacoste , [美]Kevin ...

  3. 《CCNP TSHOOT 300-135认证考试指南》——5.10节定义关键术语

    本节书摘来自异步社区<CCNP TSHOOT 300-135认证考试指南>一书中的第5章,第5.10节定义关键术语,作者 [加]Raymond Lacoste , [美]Kevin Wal ...

  4. 《CCNP TSHOOT 300-135认证考试指南》——5.1节“我已经知道了吗?”测试题

    本节书摘来自异步社区<CCNP TSHOOT 300-135认证考试指南>一书中的第5章,第5.1节"我已经知道了吗?"测试题,作者 [加]Raymond Lacost ...

  5. 《CCNP TSHOOT 300-135认证考试指南》——6.4节SVI故障检测与排除

    本节书摘来自异步社区<CCNP TSHOOT 300-135认证考试指南>一书中的第6章,第6.4节SVI故障检测与排除,作者 [加]Raymond Lacoste , [美]Kevin ...

  6. 《CCNP TSHOOT 300-135认证考试指南》——2.9节凭记忆完成表格和列表

    本节书摘来自异步社区<CCNP TSHOOT 300-135认证考试指南>一书中的第2章,第2.9节凭记忆完成表格和列表,作者 [加]Raymond Lacoste , [美]Kevin ...

  7. 0.0 目录-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  8. 1.11 超过人的表现-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.10 理解人的表现 回到目录 1.12 改善你的模型的表现 超过人的表现 (Surpassing Human-level Performance) 很多团队会因为机器在特 ...

  9. 深度学习笔记第三门课 结构化机器学习项目 第一周 机器学习(ML)策略(1)...

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

最新文章

  1. static关键字的作用?
  2. Spring MVC漏洞学习总结
  3. anaconda与pip 清华镜像源
  4. 【移动战略说·第十六期】创业者面临的机遇与挑战(杭州站)
  5. elasticsearch 启动、停止及更改密码
  6. cnn卷积神经网络应用_卷积神经网络(CNN):应用的核心概念
  7. Hadoop 中zoo_0基础如何入门HADOOP
  8. kettle升级jetty10实验(未完成jaas认证)
  9. cmake编译时不能指定头文件路径?
  10. java随机数生成方法
  11. JavaScript实现哈希表数据结构
  12. mac iwall 动态桌面引擎
  13. 双态运维联盟(BOA)正式成立
  14. MySQL 简单查询语句练习题(4+18)
  15. 地图实时定位我的位置
  16. vue 页脚_如何将页脚固定在页面底部_sticky footer, Layout, templates, 会员专栏 教程_w3cplus...
  17. 基于朴素贝叶斯的垃圾邮件分类Python实现
  18. 案例|山东省中医院基于ZABBIX构建网络设备监控预警平台
  19. JavaOOP(面向对象)学习体会
  20. Anaconda安装及使用

热门文章

  1. 巧用ftp命令(一)--利用ftp分发ssh密钥
  2. Cisco 3550配置DHCP实例
  3. 小米5x对标OV,突围荣耀,能否成功?
  4. Dropbox 开源其 Go 语言库 —— godropbox
  5. iOS JSPatch 热修复使用
  6. Android开发面试经——2.常见Android基础笔试题
  7. PL/SQL编程1-基础
  8. 浏览器中打开IOS应用并传参
  9. #翻译#将像素绘制到屏幕上
  10. java: cannot execute binary file问题的解决