博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《CCNP TSHOOT 300-135认证考试指南》——2.2节故障检测与排除及网络维护工具箱
阅读量:6982 次
发布时间:2019-06-27

本文共 10126 字,大约阅读时间需要 33 分钟。

本节书摘来自异步社区《CCNP TSHOOT 300-135认证考试指南》一书中的第2章,第2.2节故障检测与排除及网络维护工具箱,作者 【加】Raymond Lacoste , 【美】Kevin Wallace,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 故障检测与排除及网络维护工具箱

CCNP TSHOOT 300-135认证考试指南
如前所述,故障检测与排除和网络维护是相辅相成的,两者关系非常密切,因此故障检测与排除工具与网络维护工具非常相似(如果不是完全相同的话)。

第1章介绍了结构化故障检测与排除流程的实施步骤,除了修复故障以及可能的回退配置之外,这些步骤中很多都要用到常见工具,以帮助收集、检查和对比信息,下面将解释其中的4个步骤。

报告故障:利用专用报告工具主动监控网络设备,可以在用户受到故障影响并报告故障之前,就能发现即将出现的网络性能问题。

收集信息:利用专用的网络维护及故障检测与排除工具,可以在排查网络故障时大大提高信息收集的效率,从而收集更多有用信息,能够更清楚地发现故障的本质。
检查收集到的信息:排障人员在分析故障检测与排除过程中收集到相关信息时,需要知道网络的正常运行状态,然后才能将收集到的数据与正常运行数据相对比。为此,需要利用专用维护工具持续收集网络的基线运行数据,以备不时之需。
验证推断:专用的网络维护及故障检测与排除工具能够帮助排障人员实施故障解决方案,而且在故障解决方案无效的情况下,还能利用这些专用工具回退所做的修正操作。
经过分析可以发现,通常可以将收集到的信息分为以下3类。

关键

故障检测与排除信息:检测与排除由用户或NMS(Network Management Station,网络管理站)报告的网络故障时收集的信息。

基线信息:网络正常运行时收集的信息,故障排查时可以利用这些基准信息进行对比。
网络事件信息:通过设备响应特定条件(如超过了交换机、路由器或服务器上配置的利用率阈值)时自动生成的告警收集到的信息,这些告警可以是简单的通知消息,也可以是紧急消息,这些信息迟早有用。
由于故障检测与排除及网络维护之间的关系非常紧密,因而必须搞清楚为执行维护流程而需要准备的相关维护工具,这些维护工具应该以特定的维护流程和维护任务为目标,这样就才能聚焦自己的故障检测与排除工作,而不至于在无用信息上荒废大量时间和精力。本节将详细讨论故障检测与排除及网络维护工作中常用的各种工具。

2.2.1 网络维护工具

首先讨论网络维护工具是非常必要的,因为如果没有这些维护工具,没有记录这些工具发现的信息,那么使用其他工具也将毫无用处。第1章讨论了网络文档的重要性,不过,为了真正凸显网络文档的价值并将其视为宝贵资源,必须保证网络文档的易于检索性,最重要的是保证其时效性。对于绝大多数人来说,保持网络文档的时效性是一项极具挑战性的任务,主要原因就在于时间。当然,如果正确利用合理的维护工具来更新文档,那么这项工作的挑战性和时间消耗程度都会大大降低。

市面上提供了大量的网络维护解决方案,这些维护工具的功能特性决定了其产品的价格,不过通常并不需要购买最昂贵的工具,也不需要获得最好的产品,应该根据自己的业务需求,与工具提供商进行充分沟通,货比三家,可以先暂时使用免费的测试版本工具,试用是确定最终选择哪种产品的唯一有效方式。常见的文档管理系统如下所示。

故障工单报告系统:某些软件应用程序能够记录、跟踪和归档故障报告(即故障工单),通常将这些应用程序称为帮助台程序(help desk applications),不过它们的作用已经超出了帮助台环境。

