方法5:用SNMP查询交换机
对一个交换网络进行故障诊断的最有效办法,应该是通过直接询问交换机来查看网络的状况。这可以通过SNMP或者连接到交换机的控制口实现。显然,直接连接到交换机的控制口不是理想的办法,因为这就需要对网络中的每台交换机都有物理上的连接。稍微理想一点的替代方法是搭建连接到交换机控制口的终端服务器。安恒公司SNMP是一个更好的选择,它可以在交换网络带内的任何地方进行查询,不需要附加的硬件。如果您部署了网管系统,还可以配置当利用率、错误、或者其他参数超过门限的时候,交换机主动发出SNMP陷阱。然后利用网管或者监测工具,研究是什么原因造成了门限超出。
事实上几乎所有的交换机都提供SNMP功能,哪怕是最便宜的交换机。它们之间主要的区别就是提供的信息多少。一些价格便宜的交换机只提供简单的SNMP信息,且是针对整个交换机的;而那些价格贵一些的交换机,还可以提供交换机每个端口的详细信息。
SNMP可能是监测交换网络最常用和干扰最少的办法。SNMP控制台不需要非常靠近被监测的设备,只要求有路由可达就可以了,同时交换机的安全配置允许控制台与交换机的代理进行通信。
图6、使用SNMP监测交换机安
虽然交换机可以识别到错误,但交换机本身并不定时地报告错误,所以使用SNMP查询或许是最好的办法。
支持SNMP的交换机有不同的MIB库(管理信息库)。每一种MIB都不同。除了某些对自己的交换机提供支持的私有MIB库,标准的MIB库对交换网络的监测也非常有用。下面是对故障诊断非常有用的一些MIB库。
RFC 1213 – MIB II
RFC 1643 – Ethernet-Like Interface MIB
RFC 2819 – RMON Ethernet
RFC 2021 – RMON 2
RFC 2613 – SMON
很多RFC生成之后就不断地在更新和增强。因此我们要检查最近更新的RFC。例如RFC1213,至少更新和增强了五次,生成了5个新的RFC(2011,2012,2013,2358和2665)。除了定义利用率和错误的RFC之外,有关桥接的MIB(RFC1493)也是非常有用的。
使用SNMP监测网络的时候,必须注意安全性。如果SNMP代理没有限制,那么潜在的任何地方的任何人都可以监测到您的网络动态或修改交换机配置。交换机售出的时候默认打开了SNMP,并且使用的是一个非常通用的密码。SNMP密码叫做通信字符串,使用明文传播,这带来了潜在的危险。SNMP V3提供对通信字符串的加密,减少了这种危险,但是SNMP V3还没有广泛使用。最常用的通信字符串是public。现在,使用public,很多Internet上的SNMP代理都可以被接入。
我们应该立即修改通信字符串。SNMP代理应该为不同的字符串配置不同的接入级别,不同的IP地址、不同的子网也有不同的接入级别。或者根据其它的配置来限制接入的级别。通过路由器接入SNMP代理可能会对SNMP的限制带来一些影响。防火墙也有可能完全阻止SNMP。即使您能够通过SNMP接入代理,也要求代理支持您所要查询的MIB库。大部分厂家完全支持标准的MIB库。然而,也有一些厂家不支持。有时候为了支持期望的MIB,还需要先对交换机的操作系统进行升级。这种方法还有一个问题,如果SNMP代理执行的MIB不正确的话,那么响应就完全是错误的了。虽然这并不是经常发生的,但有时候程序设计的错误,会带来错误的响应。
交换机不响应SNMP的查询有很多原因。一旦这些问题都解决了,SNMP就能够提供非常有效的监测和趋势分析。
结论
故障诊断的一个普遍方法是等待用户的投诉。这个方法虽然简单,但是非常有效。用户能够感知到网络正常的性能是怎样的。一旦有性能下降,网络支持中心就会很快收到客户的投诉。有了用户投诉,您就应该从他的接入点开始做故障诊断了。这种方法的缺点是完全是被动的,不具有前瞻性的。
理想的方法是使用前瞻性地监测。包括定期地查询每个交换机、监测每个交换端口的流量、流量的趋势,同时检测其他的相关网段。把问题解决从故障诊断方式变成故障预防方式。