1 SNMP介绍
SNMP(Simple Network Managed Protocol)是简单网络管理协议的简称,首先是由工程任务组织IETF研究小组为了解决Internet上的路由管理问题而提出的,属于应用层协议。
由于其简单易用,是事实上的网络管理工业标准。
目前有SNMPv1、SNMPv2、SNMPv3三种正式版本。
1.1 SNMP网管基本体系结构
1.2 SNMP网络管理模型
SNMP网络管理模型有4个组成部分:
管理节点(Management Node):运行SNMP代理程序(SNMP agent),维护一个本地数据库,描述节点的状态和历史,并影响节点的运行
管理站(Management Station):运行专门的网络管理软件(manager),使用管理协议与被管理节点上的SNMP代理通信,维护管理信息库
管理信息库(Management Information Base):每个站点使用一个或多个变量描述自己的状态,这些变量称为“对象(objects)”,所有的对象组成管理信息库MIB(Management Information Base)
管理协议(Management Protocol):管理协议用于管理工作站查询和修改被管理节点的状态,被管理节点可以使用管理协议向管理站点产生“陷阱(trap)”报告。
1.3 SNMP协议的发展
(1)SNMPv1
SNMPv1草案发布于1988年 (rfc1157 ),遵循Internet1990标准,定义了许多工作站,桥,路由器,交换机和HUB,均有SNMP Agent,同时定义了许多公用MIB。
SNMPv1协议的不足是难以实现大量的数据传输,缺少身份验证(Authentication)和加密(Privacy)机制。
(2)SNMPv2(1996)
SNMPv2(1996)弥补SNMPv1 的不足,支持批量传送(bulk)、提高了效率和性能;支持分布式网络管理;扩展了数据类型;丰富了故障处理能力;加强了数据定义语言。
它的不足之处是:SNMPv2并没有完全实现预期的目标,尤其是安全性能没有得到提高,如:身份验证、加密、授权和访问控制、适当的远程安全配置和管理能力等都没有实现。
(3)SNMPv2c
SNMPv2c草案是在1996年, 它是 SNMPv2的修改版本,功能增强。
不足之处是安全性能仍没有得到改善,继续使用SNMPv1的基于明文密钥的身份验证方式。
(4)SNMPv3
SNMPv3遵循Intrenet 1998标准,包含SNMPv1、SNMPv2所有功能在内的体系框架和包含验证服务和加密服务在内的全新的安全机制,同时还规定了一套专门的网络安全和访问控制规则。
SNMPv3是在SNMPv2基础之上增加了安全和管理机制。
2 SNMP管理协议
2.1 SNMP管理协议的5种消息类型
(1)get–request
操作:从代理进程处提取一个或多个参数值。
(2)get-next-request
操作:从代理进程处提取一个或多个参数的下一个参数值。
(3)set-request
操作:设置代理进程的一个或多个参数值。
(4)get-response
操作:返回的一个或多个参数值。这个操作是由代理进程发出的。它是前面3 中操作的响应操作。
(5)trap
操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
3 MIB基础知识
MIB(Management Information Base,管理信息库)是MO(Managed Object管理对象)定义的集合。
MIB文件是按照ASN.1定义的文本文件
每个管理对象都对应一个节点,并且用OID(Object Identifier)来标识;数据管理对象对应叶子节点;所有的管理对象形成了一棵管理树。
3.1 基本概念
对象标识:对象标识是一种数据类型,它指明一种授权命名的对象。表示为一个整数序列,以点分隔。
MIB树:表示对象标识的整数构成一个树型结构,类似于DNS和文件系统。
对象标识从顶部开始,顶部没有标识,以root表示。所有的MIB变量都从1.3.6.1.2.1这个标识开始。树上的每个节点还有文字名,例如:1.3.6.1.2.1就和iso.org.dod.internet.memt.mib对应。
3.2 MIB分类 MIB依据数据的通用性可以分为:
(1)标准MIB:rfc1213, rfc1471 , rfc1724, rfc2618等等
注: 通用性MIB rfc1213习惯称为MIB-II
(2)自定义MIB:当标准MIB信息不足以描述厂商设备,需要自定义MIB,但首先要向IANA组织申请编号。
3.3 MIB管理对象的基本属性
管理对象的四个基本属性如下:
(1)对象类型(Object Type):定义了一个特定对象的名字,例如sysUpTime。这个名字只是一个标示符。MIB对象既可以用这个标示符来表示,也可以用相应的MIB号码来表示。例如定义internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
那么既可以用internet也可以用字串 .1.3.6.1来表示这个对象。 (2)语法(Syntax) :指定了数据类型,例如整数、8位组串数字(字符串;范围为0至255)、对象标识符(预先定义的数据类型别名)或NULL。NULL是留待的后使用的空位。
(3)访问(Access):表明了这个特定对象的访问级别。合法的值有:只读、读写、只写和不可存取。
(4)状态(Status):定义了这个对象的实现需要:必备的(被管理节点必须实现该对象);可选的(被管理对象可能实现该对象):或者已废弃的(被管理设备不需要再实现该对象)
3.4 MIB两种对象类型
标量(Type-Specific Objects):
sysDescr OBJECT-TYPE
SYNTAX DisplayString (SIZE(0..255))::= {system 1}
OID: mib-2.system.1.0
表量(Columnar Objects):
OID:
mib-2.interface.ifTable.ifEntry.ifDescr.2
mib-2.interface.ifTable.ifEntry.ifDescr.6
mib-2.interface.ifTable.ifEntry.ifType.2
mib-2.interface.ifTable.ifEntry.ifType.6
4 自定义MIB
自定义MIB包含的内容有:模块级别信息、对象定义(OBJECT TYPE,包括标量对象和表对象)、陷阱定义(TRAP TYPE)。
第1行是MIB开始
第2-7行引入外部定义
第8-13行是模块信息定义
第19-28行是MO定义
第30-36行是TRAP定义
第37行是MIB结束
4.1 常用对象类型
v1中的
(1)简单类型:Integer、Octet String、Object Identifier、Null
(2)应用类型:IpAddress、Counter、Gauge、TimeTicks、Opaque
v2中的
(1)简单类型:Integer32、OctetString、Object Identifier、Null
(2)应用类型:IpAddress、Counter32、Counter64、Gauge32、Unsigned32、TimeTicks、Opaque、BIT STRING
4.2 自定义MIB基本原则
(1)优先采用标准MIB:如果确实无法满足要求才考虑自定义MIB
(2)采用最新的SNMPV2-SMI来定义MIB:使用最新的SNMPv2定义MIB可以使得对MIB的描述更详尽,可用的类型也更丰富。
(3)层次清晰,定义时顺序合理
— 先定义根节点。
— 在定义对象前,如有自定义类型,应当先书写自定义类型的定义。
— 先定义标量对象,再表量对象。
(4)符合惯例,以标准MIB为参考
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liulantao0000/archive/2010/07/01/5706402.aspx
|
|