Wiki(维客):Wiki是一种基于Web的协作式文档编制平台,最流行的Wiki应用是Wikipedia(维基百科,www.wikipedia.com),Wikipedia是一种基于Internet的可以由用户自行更新的百科全书。可以将这种Wiki技术应用于本地网络中,用来维护一个集中的文档存储库,不但易于访问,而且易于更新。
网络文档的真正作用体现在故障检测与排除过程中,如果拥有组织良好、可查询的信息库,那么其作用将更加明显。在故障检测与排除过程中,如果拥有存储了曾经解决过的故障以及解决这些故障所遵循的排障指南的可检索数据库,那么就能有效利用这些信息。但是在解决了故障工单之后千万要记得更新这些文档,正因为曾经报告并解决了类似故障,所以更不应该忽略网络文档的编制规程,有时可能需要通过故障工单报告系统中的故障条目数量,来判断是否存在更严重的潜在问题,从而多次重复出现一些小问题。

2.2.2 基本工具

网络维护工具的价格从免费到成千上万美元的都有,而这些工具在用于故障检测与排除工作时的复杂度及有用性也差距甚大,因此,在选择工具时必须在自己的故障检测与排除需求与预算限制之间做出平衡。

这里先不考虑预算问题。几乎所有的Cisco故障检测与排除及网络维护工具包都会包含一套可以在路由器或交换机提示符下运行的CLI(Command Line Interface,命令行界面)命令。此外,很多网络设备还提供了GUI(Graphical User Interface,图形用户界面)来帮助网络管理员进行日常的网络配置和监控工作。利用外部服务器(如备份服务器、日志服务器和时间服务器)还可以为故障检测与排除及网络维护工作收集、存储或提供有价值的网络日常运行状态信息。

1.CLI

Cisco IOS提供了大量丰富的CLI命令,这对故障检测与排除工作来说是非常有用的。例如,show命令(显示静态的信息快照)可以显示路由器的配置信息以及通过路由进程学到的所有路由信息,debug命令可以提供路由器或交换机进程的实时信息。本书的重点之一就是讨论利用这些show命令和debug命令解决故障工单的方法,从例2-1可以看出,路由器R2正在接收OSPF(Open Shortest Path First,开放最短路径优先)邻居发送来的OSPF链路状态更新信息(出现更新时)。

3c8d242adab4406ed3061219e8f92f8ffebc4238

这只是本书介绍的众多show和debug命令之一。Cisco IOS提供了一个新的功能特性,允许路由器监控事件并根据预设操作自动响应某些特定事件(如达到预设阈值),该功能特性被称为Cisco IOS EEM(Embedded Event Manager,内嵌式事件管理器),有关EEM的详细信息将在后面进行介绍。

2.GUI工具

虽然Cisco提供了大量GUI工具,但是对于CCNP路由和交换认证体系的路由器与交换机配置及故障排查来说,需要将全部精力都投入到CLI中,因而不能指望依赖GUI就能通过CCNP的路由与交换认证。但是作为示例,大家可以使用CCP(Cisco Configuration Professional,Cisco配置专家)GUI工具来配置和排查ISR(Integrated Services Router,集成业务路由器)故障。图2-1给出了CCP主页界面。

5ab52676c8ba1a7e7feb65888ab049fdd0778102

可以看出,路由器R1的启动配置(startup configuration)文件被备份到了IP地址为192.168.1.74的FTP服务器上了。请注意,需要在copy命令中指定FTP服务器的登录凭证(即用户名cisco,密码cisco)。对于生产网络来说,需要使用更加健壮的用户名和密码,以免被轻易猜测破解。

如果需要经常性地将文件备份到FTP服务器上,那么就可以将这些登录凭证加入到路由器的配置文件中,从而无需每次都指定这些登录凭证(出于安全性考虑)。例2-3给出了将用户名和密码凭证添加到路由器配置中的方式,而例2-4则显示了无需在copy命令中显式指定这些登录凭证即可将路由器配置信息备份到FTP服务器上的方式。

例2-3 将FTP服务器的登录凭证添加到路由器配置中

228af33c790bf6fb92c80b2f3ece6291084be511

利用show archive命令可以查看存储在配置归档中的文件(如例2-7所示)。

关键

291bc361a01db8398f6d38c7c035d4968b107f8d

