|
1 SNMP的发展
简单网络管理协议(SNMP)是目前TCP/IP网络中应用最为广泛的网络管理协议。1990年5月,RFC 1157定义了SNMP(simple network management protocol)的第一个版本SNMPv1。RFC 1157和另一个关于管理信息的文件RFC 1155一起,提供了一种监控和管理计算机网络的系统方法。因此,SNMP得到了广泛应用,并成为网络管理的事实上的标准。 SNMP在90年代初得到了迅猛发展,同时也暴露出了明显的不足,如,难以实现大量的数据传输,缺少身份验证(Authentication)和加密(Privacy)机制。因此,1993年发布了SNMPv2,具有以下特点: * 支持分布式网络管理 * 扩展了数据类型 * 可以实现大量数据的同时传输,提高了效率和性能 * 丰富了故障处理能力 * 增加了集合处理功能 * 加强了数据定义语言 但是,SNMPv2并没有完全实现预期的目标,尤其是安全性能没有得到提高,如:身份验证(如用户初始接入时的身份验证、信息完整性的分析、重复操作的预防)、加密、授权和访问控制、适当的远程安全配置和管理能力等都没有实现。1996年发布的SNMPv2c是 SNMPv2的修改版本,功能增强了,但是安全性能仍没有得到改善,继续使用SNMPv1的基于明文密钥的身份验证方式。IETF SNMPv3工作组于1998年元月提出了互联网建议RFC 2271-2275,正式形成SNMPv3。这一系列文件定义了包含SNMPv1、SNMPv2所有功能在内的体系框架和包含验证服务和加密服务在内的全新的安全机制,同时还规定了一套专门的网络安全和访问控制规则。图1通过SNMP不同版本格式的演变描述了它们之间的关系。可以说,SNMPv3是在SNMPv2基础之上增加了安全和管理机制。
2 SNMP的基本概念
网络管理的SNMP模型有4个组成部分: 1)管理节点(Management Node) 2)管理站(Management Station) 3)管理信息库(Management Information Base) 4)管理协议(Management Protocol) 管理节点可以是主机、路由器、网桥、打印机以及任何可以与外界交流状态信息的硬件设备。为了便于SNMP直接管理,节点必须能运行SNMP进程,即SNMP代理(SNMP Agent)。每个代理都要维护一个本地数据库,存放它的状态、历史并影响它的运行。所有的计算机以及越来越多的网桥、路由器和外部设备都能够满足这个要求。 网络管理由管理站完成,它实际上是一台运行特殊管理软件的计算机。管理站运行一个或多个管理进程,它(或它们)通过SNMP协议在网络上与代理通信,发送命令以及接收应答。该协议允许管理进程查询代理的本地对象的状态,必要时对其进行修改。许多管理站都具有图形用户界面,允许网络管理者检查网络状态并在需要时采取行动。管理进程和代理之间的信息交换以SNMP信息的形式进行,SNMP信息的负载可以是SNMPv1或SNMPv2的协议数据单元(PDU)。PDU表示某一类管理操作(例如取得和设置管理对象)和与该操作有关的变量名称。SNMPv3规定了可以使用信息头的用户安全模块(USM),与安全有关的处理在信息一级完成。 大多数实际网络都采用了多个制造商的设备,为了使管理站能够与所有这些不同设备进行通信,由这些设备所保持的信息必须严格定义。如果一个路由器根本不记录其分组丢失率,那么管理站向它询问时就得不到任何信息。所以SNMP极为详细地规定了每种代理应该维护的确切信息以及提供信息的确切格式。SNMP模型的最大部分就是定义谁应该记录什么信息以及该信息如何进行通信。总之,每个设备都具有一个或多个变量来描述其状态。在SNMP文字中,这些变量叫做对象(Object)。网络的所有对象都存放在一个叫做管理信息库(MIB)的数据结构中。 在SNMP中,加密和验证起着特别重要的作用。管理站具有了解它所控制的众多节点的能力以及关闭它们的能力。因此,对于代理来说很重要的一点是,必须弄清楚那些宣称来自管理站的查询是否真的来自管理站。在SNMPv1中,管理站通过在每条信息中设置一个明文密钥来证明自身。在SNMPv2中,使用了现代加密技术,但大大增加了协议的复杂性,最后还是将它抛弃了。SNMPv3则通过简明的方式实现了加密和验证功能。 |
|
|
|
|