IP服务-6-SNMP
SNMP(简单网络管理协议)
SNMP更为正式的说法是互联网标准管理框架(Internet Standard Management Framework).在这个协议架构中.被管理的设备(SNMP代理)上有一 些信息是管理软件(SNMP管理器)想要展示给网络工程师査看的。每个SNMP代理上都维护一 个数据库.称为MIB (管理信息库).其中记录了这个代理所在设备的各种运行数据。管理器则使用SNMP来收集这些数据。
为了使管理器能够管理代理.SNMP定义了以下4个主要的功能区域.以便提供核心功能。
•数据定义:约定了代理或管理器定义数据时使用的语法。这些规定称为SMI (管理信息
结构)。
• MIB:有超过100个Internet标准定义的MIB.每个标准都对应不同的技术范畴.以及无
数个厂商私有的MIB。每个MIB定义都符合相应的SMI版本。
•协议:代理和管理器之间交换管理数据所使用的消息。
•安全和管理:定义了在代理和管理器之间安全交换数据的方法。
有趣的是.通过把SNMP分成4个主要的功能区域.每一部分都逐年得到了提升和扩展。但 值得注意的是.在每个官方SNMP版本中添加的主要特性.也添加进了一个称为SNMPv2c的伪版本中.详见下表。
下表总结了不同SNMP版本之间最主要的区別。跟大家认为的一样.每个版本都是建立在 前一个版本的基础上。举例来说.SNMPv1中定义了团体字符串.并将其当作简单的明文密码。 SNMPv2中并不必需团体字符串——但可选的RFC (1901)中仍定义了对SNMP团体字符串的向后兼容做法。甚至是提供了更高安全性的SNMPv3.都为了向后兼容而支持团体字符串。
SNMP协议消息
SNMPv1和SNMPv2协议消息(RFC3416)中定义了管理器和代理之间,甚至两台管理器之间如何进行信息通信。举例来说,管理器可以使用三种不同的Get消息,从代理哪里获得各种MIB数据;代理会返回SNMP响应消息,向管理器提供MIB数据。SNMP使用UDP来传输数据,SNMP响应消息有两个功能:即用来确认收到了其他的协议消息,也用来提供SNMP信息。
下表总结了每个SNMP协议消息的重要信息。
在使用SNMP管理器时.通常就会用到三种SNMP Get消息.以及SNMP响应消息。当操作 SNMP管理器的用户索要信息时.管理器就会向代理发送这某一种类型的Get消息;代理会以 SNMP响应消息进行反馈。不同类型的Get消息各有用处.尤其是当管理器需要査看MIB中的大 量信息时。管理器可以使用GetNext请求来获得代理的完整MIB (每个代理的MIB结构可能会 有所不同).或者使用GetBulki#求.这一过程称为MIB游走(MIB Walk)。
SNMP管理器可以使用Set消息来更改代理上的某些内容。举例来说.操作管理软件的用户可以指定他想关闭的某个路由器接口;管理工作站可以为此向代理发送携带MIB变量的Set消息;之后代理通过设置管理器发来的参数.告知Cisco IOS软件关闭相应接口。
代理可以向管理工作站主动发送未经请求的SNMP Tarp (自动告警)消息。举例来说.当路由器的一个接口突然失效时.路由器上的SNMP代理就会向SNMP管理器发送Trap消息。管理软件收到这个Trap消息后.可以在屏幕上高亮显示这个失效信息、向一线支持人员发送电子邮件.或向支持人员发送短信等消息。还有一点需要知道.管理器无需发送任何消息来告知代理.它己经收到了Trap消息;对照上表,从技术上说.只有Trap和响应消息不需要任何形式的确认消息。
最后再提一下Inform消息.两台SNMP管理器如果管理着相同的代理.它们就可以使用 Inform消息来交换有关这些代理的MIB信息。
SNMP MIB
SNMP版本1和版本2中包含标准的MIB.也就是内部的MIB-I (版本1.RFC 1156)和MIB-II (版本2.RFC 1213)。MIB-II实际上是在SNMPv1发布后.SNMPv2发布前创建的.因此SNMPv1 也支持MIB-II。在创建了MIB-II规定后.IETF SNMP工作组改变了MIB定义的策略。不再由 SNMP工作组创建标准化的MIB.而是由工作在不同技术领域的其他工作组为它们各自关注的技术.创建各自的MIB定义。这就导致后来出现了上百个标准化MIB定义;不仅如此.各大厂商也创建了各自私有的MIB。
远程监控MIB (RMON.RFC 2819)是在MIB-II之外.一个及其重要的标准化MIB。支持 RMON MIB的SNMP代理可以通过SNMP Set消息由程序进行控制:捕获数据包、计算统计数据、监控指定MIB变量的门限值、当超出门限值范围时向管理工作站进行报告.以及执行其他任务。在使用RMON时.工程师可以在网络中部署多个监控探针.并使用SNMP消息来收集所需信息。
SNMP安全性
SNMPv3在现有的SNMPv2和SNMPv2c定义中添加了强健的安全性。SNMPv3针对SNMPv2添加了两个主要的安全特性:认证和加密。SNMPv3定义中使用MD5(消息摘要算法5)和SHA (安全散列计算)为每个SNMPv3协议消息创建消息摘要。这样做确保了端点认证的安全性.并且能够预防数据篡改和伪装类型的攻击。此外.SNMPv3管理器和代理还能使用DES (数字加密标准)来加密它们之间传输的消息.从而获得更好的私密性(SNMPv3建议在未来还能够支持AES[高级加密标准].但它并不是原生SNMPv3定义中的一部分)。对于加密特性的支持是独立存在的.因为美国政府对DES技术的输出有特殊限制。
下例所示的SNMP配置实现了以下目标:
•启用SNMP并向192.168.1.100发送Trap (自动告警)消息;
•向SNMP管理器针对多种事件发送Trap消息;
•设置可选信息来识別路由器机框、联系倍息和位置倍息;
•为子网192.168.1.0/24 (使用访问列表33实现过滤)的用户设置路由器读写访问权限。