命令show archive的输出结果显示归档配置数最多为10,但这并不完全正确。由于归档文件的路径指向的是FTP服务器,从而归档配置数量仅受限于服务器的存储空间,因此,路由器将仍然以计划间隔创建运行配置的归档文件。如果路由器上的归档列表已满(达到最大值10),那么show archive命令将清除文件Archive 1,将所有文件都前移一个位置,并将新文件添加到Archive 10(如例2-9所示)。不过需要注意的是,该操作并不会删除FTP服务器上的任何文件,而只是去掉show archive命令中的文件,从而为归档列表腾出空间。

601599b226b57d1ce9f4da114033e118c8577935

将启动配置复制(合并)到运行配置之后,shutdown命令就会在运行配置中生效,这是因为启动配置中没有no shutdown命令来覆盖该命令(如例2-11所示)。为了解决这个问题,将启动配置复制到运行配置之后,必须在所有希望启用的接口上都应用no shutdown命令。

c2a732194e942605cfe77ad24111db5bd7e6ed27

4.日志工具

在进行故障检测与排除操作时,设备日志常常能够提供非常有价值的信息。路由器上发生的许多事件都能自动报告给路由器的控制台。例如,路由器的某个接口出现关闭或启用操作时,会向路由器的控制台写入一条消息,不过对于生产网络来说,通常没有人会始终盯着控制台的输出界面,甚至根本就不会连接控制台端口。大多数情况是在需要时才通过Telnet或SSH(Secure Shell,安全外壳)连接设备,但是通过Telnet或SSH连接设备时默认并不显示这些日志消息。如果希望以Telnet或SSH方式连接路由器时能够看见这些控制台消息,那么就需要在特权EXEC模式下使用terminal monitor命令。

仅仅依靠控制台消息的缺点在于这些消息可能会滚动到屏幕之外,或者网络管理员可能会关闭终端仿真程序,之后将无法再看见这些控制台消息。因此,除了控制台消息方式之外,还可以将这些消息以日志方式记录到路由器的缓存中(即路由器的RAM)。为了让路由器在缓存中写入这些消息,可以使用命令logging buffered。在该命令中,可以指定路由器使用多少RAM来专门记录日志。当指定的缓存容量满了之后,将删除早期消息,以腾出空间记录新的消息。利用show logging history命令即可查看该日志缓存中的信息。如果希望清除缓存中的日志消息,可以在特权EXEC模式下使用clear logging命令。

日志的严重性等级(Severity level)范围为0~7级,每种严重性等级的名称及含义详见表2-2,请注意,严重性等级值越小表示越严重。在默认情况下,控制台、vty线路以及缓存将记录严重性等级在7及以下的所有消息,但是对于调试日志来说,仅在使用debug命令启用调试之后才进行记录。

关键

ef863be6bb42d319fc9484912f2d03e8402ee785

有时可能希望将某个严重性等级的消息记录到路由器的控制台,而将其他严重性等级的消息记录到路由器的缓存中,此时可以使用logging consoleseverity_level和logging buffered severity_level命令。例如,如果希望将6级及以下的消息记录到控制台,而将7级及以下消息记录到缓存中,那么就在全局配置模式下使用命令logging console 6和logging buffered 7。除了可以在命令中指定严重性等级编号之外,还可以在命令中指定严重性等级名称。

另一个日志选项就是将日志消息记录到外部Syslog服务器上。将日志消息发送到外部服务器上,可以保存时间更长的日志消息。根据Syslog服务器的软件情况,有时可以按照预定计划实现自动日志归档、配置高级脚本操作、创建高级告警并生成各种统计图。利用logging ip_address命令可以直接将路由器的日志输出到指定IP地址的Syslog服务器,利用logging trapseverity_level命令可以将指定严重性等级的消息记录到Syslog服务器。

例2-13给出了上面所说的多种日志记录配置情况。

关键

1a7620d7f479611027c786bbfa55ef5e258ee37f

例2-13中严重性等级为告警(即4)或更低(即0~4)的事件都被记录到路由器的缓存中,利用show logging history命令即可查看缓存中的信息。该路由器最大可使用4096字节的RAM来缓存日志信息,同时控制台也被配置为记录相同严重性等级的事件。此外,本例还配置路由器将严重性等级为6及以下的日志消息输出到IP地址为192.168.1.50的Syslog服务器上。图2-2显示了Kiwi Syslog服务器()收集到的日志消息。

5.网络时间协议工具

