作为一名合格的网络管理员,必须随时做好解决整个企业基础设施中的故障问题的准备。几分钟时间内,可能会排除PC无法向无线网络进行身份验证的原因,网络故障排除对于网络技术专家和网络工程师是颇具挑战的工作。
每当添加新的设备或网络发生变更时,新的问题就会出现,而且很难确定问题出在哪里。每一位网络工程师或专家都有自己的经验和必备工具,能让他们快速定位网络故障。以下的这些工具,是否是你的工具箱中的选项。小到基本故障排除工具(如ping和traceroute),先进一点的比如协议分析器、SNMP监控工具等等。在网络领域入门时,重要的是要积累一些可用于解决各种不同网络状况的工具。
虽然特定工具的使用确实是主观的并且由工程师自行决定,但本文中的工具选择是基于它们的一般性和通用性。
01链路通断分析
Ping
它是快速排除网络问题的最基础工具。可以轻松检查服务器是否已关闭,并且它在大多数操作系统中都可用。ping用于确定本地主机是否能与另一台主机成功交换(发送与接收)数据包,再根据返回的信息,就可以推断TCP/IP参数是否设置正确,以及运行是否正常、网络是否通畅等。
02网络抓包工具
从网络抓包就可以分析出很多东西,其中一项就是用来做排错。首先最常见的是通过抓包数量来判定网络行为的是否正常,比如ARP病毒爆发一定会收到大量ARP数据包;攻击行为也很多时候体现为大量数据包(但是一般判断这种攻击行为抓包不会放在第一步,只是在确定攻击特征时需要抓包);当然还有其他很多情况,适用于通过抓包数量来分析的。
介绍一款工具My Traceroute (MTR)。MTR是诊断网络问题或仅探索网络性能的最佳工具之一。MTR将Ping和Traceroute的优点结合到一个工具中。是同时观察数据包丢失和等待时间的好方法。
03基于SNMP协议的工具
在很多网络环境中,SNMP工具,如早起的SolarWinds网络性能监视器、HPE的网络节点管理器CA Spectrum或i(NNMi),现在各大厂家均提供各自的网管软件和组件,都可以监控网络设备和特定接口的运行状况。这些工具还可以设置警报,以便在特定接口或设备关闭时通知网络工程师,这有助于管理员迅速清除网络中断的根本原因。
介绍一款工具Ipconfig/ifconfig。无论是静态配置的或者自动获取到的,都可以通过命令来查看IP地址信息情况。排除网络问题时必须完成的最重要的事情之一是找出受影响的主机的IP配置。在windows计算机上使用ipconfig实用程序,在linux / * nix/OSX的计算机上的ifconfig实用程序。下面的图显示了ifconfig实用程序的示例,其中显示了查询主机的IP配置信息。
04协议类分析工具
协议判断,比如win2008和win2003通信时因为window scale不兼容,导致窗口过小,而程序设计适当时,通信变动极其缓慢。这些判断都是建立在抓包协议分析的基础上的;另外不同厂商SIP通信对接也有可能会用到协议分析。
协议分析器对于需要调查数据流到数据包级别大有用处,通过这个工具可以查看客户端和服务器之间的特定交互,是拦截和记录数据包的软件,例如,如果特定PC与驻留在服务器上的应用程序的连接缓慢,可以使用协议分析器来识别任何通信、延迟问题或可能是根本原因的其他问题。
05流量分析工具
.NETFlow
流量对于网络来说很重要,这个功能通常需要设备供应商的设备或板卡支持该协议,它是一种数据交换方式,其工作原理是:NetFlow利用标准的交换模式处理数据流的第一个IP包数据,生成NetFlow 缓存,随后同样的数据基于缓存信息在同一个数据流中进行传输,不再匹配相关的访问控制等策略,NetFlow缓存同时包含了随后数据流的统计信息。
例如Plixer的Scrutinizer或SevOne的NetFlow工具来钻取数据,以获得多种用途。从网络故障排除的角度来看,NetFlow分析可以快速跟踪诸如顶级主、机顶级应用程序以及网络流动行为的变化等现象,以发现诸如带宽pig之类的问题。
TracerouteT和TRACER
对于任何网络团队而言,Traceroute和TRACERT都是重要的工具。这两个工具可以深入了解数据采用的路径以及中间主机的响应时间,辅助判断业务系统的存活性,即使是最少量的信息也可以帮助阐明当前的问题。因此,在进行故障排除时,Traceroute和TRACERT无疑最为实用和高效的工具。
Batfish
建议作为网工的你将网络配置分析添加到故障排除工具包中。即使Ping可以告诉你某些设备或连接存在问题,前面的Traceroute/MTR可以告诉你它在哪里出了问题,但是像Batfish这样的开源工具可以告诉你网络为什么出现了故障。更好的是,可以使用Batfish或类似的验证工具来确保网络故障不会发生。
06日志管理系统
解密网络设备日志的做法是非常有用的故障排除技术。日志收集有两种方式——“推”和“拉”。“推”是设备或应用程序向本地磁盘或网络主动发送日志,一般SaaS版本的日志处理都采用这种方式;“拉”是由日志分析程序主动从设备拉取日志数据,本地部署版本基本都是自动拉取设备日志进行管理分析。
我们要用到的软件是php-syslog-ng和syslog-ng,安装了syslog-ng和php-syslog-ng(需要系统支持Apache、php和MySQL)的机器作为这个系统的服务端,其它所有的服务器或者网络设备作为客户端,通过UDP协议向syslog-ng服务器发送syslog信息。syslog-ng服务器将这些log记录下来,记录为log文件或者insert到mysql数据库中,通过将所有网络设备日志收集并存储到中央存储库中来简化此操作,然后使用分析功能将来自多个设备的日志事件相关联,以识别并快速解决网络问题。
另外,专业Wi-Fi分析仪,如Netscout AIrMagnet或Ekahau频谱分析仪,可以很好的解决企业中需要维持高可靠性和无处不在的Wi-Fi的需求。
反正万变不离其宗,基本思路就是,出了故障,做分析,定位故障的层面,涉及到哪个协议,哪个阶段,然后进行网络抓包,筛选出对应的报文,然后读网络报文,看报文中的字段反应的情况是否和你分析的一致,如果和你分析的一致,则证明你在排除过程中分析很大可能是正确的,按你的分析去排错,如果和你分析的不一致,则推倒重来。
本文介绍几种最常用的工具,可以帮助确保查找和修复问题所需的时间尽可能短,希望本文中的信息有助于将来的故障排除。