01-MIB概述
本章节下载: 01-MIB概述 (345.07 KB)
本文档介绍了设备支持的管理信息库(MIB,Management Information Base)信息,包括公有MIB和私有MIB。
MIB(是被管理对象的集合。NMS(Network Management System,网络管理系统)管理设备的时候,通常会关注设备的一些参数,比如接口状态、CPU利用率等,这些参数就是被管理对象,在MIB中称为节点。每个设备都有自己的MIB。MIB定义了节点之间的层次关系以及对象的一系列属性,比如对象的名称、访问权限和数据类型等。被管理设备都有自己的MIB文件,在NMS上编译这些MIB文件,就能生成该设备的MIB。NMS根据访问权限对MIB节点进行读/写操作,从而实现对设备的管理;NMS也可以根据MIB节点定义解析设备主动上报的告警信息。
设备不支持的MIB模块、表节点、和全局节点会标注为“不支持”。为避免出现未知问题,请勿访问文档标注为不支持的MIB。
对于不支持的MIB,设备也不支持该MIB包含的告警。
为保证兼容以及与第三方网管互通,软件版本可能包含已废弃或已过时的MIB或MIB节点。
用户可通过设置MIB节点来配置设备。为保证MIB节点中的设置能够通过CLI(Command Line Interface,命令行接口)正确恢复,请遵循以下注意事项:
· 建议使用0x21到0x7E的可见字符(代表问号的字符0x3F除外)。如需使用特殊字符,请确保CLI支持该字符。例如,CLI使用空格做分隔符,使用问号显示帮助信息,如果某个值含有空格或问号,CLI可能无法恢复该值。
· 请确保MIB节点中设置的值在CLI支持的取值范围内。在某些特殊情况下,MIB节点支持的取值范围可能与CLI不同。例如,OCTET STRING类型的MIB节点支持的字符串长度可能大于CLI支持的最大范围。如果MIB节点中指定的取值超出CLI支持范围,CLI则无法恢复该取值。反之,如果通过CLI设置的值超出了MIB节点支持的取值范围,系统则无法在MIB中设置该取值。
用户可以通过如下配置,将告警信息发送到NMS:
· 如果使用SNMP v1/v2c版本通信,请使用snmp-agent community命令配置团体名;如果使用SNMPv3版本通信,请使用snmp-agent group命令配置组、snmp-agent usm-user v3命令创建SNMPv3用户。具体配置请参见配置指导中的“SNMP”手册。
· 通过snmp-agent trap enable命令开启告警开关,对于某些模块,例如linkUp/linkDown、NQA等,需要使用其它命令开启其告警开关。模块告警功能的配置请参见对应模块的配置指导。
· 使用snmp-agent target-host命令配置接收告警信息的NMS的属性,比如NMS的IP地址以及认证参数等。
告警信息分为以下三种类型:
· 故障告警:是指由于硬件设备故障或某些重要功能异常而产生的告警。
· 恢复告警:是指故障设备或异常功能恢复正常时产生的告警。
· 事件告警:是指提示性的告警,用于记录管理员的操作信息、设备状态变化等系统事件。
告警的级别表示该告警信息的严重程度,按严重性从高到低依次分为:紧急->重要->次要->警告->通知。
告警级别说明如下:
严重等级 |
描述 |
紧急 |
故障影响到系统提供的服务,需要立即采取相应动作。比如某设备或资源完全不可用,需要进行恢复,即使该故障在非工作时间内发生,也需立即采取措施 |
重要 |
故障影响到服务质量,需要采取紧急动作。比如某设备或资源服务质量下降,需要对其进行还原,恢复全部能力,需在工作时间内立即采取措施 |
次要 |
故障还未影响到服务质量,但为了避免更严重的故障,需要在适当时候进行处理或进一步观察 |
警告 |
故障可能产生潜在的错误从而影响提供的服务,需要评估是否采取相应的措施 |
通知 |
表示设备正常运行中的操作信息、状态变化信息等,一般不需要用户采取任何处理措施 |
文档中定义的告警级别是网络设备对网管平台收到告警后进行呈现及处理的一种建议。
设备输出的告警信息中并不携带类型字段和级别字段,本文定义的告警信息类型和级别供网络管理员参考。
对于故障告警,其级别应为紧急/重要/次要/警告其中之一。
对于恢复告警,其级别应与对应的故障告警级别一致。
对于事件告警,其级别应为紧急/重要/次要/警告/通知其中之一,通常为通知级别。
MIB定义了被管理对象之间的层次关系以及对象的一系列属性,如下图所示的树状结构进行存储。MIB树的每个节点都是一个被管理对象,每个节点都由从根开始的一条路径唯一地识别,并用一个OID(Object Identifier,对象标识符)唯一确定。
MIB文件记录了设备上所有节点的MIB信息。网络管理员在网管系统上编译这些MIB文件,就能生成设备的MIB树,以便对设备进行可视化管理。
管理员通过网管系统访问设备时,需要操作的是MIB节点的某一个具体实例。根据网管系统对MIB节点使用方式的不同,我们将MIB节点分为三大类:全局节点、表节点和告警节点。
全局节点为仅有单实例值的MIB节点。例如,sysUpTime(SNMP进程启动时间)是一个全局节点,它在当前设备中仅存在唯一的一个实例值。网络管理员在访问该全局节点时,必须为其添加固定的索引0,以sysUpTime.0这样的形式对其进行读写操作,如下所示:
Protocol version: SNMPv2c
Operation: Get
Request binding: # 网管请求报文
1: sysUpTime.0 (TimeTicks) null
Response binding: # 设备应答报文
1: sysUpTime.0 (TimeTicks) 29 days 15h:25m:15s.64th (256111564)
表节点为支持多实例值的MIB节点。例如,ifDescr(接口描述信息)是一个表节点,不同接口对应不同的实例,拥有各自的实例值。网络管理员在访问该表节点时,必须为其添加相应的索引值,以便对不同实例下的值进行读写操作,如下所示:
Protocol version: SNMPv2c
Operation: Get
Request binding: # 网管请求报文
1: ifDescr.17 (DisplayString) null
Response binding: # 设备应答报文
1: ifDescr.17 (DisplayString) Aux0 [41.75.78.30 (hex)]
为了准确地添加表节点的索引值,请您阅读对应MIB手册中表节点信息表上方提供的“索引节点”信息。
告警节点用于描述设备主动发送的事件通告或者故障发生/故障恢复通知。
例如,下图所示的linkUp和linkDown分别为设备接口UP、DOWN时对应的告警节点信息:
每个MIB文档中均以MIB节点OID的字典序对各类MIB节点进行排序。
全局节点和表节点信息均以如下表格形式呈现:
节点名称及OID |
最大访问权限 |
数据类型 |
有效范围 |
含义 |
实现规格 |
ifIndex (1.3.6.1.2.1.2.2.1.1) |
read-only |
Integer32 |
Integer32 (1..2147483647) |
接口索引 |
实现与MIB文件定义一致 |
以上表格中的各项含义如下:
项目 |
说明 |
节点名称及OID |
该节点的OID值及节点名称 |
最大访问权限 |
该节点在MIB文件中定义的最大访问权限,对应MIB文件中的MAX-ACCESS子句 MIB节点支持的访问类型包括: · not-accessible:表示该MIB节点不能直接访问(不支持读/写/创建操作),也不允许作为告警节点的绑定变量。此类节点通常为表节点的索引节点,只能作为表节点OID的一部分 · accessible-for-notify:表示该MIB节点不能直接访问(不支持读/写/创建操作),但可以作为告警节点的绑定变量。绑定变量的详细介绍,请参见“告警绑定变量说明” · read-only:表示该MIB节点为只读节点,允许读操作 · read-write:表示该MIB节点为读/写节点,即只允许读/写操作,不允许创建操作 · read-create:表示该MIB节点支持读/写/创建操作,也可以作为告警节点的绑定变量 以上类型的访问权限自not-accessible起依次增高,read-create的访问权限最高 |
数据类型 |
该节点在MIB文件中定义的数据类型,对应MIB文件中的SYNTAX子句,常见的类型定义包括:基本类型、BITS类型和文本约定类型。更多关于常见数据类型的详细介绍,请参见“数据类型说明” |
有效范围 |
该节点在MIB文件中定义的数据有效范围,对应MIB文件中的SYNTAX子句: · 对于数字类型的MIB节点,有效范围是指该节点实际支持的取值范围(包括以枚举方式列出的取值列表) · 对于字符串类型的MIB节点,有效范围是通常为字符串的长度范围 |
含义 |
该节点的功能简述 |
实现规格 |
该节点的功能支持情况及实现规格说明,包括以下取值: · 实现与MIB文件定义一致:表示实现完全同MIB文件中的定义 · 不支持:表示MIB节点可以访问但是并不支持或者其支持情况未进行过测试。为避免出现未知问题,请勿访问此类节点 · 该MIB节点具体的实现规格说明(注:不同产品型号及版本间可能存在差异) |
表节点的操作支持情况以如下的表格形式呈现:
创建约束 |
修改约束 |
删除约束 |
读取约束 |
支持 |
支持 |
支持 |
支持 |
以上表格中的各项含义如下:
项目 |
说明 |
创建约束 |
该表对创建操作约束情况说明,可以为“支持”、“不支持”或者具体限制说明 |
修改约束 |
该表对修改操作约束情况说明,可以为“支持”、“不支持”或者具体限制说明 |
删除约束 |
该表对删除操作约束情况说明,可以为“支持”、“不支持”或者具体限制说明 |
读取约束 |
该表对读取操作约束情况说明,可以为“支持”、“不支持”或者具体限制说明 |
告警节点信息以如下的表格形式呈现:
OID |
告警标题 |
类型 |
级别 |
清除告警 |
缺省状态 |
1.3.6.1.6.3.1.1.5.3 |
接口链路故障 |
故障告警 |
重要 |
1.3.6.1.6.3.1.1.5.4 (linkUp) |
开启 |
以上表格中的各项含义如下:
项目 |
说明 |
OID |
该告警节点的OID值 |
告警标题 |
该告警的功能简述,可以直接呈现在网管用户界面上 |
类型 |
该告警信息的类型 |
级别 |
该告警信息的严重等级 |
清除告警 |
该告警对应的恢复告警,如果是恢复告警或者事件告警,此处为“-” |
缺省状态 |
该告警信息缺省情况下的开关状态 |
每个告警节点拥有唯一的OID,同时,在告警消息中该告警节点可能包含0个或多个绑定变量。告警节点通过绑定变量来提供当前告警的具体信息内容,比如告警产生于哪个接口,是哪个业务触发的告警等。网管系统通过解析告警OID以及对应的告警绑定变量来实现对设备的故障管理。
绑定变量信息以如下的表格形式呈现:
OID(变量名) |
含义 |
索引节点 |
类型 |
取值范围 |
1.3.6.1.2.1.2.2.1.1 (ifIndex) |
接口索引 |
ifIndex |
InterfaceIndex |
Integer32 (1..2147483647) |
以上表格中的各项含义如下:
项目 |
说明 |
OID(变量名) |
该绑定变量的OID和变量名,在实际的trap报文中以OID+索引的形式标识 |
含义 |
该绑定变量的含义 |
索引节点 |
该绑定变量的索引节点。如果绑定变量是全局节点,此处为“无” 索引节点用来区分告警对应的不同实例 |
类型 |
该绑定变量在MIB文件中定义的数据类型,对应MIB文件中的SYNTAX子句 |
取值范围 |
该绑定变量在MIB文件中定义的取值范围,对应MIB文件中的SYNTAX子句 |
每个告警节点的绑定变量由若干个MIB节点实例来描述。例如,SNMPv2版本的linkUp告警节点中包括下图所示的5个绑定变量。
组成绑定变量的MIB节点有两类:协议固定类及设备定义类。上图所示的linkUp告警节点包含了2个协议固定类绑定变量和3个自定义类绑定变量,其中:
· 协议固定类绑定变量不需在MIB中描述,所有SNMPv2版本的trap均包括:
¡ sysUpTime.0:表示该告警产生时间,其值为88308。
¡ snmpTrapOID.0:表示该告警的OID,其值为linkUp这个MIB节点的OID。
· 设备定义类绑定变量在MIB中描述,上述linkUp告警的设备定义类绑定变量包括:
¡ ifIndex.2:表示该告警所在接口实例(索引值为2)的接口索引,其值为2。
¡ ifAdminStatus.2:表示该告警所在接口实例(索引值为2)的管理状态,其值为1。
¡ ifOperStatus.2:表示该告警所在接口实例(索引值为2)的操作状态,其值为1。
需要特别说的是,上文示例的linkUp告警节点绑定变量截图为网管软件对告警及其绑定变量进行过OID翻译、枚举值转换后的呈现效果,可读性好,而实际SNMP报文中携带的MIB绑定变量形式更接近于下图(一般可以通过修改网管软件的配置来切换不同的呈现效果):
MIB文档中仅描述设备定义类绑定变量。例如,在“IF-MIB”文档中,linkUp告警节点的绑定变量说明表格如下:
OID(变量名) |
含义 |
索引节点 |
类型 |
取值范围 |
1.3.6.1.2.1.2.2.1.1 (ifIndex) |
接口索引 |
ifIndex |
InterfaceIndex |
Integer32 (1..2147483647) |
1.3.6.1.2.1.2.2.1.7 (ifAdminStatus) |
接口管理状态 |
ifIndex |
INTEGER |
up(1) down(2) testing(3) |
1.3.6.1.2.1.2.2.1.8 (ifOperStatus) |
接口操作状态 |
ifIndex |
INTEGER |
up(1) down(2) testing(3) unknown(4) dormant(5) notPresent(6) lowerLayerDown(7) |
由上表可知,linkUp告警节点有三个绑定变量,且各绑定变量的索引均为ifIndex,则:
· “ifIndex.2”中的“.2”表示当前绑定变量的实例为ifIndex=2。
· “ifAdminStatus.2”中的“.2”表示当前绑定变量的实例为ifIndex=2。
· “ifOperStatus.2”中的“.2”表示当前绑定变量的实例为ifIndex=2。
由于索引变量已出现在绑定变量中,也可以使用绑定变量的值,即“ifIndex.2=2”中的“=2”作为索引值。
自定义类绑定变量的绑定形式灵活多样,例如绑定多级索引变量。下图所示的teTunnelUp告警节点中未绑定索引节点,但是通过绑定变量自身携带的索引信息体现了告警所表述的具体实例:
teTunnelUp告警节点的自定义部分包括:
· teTunnelName.1:表示该告警所在隧道实例(索引值为1)的隧道名称,其值为“Tunnel1”。
· tePathName.1.0:表示该告警所在实例(有两个索引,其值分别为1和0)的管理状态,其值为一个空字符串。
关于teTunnelName.1以及tePathName.1.0的索引部分,需要结合如下两个表节点中索引节点的说明进行理解。
OID(变量名) |
含义 |
索引节点 |
类型 |
取值范围 |
1.3.6.1.2.1.122.1.2.1.2 (teTunnelName) |
TE隧道名 |
teTunnelIndex |
SnmpAdminString |
OCTET STRING (SIZE (1..32)) |
1.3.6.1.2.1.122.1.3.1.2 (tePathName) |
TE隧道路径名 |
teTunnelIndex tePathIndex |
SnmpAdminString |
OCTET STRING (SIZE (0..32)) |
索引节点的定义如下:
节点名称及OID |
最大访问权限 |
数据类型 |
有效范围 |
含义 |
实现规格 |
teTunnelIndex (1.3.6.1.2.1.122.1.2.1.1) |
not-accessible |
Unsigned32 |
Unsigned32 (1..4294967295) |
隧道索引 |
实现与MIB文件定义一致 |
节点名称及OID |
最大访问权限 |
数据类型 |
有效范围 |
含义 |
实现规格 |
tePathIndex (1.3.6.1.2.1.122.1.3.1.1) |
not-accessible |
Unsigned32 |
Unsigned32 (1..4294967295) |
隧道下配置的显示路径优先级 |
实现与MIB文件定义一致 |
由上表可知:
· teTunnelName的索引为teTunnelIndex,索引节点类型为Unsigned32,则“teTunnelName.1”中的“.1”表示当前绑定变量的实例为teTunnelIndex=1。
· tePathName的索引为teTunnelIndex和tePathIndex,索引节点类型为Unsigned32,则“tePathName.1.0”中的“.1.0”表示当前绑定变量的实例为teTunnelIndex=1且tePathIndex=0。
本章节的数据类型定义指数据原始类型,在SNMP报文中数据类型以ASN.1(Abstract Syntax Notation One)抽象数据类型编码,NMS应根据ASN.1格式解析SNMP报文。
数据类型 |
定义 |
Integer32 INTEGER |
-2147483648~2147483647之间的整数 |
OCTET STRING |
任意二进制或文本串 |
OBJECT IDENTIFIER |
以 . 区分的整数串,其中数字不超过128段,每段的取值不超过4294967295 例如:1.3.6.1.2.1.2.2.1.1 |
IpAddress |
长度为4的OCTET STRING,以网络序表示IP地址 |
Counter32 |
单调递增的非负整数,取值范围为0~4294967295 |
Gauge32 |
可增可减的非负整数,取值范围为0~4294967295 |
TimeTicks |
表示时间的非负整数,以0.01秒为单位 |
Counter64 |
单调递增的非负整数,取值范围为0~18446744073709551615 说明:SNMPv1版本不支持此数据类型 |
Unsigned32 |
0~4294967295之间的非负整数 |
数据类型 |
定义 |
BITS |
以命名位表示的枚举 例如: BITS {noDefect(0), lossOfFraming(1), lossOfSignal(2), lossOfPower(3), lossOfSignalQuality(4)},从高位开始第0位置1表示noDefect, 第1位置1表示lossOfFraming,第2位置1表示lossOfSignal,以此类推 |
文本约定类型(Textual Conventions)通过对基本数据类型增加约束提高了参数的可读性,RFC定义了一些基本的文本约定类型,各模块的MIB也可以定义本模块特有的文本约定类型。
下表列举了RFC定义的部分常用数据类型(分别定义在RFC2578/RFC2579/RFC4001中)。
数据类型 |
定义 |
DisplayString |
OCTET STRING (SIZE (0..255)) 取值范围只能为ASCII码的32~126,以及NUL、LF、CR、BEL、BS、HT、VT、FF |
MacAddress |
OCTET STRING (SIZE (6)) 表示IEEE 802.1a协议的MAC地址 |
TruthValue |
INTEGER { true(1), false(2) } |
RowStatus |
INTEGER {active(1), notInService(2), notReady(3),createAndGo(4), createAndWait(5), destroy(6) } 支持行创建操作的表,必须存在类型为RowStatus的行状态节点,该节点用于创建行/删除行操作,详细介绍请参见RFC2579 |
TimeStamp |
TimeTicks 表示事件发生时的sysUpTime节点取值(自系统启动以来经过多少个0.01秒) |
TimeInterval |
INTEGER (0..2147483647) 表示以0.01秒为单位的时间长度 |
DateAndTime |
OCTET STRING (SIZE (8 | 11)) 表示时间字符串,不携带时区的时间字符串长度为8字节,携带时区的时间字符串长度为11字节 该类型的字符串格式为:"2d-1d-1d,1d:1d:1d.1d,1a1d:1d",其含义为:“year-month-day, hour:minute:seconds.deci-seconds, +-时区:时区分钟”。例如:1992-5-26,13:30:15.0,-4:0表示1992年5月26日13:30:15.0(比UTC减少4个时区) |
CounterBasedGauge64 |
Counter64 借用Counter64的定义,用于表示可增可减的64位正整数 |
InetAddressType |
INTEGER {unknown(0), ipv4(1), ipv6(2), dns(16) } internet地址类型定义,必须紧接在InetAddress的对象之前 |
InetAddress |
OCTET STRING (SIZE (0..255)) 通用的internet地址定义,以十六进制表示的网络地址 |
InetAddressIPv4 |
OCTET STRING (SIZE (4)) 表示IPv4网络地址 |
InetAddressIPv6 |
OCTET STRING (SIZE (16|20)) 表示IPv6网络地址,全局IPv6地址长度为16字节,非全局IPv6地址长度为20字节 |
InetAddressDNS |
OCTET STRING (SIZE (1..255)) 表示DNS域名 |
InterfaceIndex |
Integer32 (1..2147483647) 表示接口索引的非零整数 |
SnmpAdminString |
OCTET STRING ( 0.. 255) 包含管理信息的可读字符串 |
RFC |
描述 |
状态 |
RFC1155 |
Structure and identification of management information for TCP/IP-based internets |
Standard |
RFC1157 |
Simple Network Management Protocol (SNMP). |
Historic |
RFC1212 |
Concise MIB definitions. |
Standard |
RFC1213 |
Management Information Base for Network Management of TCP/IP-based internets:MIB-II |
Standard |
RFC2578 |
Structure of Management Information Version 2 (SMIv2). |
Standard |
RFC2579 |
Textual Conventions for SMIv2. |
Standard |
RFC2580 |
Conformance Statements for SMIv2. |
Standard |
RFC3411 |
An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks. |
Standard |
RFC3412 |
Message Processing and Dispatching for the Simple Network Management Protocol (SNMP). |
Standard |
RFC3413 |
Simple Network Management Protocol (SNMP) Applications. |
Standard |
RFC3414 |
User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3). |
Standard |
RFC3415 |
View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP). |
Standard |
RFC3416 |
Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP). |
Standard |
RFC3417 |
Transport Mappings for the Simple Network Management Protocol (SNMP). |
Standard |
RFC3418 |
Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework. |
Standard |
RFC3584 |
Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework. |
Best Current Practice |
RFC3826 |
The Advanced Encryption Standard (AES) Cipher Algorithm in the SNMP User-based Security Model |
Proposed Standard |
RFC4001 |
Textual Conventions for Internet Network Addresses |
Standards Track |
HMAC-SHA-2 Authentication Protocols in User-Based Security Model (USM) for SNMPv3 |
Standards Track |
|
draft-reeder-snmpv3-usm-3desede |
Extension to the User-Based Security Model (USM) to Support Triple-DES EDE in "Outside" CBC Mode |
Draft |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!