假设收到了一个故障工单,用户抱怨每天下午5:30(本地时间)的时候网速很慢。该故障工单表明故障现象是每天发生的,因而浏览日志以查看这个时间段网络是否出现异常情况,但是仅当日志有时间戳的时候,这种日志查找操作才有意义,如果没有时间戳,那么就无法将日志消息与用户报告的故障问题关联起来。因此如果时间戳不精确,那么将毫无用处。例如,某条日志报告下午2:25的时候网络利用率非常高,那么真的是下午2:25还是下午5:30呢?时间戳的精确度对于故障检测与排除工作来说至关重要,必须确保每台设备的时钟设置完全正确。

e542d1a8afbf81cf884ce95343149d9f5a03753e

虽然可以在每台设备上分别设置时钟,但这些时钟经过一段时间后会产生漂移,相互之间不再一致,从而导致日志项出现差异。就像一个人在仅有一块手表时候能够始终知道当前时间,但在拥有两块手表时反而无法确定当前时间了。这就说明所有网络设备都应该有一个公共的时间参考点,该参考点可以由NTP(Network Time Protocol,网络时间协议)来实现。NTP可以让网络设备均指向充当NTP服务器(时间源)的设备,不过,NTP服务器必须是一个可靠的时间源,如位于华盛顿特区的美国海军天文台是一级(stratum 1)时钟源,一级时钟源是最可靠最精确的时钟源。此外,由于不同时区的设备都可能以该NTP服务器为参考基准,因而每台设备都要设置自己的时区,表明自己的时区与GMT(Greenwich Mean Time,格林威治标准时间)之间的时间差。

关键

例2-14显示了位于东部时区的路由器的NTP配置情况。在DST(Daylight Savings Time,日光节约时间,也称为夏令时)未生效时,该时区与GMT相差5小时。clock summer-time命令可以指定DST的起止时间,本例中的DST起始于3月份第2个星期日的凌晨2点,结束于9月份第1个星期日的凌晨2点。命令ntp server用于指向NTP服务器。需要注意的是,出于冗余性考虑,在实际配置中可以出现多条ntp server命令,此时NTP将根据其协议原理确定最可靠的NTP服务器,也可以在ntp server命令中添加prefer选项来手工指定最可靠的NTP服务器。

0f0753363665aa68fcbd725fa0366f0b6df5fb3e

NTP根据时钟等级1~15来使用层次化的时钟服务器,一级是最可靠的时钟源。由于NTP基于层次化架构,因而可能并不希望所有的网络设备都指向连接在Internet上的一级时钟源,此时可以在组织机构网络中设置一台或两台接收一级时钟源的设备(将这些设备配置为二级时钟源),然后再配置网络中的其他设备(配置为三级时钟)接收这些本地设备的时钟。

2.2.3 高级工具

密切关注网络流量模式和性能指标,有助于提前预判网络中可能出现的问题,并在问题演变为重大故障之前采取必要措施主动解决这些问题。这一点与被动式响应不同,被动式响应需要不断地对已发生的问题作出应对,因此通常所说的“不坏不修”方式并不适用于主动式网络维护环境,必须应该采取“防患于未然”的态度。如果要做到主动维护,那么就不仅仅使用基本的show和debug命令,还需要使用各种高级工具(如SNMP、NetFlow和EEM)来主动监控设备及网络流量的健康状况。

1.SNMP和NetFlow概述

SNMP(Simple Network Management Protocol,简单网络管理协议)允许被监控设备(如路由器或交换机)运行SNMP代理,来收集处理器和内存的利用率等统计信息,然后SNMP服务器就可以查询这些SNMP代理来检索相应的统计数据,从而判断设备的整体健康状况。

Cisco IOS NetFlow能够深刻揭示网络的流量模式,有些公司提供的商用Netflow采集器(软件应用程序),可以获取Cisco路由器报告的Netflow信息,并将这些原始信息转化为有用的反映流量模式的图形、曲线和表格。监控网络性能的原因如下。

确保遵从SLA:无论是服务提供商还是服务提供商的客户,都可能希望证实服务提供商网络提供给客户的性能等级满足事先约定好的SLA(Service Level Agreement,服务等级协定)或者客户从服务提供商网络接收到的性能等级满足事先约定好的SLA。

