SNMP(Simple Network Management Protocol,简单网络管理协议)是网络中管理设备和被管理设备之间的通信规则,它定义了一系列消息、方法和语法,用于实现管理设备对被管理设备的访问和管理。SNMP具有以下优势:
l 自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
l 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP只提供最基本的功能集,使得管理任务分别与被管设备的物理特性和下层的联网技术相对独立,从而实现对不同厂商设备的管理,特别适合在小型、快速和低成本的环境中使用。
SNMP网络元素分为NMS和Agent两种。
l NMS(Network Management Station,网络管理站)是运行SNMP客户端程序的工作站,能够提供非常友好的人机交互界面,方便网络管理员完成绝大多数的网络管理工作。
l Agent是驻留在设备上的一个进程,负责接收、处理来自NMS的请求报文。在一些紧急情况下,如接口状态发生改变等,Agent也会主动通知NMS。
NMS是SNMP网络的管理者,Agent是SNMP网络的被管理者。NMS和Agent之间通过SNMP协议来交互管理信息。
SNMP提供四种基本操作:
l Get操作:NMS使用该操作查询Agent的一个或多个对象的值。
l Set操作:NMS使用该操作重新设置Agent数据库(MIB,Management Information Base)中的一个或多个对象的值。
l Trap操作:Agent使用该操作向NMS发送报警信息。
l Inform操作:NMS使用该操作向其他NMS发送报警信息。
目前,设备的SNMP Agent支持SNMP v3版本,兼容SNMP v1版本和SNMP v2c版本。
l SNMP v1采用团体名(Community Name)认证。团体名用来定义SNMP NMS和SNMP Agent的关系。如果SNMP报文携带的团体名没有得到设备的认可,该报文将被丢弃。团体名起到了类似于密码的作用,用来限制SNMP NMS对SNMP Agent的访问。
l SNMP v2c也采用团体名认证。它在兼容SNMP v1的同时又扩充了SNMP v1的功能:它提供了更多的操作类型(GetBulk和InformRequest);它支持更多的数据类型(Counter64等);它提供了更丰富的错误代码,能够更细致地区分错误。
l SNMP v3提供了基于用户的安全模型(USM,User-Based Security Model)的认证机制。用户可以设置认证和加密功能,认证用于验证报文发送方的合法性,避免非法用户的访问;加密则是对NMS和Agent之间的传输报文进行加密,以免被窃听。通过有无认证和有无加密等功能组合,可以为SNMP NMS和SNMP Agent之间的通信提供更高的安全性。
NMS和Agent的SNMP版本匹配,是它们之间成功互访的前提条件。Agent可以同时配置多个版本,与不同的NMS交互采用不同的版本。
任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB(Management Information Base,管理信息库)是被管理对象的集合。它定义了对象之间的层次关系以及对象的一系列属性,比如对象的名字、访问权限和数据类型等。每个Agent都有自己的MIB。NMS根据权限可以对MIB中的对象进行读/写操作。NMS、Agent和MIB之间的关系如图 1所示。
图 1 NMS、Agent和MIB关系图
MIB是以树状结构进行存储的。树的节点表示被管理对象,它可以用从根开始的一条路径唯一地识别(OID)。如图 2所示,被管理对象B可以用一串数字{1.2.1.1}唯一确定,这串数字是被管理对象的OID(Object Identifier,对象标识符)。
图 2 MIB树结构