一、 MIB的概念
MIB全称Management Information Base,就是管理信息库。MIB是网络管理系统中的重要构件,它由一个系统内的许多被管对象及其属性组成。MIB这个概念实际上就是一个虚拟数据库。这个数据库提供有关被管理网络元素的信息(即能够被管理进程查询和设置的信息),而这些信息由管理进程和各个代理进程共享。
二、 MIB的定义
MIB的编写规则由管理信息结构(SMI,Structure of Management Information)定义,我们可以定义符合SMI标准的Scalars, Tables, Imports等类型的变量。它是开发一个SNMP代理的第一步。SNMP MIB对象的定义是十分严格的,定义指定了对象的数据类型,允许的形式,取值范围和与其它MIB对象的关系。
三、 MIB中的OID(Object Identifier)
SNMP的对象标识符(OID)是定义在特定MIB模式中的值,来定义一个特定的在MIB数据库中SNMP目标。它是以SMI(Structure of Management Information)管理信息结构为基础的一系列点分符号,如1.3.6.1.2.1.1.1,这些点分符号在任何网络设备中都唯一标识某一个数据参数。
图1 管理信息库的对象命名举例
对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。在ISO的下面有4个结点,其中的一个(标号3)是被标识的组织。在其下面有一个美国国防部(Department of Defense)的子树(标号是6),再下面就是Internet(标号是1)。在只讨论Internet中的对象时,可只画出Internet以下的子树(图中带阴影的虚线方框),并在Internet结点旁边标注上{1.3.6.1}即可。
在Internet结点下面的第二个结点是mgmt(管理),标号是2。再下面是管理信息库,原先的结点名是mib。1991年定义了新的版本MIB-II,故结点名现改为mib-2,其标识为{1.3.6.1.2.1},或{Internet(1) .2.1}。这种标识为对象标识符。
最初的结点mib将其所管理的信息分为8个类别,见表1。现在的 mib-2所包含的信息类别已超过40个。
表1 最初的结点mib管理的信息类别
类别 |
标号 |
所包含的信息 |
System |
(1) |
主机或路由器的操作系统运转的一些信息,如系统运行时间、计算机名称等。 |
interfaces |
(2) |
各种网络接口及它们的测定通信量,监控接口的开放、关闭和发送接受,以及丢包等。 |
address translation |
(3) |
地址转换(例如ARP映射) |
ip |
(4) |
Internet软件(IP分组统计),包括IP路由等方面的IP信息 |
icmp |
(5) |
ICMP软件(已收到ICMP消息的统计),出错、丢弃等 |
tcp |
(6) |
TCP软件(算法、参数和统计)TCP连接状态 |
Udp |
(7) |
UDP软件(UDP通信量统计) |
egp |
(8) |
EGP软件(外部网关协议通信量统计) |
transmission |
(10) |
没有使用 |
snmp |
(11) |
测量被管理设备snmp信息包收发 |
四、 OID的表示方式
ü 绝对OID
从根开始,显示出所有的路径。
如:.1.3.6.1.4.1.2就是显示到IBM公司的一个绝对OID。
ü 相对OID
相对于一个节点的OID,不是相对于根的。
如:2.1.1.7表示的对象sysContact就是相对于internet (.1.3.6.1)节点的相对OID。
ü 符号表示的OID
如:mgmt.mib-2.system.sysDescr表示的意义和2.1.1.1一样,是相对OID。
ü 数字和符号混合表示
可以将数字和符号混合表示OID
如:mgmt.mib-2.1.sysDescr
注意:绝对OID总是以“.”开始,并且必须写明各个节点。
如:.iso.org.dod.internet.mgmt.mib.system.sysDescr
.1.3.6.1.2.1.1.1
.iso.3.dod.1.mgmt.mib-2.1.sysDescr
五、 SMI
MIB的一套公用的结构和表示符号叫做管理信息结构SMI(Structure of Management Information),管理信息是一个被管理对象的集合,SMI定义了一个设备维护的规则集,用于对被管理对象进行命名和编码。这个在RFC 1155 [Rose and McCloghrie 1990] 中定义。
一般,对象有三种属性:
名字:就是OID;
类型和句法:由ASN.1(Abstract Syntax Notation)定义,规定了如何传输和设定SNMP信息;
编码:用BER(Basic Encoding Rules)编译码,方便在网络传输。
六、 对象数据类型
SNMP中,数据类型并不多,形式上也和C语言很类似。
l INTEGER
一个变量虽然定义为整型,但也有多种形式。有些整型变量没有范围限制,有些整型变量定义为特定的数值(例如,IP的转发标志就只有允许转发时的或者不允许转发时的这两种),有些整型变量定义一个特定的范围(例如,UDP和TCP的端口号就从0到65535)。一般是数字。
l OCTER STRING
0或多个8 bit字节,每个字节值在0~255之间。对于这种数据类型和下一种数据类型的BER编码,字符串的字节个数要超过字符串本身的长度。这些字符串不是以NULL结尾的字符串。一般表示文本信息或者是物理地址。
l Counter
非负的整数,可从0递增到232—1(4294976295)。达到最大值后归0。单调递增。主要用来跟踪信息。如接口收发的字节或出错丢弃的字节。
l OBJECT IDENTIFIER
对象名称OID。
l NULL
代表相关的变量没有值。例如,在get或get-next操作中,变量的值就是NULL,因为这些值还有待到代理进程处去取。
l SEQUENCE
这一数据类型与C程序设计语言中的“structure”类似。一个SEQUENCE包括0个或多个元素,每一个元素又是另一个ASN.1数据类型。例如,MIB中的UdpEntry就是这种类型的变量。它代表在代理进程侧目前“激活”的UDP数量(“激活”表示目前被应用程序所用)。在这个变量中包含两个元素:
Ø IpAddress类型中的udpLocalAddress,表示IP地址。
Ø INTEGER类型中的udpLocalPort,从0到65535,表示端口号。
l SEQUENCE OF
这是一个向量的定义,其所有元素具有相同的类型。如果每一个元素都具有简单的数据类型,例如是整数类型,那么我们就得到一个简单的向量(一个一维向量)。但是我们将看到,SNMP在使用这个数据类型时,其向量中的每一个元素是一个SEQUENCE(结构)。因而可以将它看成为一个二维数组或表。
l IpAddress
32位长度,以网络序号表示的IP地址。每个字节代表IP地址的一个字段。
l NetworkAddress
和IpAddress一样,但可以代表不同的网络地址类型。
l Gauge
非负的整数,取值范围为从0到4294976295(或增或减)。达到最大值后锁定直到复位。例如,MIB中的tcpCurrEstab就是这种类型的变量的一个例子,它代表目前在ESTABLISHED或CLOSE_WAIT状态的TCP连接数。
l TimeTicks
时间计数器,以0.01秒为单位递增,但是不同的变量可以有不同的递增幅度,取值范围为从0到4294976295。所以在定义这种类型的变量的时候,必须指定递增幅度。例如,MIB中的sysUpTime变量就是这种类型的变量,代表代理进程从启动开始的时间长度,以多少个百分之一秒的数目来表示。
l Opaque
八进制字符串。
以上数据类型是MIB-1中定义,在MIB-2中新增了几种数据类型。
l Integer32
l Counter32
l Gauge32
l Unsigned32
从0到232—1的十进制数值。
l Counter64
和Counter一样,只是最大值为264—1。
l BITS
非负的列举数字。
七、 MIB-2中的文本规定
l DisplayString
0或多个8bit字节,但是每个字节必须是ASCII码。在MIB-II中,所有该类型的变量不能超过255个字符(0个字符是可以的)。
l PhysAddress
OCTER STRING类型,代表物理地址(例如以太网物理地址为6个字节长度)。
l MacAddress
6个八进制表示,以太地址。
l TruthValue
布尔型,true或false
l TestAndIncr
阻止多个管理站同时改变设备状态。
l AutonomousType
定义子树的OID,附加了MIB相关定义。
l VariablePointer
对特定对象实例的指针。
l RowPointer
指针,指向表格的一行。
l RowStatus
管理表格中行的创建和删除。相关命令和状态变量有:active(1), notInService(2), notReady(3), createAndGo(4), createAndWait(5), and anddestroy(6).
l TimeStamp
测量设备启动到故障发生的时间。
l TimeInterval
可以取0-2147483647之间的任意值,以10ms来测量一段时期。
l DateAndTime
以八进制表示。
l StorageType
代理使用的存储类型,other(1), volatile(2), nonVolatile(3), permanent(4), and readOnly(5)
l TDomain
表示一种传输设备。
l TAddress
传输设备的地址,1-255的八进制表示。
八、 MIB和SMI关系
(1)管理信息结构之于管理信息库类似于模式之于数据库。管理信息结构定义了每一个对象“看上去像什么”,管理信息库则说明每个对象“是什么”。
(2)管理信息库的变量。有两种变量,一是简单变量,一是表格。简单变量对应于MIB树中的叶子结点,其标识方法是在其对象标识后面添加“.0”;表格的标识方法是采用联合索引的方式。
九、 MIB编写示例
MIB的编写步骤如下:
l 定义MIB的名字
l 用IMPORT引入其他MIB的数据类型和OID,使用格式“IMPORT oids FROM ……”
l 定义对象,格式为:(MIB-2红色表示)
OBJECT-TYPE
SYNTAX
UnitsParts < seconds, milliseconds>
ACCESS < read-only, read-write, write-only, 或not-accessible>
MAX-ACCESS 或accessible-for-notify>
STATUS < mandatory, optional, 或obsolete>< current, obsolete, 或deprecated >
DESCRIPTION
"文字描述……"
AUGMENTS { <表格名称> }
::= { <此对象的OID > }
例:
RFC1213-MIB DEFINITIONS ::= BEGIN
IMPORTS
mgmt, NetworkAddress, IpAddress, Counter, Gauge,
TimeTicks
FROM RFC1155-SMI
OBJECT-TYPE
FROM RFC 1212;
mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
ifTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of interface entries. The number of entries is
given by the value of ifNumber."
::= { interfaces 2 }
……
END
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/143526/viewspace-1031206/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/143526/viewspace-1031206/