趋势监控:监控网络中的资源利用情况(如带宽利用率和路由器CPU利用率),有助于认识网络的发展趋势,并预测何时需要进行网络升级或者判断用户是否正在滥用网络资源。
检测与排除网络性能问题:在缺少基线数据的情况下很难检测与排除网络性能故障,通过日常性地网络性能监控,可以获得参考点(即性能基线),这样在用户报告性能故障后,可以将采集到的性能指标与基线数据进行对比,从而找出故障根源。
2.利用SNMP和NetFlow创建基线
关键

大多数Cisco IOS平台都提供了SNMP和NetFlow这两种自动收集统计信息的网络技术,利用这些统计信息可以创建网络基线,用于网络故障的检测与排除或者开展主动式网络管理和维护。表2-3对这两种技术做了详细比较。

775cac46ec87c05c1f1f6f4a0c915e0fe5f18948

例2-15给出了路由器R1的SNMPv2c配置示例,命令snmp-server communitystring [ro| rw] [ access_list_number ]指定了一个只读(即ro)团体字符串CISCO和一个读/写(即rw)团体字符串PRESS,并且只有访问列表10和访问列表11所允许的NMS才能利用SNMP分别读或读/写该设备。此外,还指定了该路由器的联系信息和位置信息。最后还配置了snmp-server ifindex persist命令,其作用是确保SNMP接口索引在数据采集阶段保持恒定(即使设备重启),因为收集基线数据时保持接口索引的恒定是非常重要的。

a11606f5e21017dcdc6ff52d560b5093c3738c8c

例2-16给出了路由器R4的NetFlow配置示例。请注意,接口Fast Ethernet 0/0和Fast Ethernet 0/1上都运行了ip flow ingress命令,这样就能监控所有流经该路由器的流(无论哪个方向),同时路由器R4仍被配置为将其NetFlow信息报告给位于IP地址192.168.1.50的NetFlow采集器(虽然并不必须这么做)。命令ip flow-export source lo 0表明路由器R4与NetFlow采集器之间的全部通信都将经由Loopback 0接口,本例使用的NetFlow版本是5,不过在实际使用时一定要检查NetFlow采集器的软件文档,以确定应配置的版本号。最后,ip flow-export destination 192.168.1.50 5000命令的作用是指定NetFlow采集器的IP地址为192.168.1.50,并且需要通过UDP端口5000与NetFlow采集器进行通信。由于NetFlow没有标准端口号,因而在选择端口时一定要查看NetFlow采集器的文档。

c51456dc13dd451fac29e46d0a74217a542a84e9

5.提供网络事件的通告信息

响应用户提出的故障报告是一种响应式故障检测与排除操作,而监控网络设备的重要事件并对这些事件做出响应则是一种主动式故障检测与排除操作。例如,在用户无法连接Internet之前,双归属到Internet的路由器可能会报告其至Internet的某条连接出现了故障。作为该事件的响应操作,路由器会使用冗余链路,因而可以在不影响用户使用的情况下解决网络故障。

Syslog和SNMP都能报告网络设备上发生的特定事件,NetFlow能够报告与网络流量流相关的事件,虽然这些网络协议在记录网络事件后本身都缺乏相应的机制(如电子邮件)来通告网络管理员,但可以采用第三方软件来完成该功能,在记录网络事件时有选择地通告给相应的管理人员。

前面说过,通过NMS可以从运行了SNMP代理的网络设备上查询信息,不过,运行了SNMP代理的网络设备也可以发起与NMS的通信。例如,接口出现故障后,运行在被管网络设备上的SNMP代理会向NMS发送一条包含了接口状态变化情况的信息,然后NMS就可以通过电子邮件通知网络管理员。这种由SNMP代理向NMS发送的通告消息称为trap(自陷)消息,由于trap消息的格式很难阅读,因而需要NMS来解析这些消息。

关键

例2-18解释了路由器向NMS发送SNMP trap消息的启用方式,命令snmp-server host 192.168.1.50 version 2c CISCOPRESS的作用是让路由器R4指向位于IP地址192.168.1.50的SNMP服务器(即NMS)。由于配置该SNMP服务器的SNMP版本为SNMPv2c且团体字符串为CISCOPRESS,因而在路由器配置中包含了上述信息以便与NMS进行通信。

bb8fecb1657fa50d080ec687ec6886086388a913

命令snmp-server enable traps的作用是在路由器上启用所有trap消息,如果仅启用特定trap消息,那么就可以在snmp-server enable traps命令的后面添加相应trap的关键字(如snmp-server enable traps bgp),利用show run | include traps命令即可查看已启用的trap消息。

通过Syslog和SNMP接收到的消息都是Cisco IOS预定义的消息。虽然Cisco IOS提供了大量预定义消息,并且能够满足大多数网络管理要求,但Cisco IOS还提供了EEM(Embedded Event Manager,内嵌式事件管理器)特性,该特性允许用户创建自定义事件并指定针对这些事件的定制化响应,可以根据Syslog消息、SNMP trap消息甚至是特定应用的Cisco IOS命令来定义事件。在响应已定义事件时,EEM可以执行各种操作,包括向NMS发送SNMP trap、向Syslog服务器写入日志、执行特定的Cisco IOS命令、抓取特定show命令的输出结果、向相应的当事人发送电子邮件或执行Tcl(Tool command language,工具命令语言)脚本,因此可以看出EEM是一种非常强大的功能特性。

关键

下面以例2-19来说明配置EEM applet(小程序)的基本步骤,其目标是在有人使用命令clear counters清除路由器的接口计数器时创建一条Syslog消息,并将该消息显示在路由器的控制台上。显示该消息的目的是提醒网络管理员及时更新网络文档,并列出清除路由器接口计数器的原因。

205197f09c6085d82889b9f3906638fde1353846

event manager applet COUNTER-RESET命令创建了一个名为COUNTER-RESET的EEM applet并进入applet配置模式。event命令的作用是指在自定义事件中所要寻找的内容,本例所要寻找的就是CLI命令clear counters。请注意,即使使用了缩略形式(如cle co),仍然能够检测到命令clear counters。参数syn no表明EEM策略与CLI命令将按照异步方式运行,即执行CLI命令之前不执行EEM策略。参数skip no表示不忽略CLI命令(即执行CLI命令)。最后,参数occurs 1表明只要运行了命令clear counters就会触发EEM事件。

然后输入的是action命令,指定预定义事件发生后应采取的响应操作。对于例2-19来说,采取的响应操作就是赋予一个具有本地意义的名字A,并将Syslog的优先级分配为informational(报告)。执行该指定操作后将生成一条报告消息“Please update network documentation to record why the counters were reset(请更新网络文档以记录计数器被重置的原因)。”

为了验证例2-19中EEM配置的操作情况,例2-20给出了clear counters命令的执行情况。请注意,运行clear counters命令后将触发自定义事件,生成一条提醒网络管理员记录清除接口计数器原因的Syslog消息。

1330c0f56da6e807c9655c908675ee456d343cc2

2.2.4 Cisco支持工具

Cisco在官方网站上提供了一些额外的故障检测与排除工具及网络维护工具:

请注意,该网站上提供的某些工具需要输入相应访问权限的登录凭证。

转载地址:http://oanpl.baihongyu.com/

你可能感兴趣的文章
onSaveInstanceState和onRestoreInstanceState触发的时机
查看>>
设计模式学习02—工厂模式
查看>>
html5--6-10 CSS选择器7--伪类选择器
查看>>
激光数据匹配(MATLAB Robotics System Toolbox)
查看>>
file_put_contents执行返回false,file_put_contents false(linux服务器httpd)
查看>>
Dependency Walker (depends.exe) Home Page
查看>>
Android---- 如何把calendar.getTimeInMillis()获得的毫秒时间
查看>>
Java学习JVM搞搞Jconsole呗
查看>>
JavaScript学习总结一(String对象的用法)
查看>>
lintcode:背包问题II
查看>>
处理手势冲突和错乱的一点经验
查看>>
Struts2防止表单重复提交
查看>>
[转]Python格式化输出
查看>>
在Activity中响应ListView内部按钮的点击事件
查看>>
CSS - 修改input - placeholder 和 readonly 的样式
查看>>
常用UI布局
查看>>
在多线程情况下 局部变量与全局变量 哪个比较安全呢
查看>>
算法评测
查看>>
40款非常酷的国外创意名片设计欣赏
查看>>
RadioGroup单选按钮用法
查看>>