MIB结构和语法
更新时间:2024-04-26 12:02:01 阅读量: 综合文库 文档下载
- MIB树结构推荐度:
- 相关推荐
1 MIB基础知识
MIB(Management Information Base,管理信息库)是MO(Managed Object管理对象)定义的集合。MIB文件是按照ASN.1定义的文本文件。
每个管理对象都对应一个节点,并且用OID(Object Identifier)来标识;数据管理对象对应叶子节点;所有的管理对象形成了一棵管理树。
1.1 基本概念
对象标识:对象标识是一种数据类型,它指明一种授权命名的对象。表示为一个整数序列,以点分隔。
MIB树:表示对象标识的整数构成一个树型结构,类似于DNS和文件系统。 对象标识从顶部开始,顶部没有标识,以root表示。所有的MIB变量都从1.3.6.1.2.1这个标识开始。树上的每个节点还有文字名,例如:1.3.6.1.2.1就和iso.org.dod.internet.memt.mib对应。
根 ccitt(0) iso(1) joint-iso-ccitt(2) standard(0) registration authority(1) member body(2) identified organization(3) …… dod(6) internet(1) 1.3.6.1 directory(1) mgmt(2) experimental(3) private(4) security(5) snmpv2(6) mib-2(1) 1.3.6.1.2.1 enterprises(1) 1.3.6.1.4.1 …… system(1) interface(2) at(3) ip(4) icmp(5) tcp(6) udp(7) egp(8) …… …… …… …… …… …… …… …… …… 图1 管理信息库的对象命名举例
1.2 MIB分类
MIB依据数据的通用性可以分为:
(1)标准MIB:rfc1213, rfc1471 , rfc1724, rfc2618等等 注: 通用性MIB rfc1213习惯称为MIB-II
(2)自定义MIB:当标准MIB信息不足以描述厂商设备,需要自定义MIB,
但首先要向IANA组织申请编号。
1.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):定义了这个对象的实现需要:必备的(被管理节点必须实现该对象);可选的(被管理对象可能实现该对象):或者已废弃的(被管理设备不需要再实现该对象)
1.4 MIB两种对象类型
(1)标量(Type-Specific Objects): sysDescr OBJECT-TYPE
SYNTAX DisplayString (SIZE(0..255))::= {system 1} OID: mib-2.system.1.0
(2)表量(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
2 自定义MIB
自定义MIB包含的内容有:模块级别信息、对象定义(OBJECT TYPE,包括标量对象和表对象)、陷阱定义(TRAP TYPE)。
第1行是MIB开始 第2-7行引入外部定义 第8-13行是模块信息定义 第19-28行是MO定义
第30-36行是TRAP定义 第37行是MIB结束
2.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
2.2 自定义MIB基本原则
(1)优先采用标准MIB:如果确实无法满足要求才考虑自定义MIB (2)采用最新的SNMPV2-SMI来定义MIB:使用最新的SNMPv2定义MIB可以使得对MIB的描述更详尽,可用的类型也更丰富。
(3)层次清晰,定义时顺序合理 — 先定义根节点。
— 在定义对象前,如有自定义类型,应当先书写自定义类型的定义。 — 先定义标量对象,再表量对象。 (4)符合惯例,以标准MIB为参考
3 理解和掌握ASN.1句法
3.1 对象标识符 类型(OBJECT IDENTIFIER)
在ASN.1中,对象标识符 类型 描述对象的抽象信息,MIB树中的每一个标号是用对象标识符描述的。由于树的各个分支是用数值表示的,所以实际上对象标识符是一个整数数值的序列。它用OBJECT IDENTIFIER来声明,如:
myBranch OBJECT IDENTIFIER ::= { parentBranch 10 }
其中myBranch是一个子树支,它定义在parentBranch树支下,“10”是子树myBranch在父树支parentBranch下的一个唯一对象标识符,即通常所说的OID。在parentBranch树支下,可以定义多个子树支,但子树支的名字和数字(如上的10)不能重复,即必须是唯一的。
3.2 标量(叶子)对象标识符——简单变量
在一个树支下,读者可以定义多个子树,也可以定义被管理资源的管理对象,其定义的句法如下:
(objectname) OBJECT-TYPE SYNTAX (syntax) ACCESS (access) STATUS (status)
DESCRIPTION (description) ::= { (parent) (number) }
sysContact OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255)) ACCESS read-write STATUS mandatory DESCRIPTION
\ for this managed node, together with information on how to contact this person.\ ::= { system 4 } 以上的各部分解释如下:
(1)(objectname). 这是被对象的名字,ASN.1句法要求所有对象的名字必须以小写字母开头,而且该名字在MIB中必须是唯一的。
(2)OBJECT-TYPE.这是一个每一个叶子对象的所必须的关键字。 (3)SYNTAX.被管对象类型的关键字,说明随后跟着的是一个类型。 (4)(syntax).被管对象的类型,ASN.1句法要求所有的对象类型必须以大写字母开头,其中已预定义了的类型有Counter、Gauge、DisplayString、INTEGER等等,请参阅“3.对象语法定义”及“5.ASN.1的派生类型”。
(5)ACCESS.被管对象的访问方式的关键字。在SNMP第二版中为MAX-ACCESS关键字。
(6)(access).被管对象的访问方式,可为如下列举值中之一:read-only、read-write、 no-accessible,SNMP第2版中又新增了read-create。
(7)STATUS.被管对象的状态的关键字。
(8)(status).可取的值为:mandatory 、optional、obsolete、deprecate(SNMP第1版中),current、obsolete、deprecate(SNMP第2版)。
其中:mandatory为该对象的状态是必备的 optional为该对象的状态是可选的 obsolete为该对象的状态是不再使用
deprecate使用该值使得MIB的某些部分标记为过时,被标记为“废弃”的对象将从现行版本中删除,并在新的MIB版本中标记为“过时”。
current为该对象的状态是当前可用的。
(7)DESCRIPTION.对被管对象的功能、特征等等进行描述的关键字。 (8)(description).被管对象的文本描述。须用双引号把其文本说明括起来,有时由于用MIB编译器编译结果太大时,可以把文本说明删除,即只保留一个空的双引号。
(9)(parent).包含此叶子对象的树支,即叶子对象的父亲必须是用“OBJECT IDENTIFIER”声明。
(10)(number).在此父树支下的第几个叶子对象,这个数字在此父树支下必须是唯一的。一般number都是从取1开始的。例如:“::={ myObject 22 }”,则在myObject树支下22必须是唯一的,否则在用MIB编译器(如pSOS所提供的MIB编译器)进行编译时会提示有错。
除此之外,还有一些关键字:UNITS、INDEX、REFERENCE、DEFVAL等等,分别代表被管对象的单位、索引、参考、缺省值。这些关键字都并不是很重要,有兴趣的读者可参阅RFC1155的说明。值得注意的是INDEX关键字在表对象定义中必须存在的,否则表内的对象不能使用。
3.3 表类型
SNMP表是一个特殊类型的声明,表内声明的对象称为列对象,声明如下: (tablename) OBJECT-TYPE SYNTAX SEQUENCE OF (tabletype) ACCESS not-accessible STATUS mandatory DESCRIPTION (description) ::= { (parent) (number) }
(entryname) OBJECT-TYPE SYNTAX (tabletype) ACCESS not-accessible STATUS mandatory DESCRIPTION (description) ::= { (tablename) 1 }
(tabletype) ::= SEQUENCE {
(column1) (column1type), (column2) (column2type), (columnN) (columnNtype) }
读者也许注意到(tablename)和(entryname)中的ACCESS为not-accessible,这是因为表和行对象没有叶子对象,因此不能被SNMP访问。ASN.1句法中关于定义一个表的规则如下:
(1) 在表名(tablename)的命名中,必须要有一个“Table”关键字,例如定义一 个表对象“myTable”
(2) 同样,在表对象下面的表目(entryname)也须有一个“Entry”关键字,例如 “myEntry”。
(3) (column1)是表的列对象,(column1type)是此列对象的类型 为了加深理解,举个
子如下:
myTable OBJECT-TYPE SYNTAX SEQUENCE OF MyEntry ACCESS not-accessible STATUS mandatory
DESCRIPTION \这是一个表名为myTable的表对象. \
myEntry OBJECT-TYPE SYNTAX MyEntry ACCESS not-accessible STATUS mandatory DESCRIPTION
\这是一个表的表目,其中INDEX关键字必须存在,它的索引值为列对象中的第一个对象\
INDEX {myIndex } ::={ myTable 1 }
MyEntry::= SEQUENCE { myIndex INTEGER, myColumn1 INTEGER,
myColumn2 OCTET STRING, }
上表中有三个列对象myIndex、myColumn1、myColumn2
源码如下:
XXX-TEST-MIB DEFINITIONS ::= BEGIN IMPORTS enterprises
FROM RFC1155-SMI Integer32
FROM SNMPv2-SMI DisplayString
FROM SNMPv2-TC;
xxx OBJECT IDENTIFIER ::= {enterprises 22566}
zkClassInfoTable OBJECT IDENTIFIER ::= {xxx 1} zkClassInfoTable2 OBJECT IDENTIFIER ::= {xxx 2} zkClassInfoTable OBJECT-TYPE SYNTAX SEQUENCE OF ZkClassInfoEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION \ This is test table. \ ::= {xxx 1}
zkClassInfoEntry OBJECT-TYPE SYNTAX ZkClassInfoEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION \ This is teat entry. \ INDEX {zkClassInfoIndex} ::= {zkClassInfoTable 1} ZkClassInfoEntry ::= SEQUENCE { zkClassInfoIndex Integer32, zkClassInfoSex Integer32, zkClassInfoAge Integer32, zkCLassInfoName DisplayString,
zkClassInfoAddress DisplayString }
zkClassInfoIndex OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-write STATUS current DESCRIPTION \ \ ::= {zkClassInfoEntry 1}
zkClassInfoSex OBJECT-TYPE SYNTAX Integer32 { man(1), woman(2) } MAX-ACCESS read-write STATUS current DESCRIPTION \ \ ::= {zkClassInfoEntry 2}
zkClassInfoAge OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-write STATUS current DESCRIPTION \ \ ::= {zkClassInfoEntry 3}
zkCLassInfoName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-write STATUS current DESCRIPTION \ \ ::= {zkClassInfoEntry 4}
zkClassInfoAddress OBJECT-TYPE SYNTAX DisplayString
MAX-ACCESS read-write STATUS current DESCRIPTION \ \ ::= {zkClassInfoEntry 5} zkClassInfoTable2 OBJECT-TYPE SYNTAX SEQUENCE OF ZkClassInfoEntry2 MAX-ACCESS not-accessible STATUS current DESCRIPTION \ This is test table. \ ::= {xxx 2}
zkClassInfoEntry2 OBJECT-TYPE SYNTAX ZkClassInfoEntry2 MAX-ACCESS not-accessible STATUS current DESCRIPTION \ This is teat entry. \ INDEX {zkClassInfoIndex} ::= {zkClassInfoTable2 1} ZkClassInfoEntry2 ::= SEQUENCE { zkClassInfoSex2 Integer32, zkClassInfoAge2 Integer32, zkCLassInfoName2 DisplayString, zkClassInfoAddress2 DisplayString } zkClassInfoSex2 OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-write STATUS current DESCRIPTION \ \ ::= {zkClassInfoEntry2 1} END
XXX-TEST_MIB DEFINITIONS ::= BEGIN IMPORTS enterprises
FROM RFC1155-SMI Integer32
FROM SNMPv2-SMI DisplayString
FROM SNMPv2-TC;
xxx OBJECT IDENTIFIER ::= {enterprises 40256}
zkClassInfoTable OBJECT IDENTIFIER ::= {xxx 1} zkClassInfoTable2 OBJECT IDENTIFIER ::= {xxx 2} zkClassInfoTable OBJECT-TYPE SYNTAX SEQUENCE OF ZkClassInfoEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION \ This is test table. \ ::= {xxx 1}
zkClassInfoEntry OBJECT-TYPE SYNTAX ZkClassInfoEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION \ This is teat entry. \ INDEX {zkClassInfoIndex} ::= {zkClassInfoTable 1} ZkClassInfoEntry ::= SEQUENCE { zkClassInfoIndex Integer32, zkClassInfoSex Integer32, zkClassInfoAge Integer32, zkCLassInfoName DisplayString, zkClassInfoAddress DisplayString }
zkClassInfoIndex OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-write STATUS current DESCRIPTION \ \ ::= {zkClassInfoEntry 1}
zkClassInfoSex OBJECT-TYPE SYNTAX Integer32 { man(1), woman(2) } MAX-ACCESS read-write STATUS current DESCRIPTION \ \ ::= {zkClassInfoEntry 2}
zkClassInfoAge OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-write STATUS current DESCRIPTION \ \ ::= {zkClassInfoEntry 3}
zkCLassInfoName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-write STATUS current DESCRIPTION \ \ ::= {zkClassInfoEntry 4}
zkClassInfoAddress OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-write STATUS current DESCRIPTION
\ \ ::= {zkClassInfoEntry 5} zkClassInfoTable2 OBJECT-TYPE SYNTAX SEQUENCE OF ZkClassInfoEntry2 MAX-ACCESS not-accessible STATUS current DESCRIPTION \ This is test table. \ ::= {xxx 2}
zkClassInfoEntry2 OBJECT-TYPE SYNTAX ZkClassInfoEntry2 MAX-ACCESS not-accessible STATUS current DESCRIPTION \ This is teat entry. \ INDEX {zkClassInfoIndex} ::= {zkClassInfoTable2 1} ZkClassInfoEntry2 ::= SEQUENCE { zkClassInfoSex2 Integer32, zkClassInfoAge2 Integer32, zkCLassInfoName2 DisplayString, zkClassInfoAddress2 DisplayString } zkClassInfoSex2 OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-write STATUS current DESCRIPTION \ \ ::= {zkClassInfoEntry2 1} END
正在阅读:
MIB结构和语法04-26
体育教师个人年度工作总结参考例文04-28
黑龙江省大庆实验中学2018届高三上学期期中考试理科综合化学试题 含解析01-02
合作框架协议(增资扩股)03-14
中英关于香港问题的谈判10-17
反担保质押合同(完整版)_104-29
陈氏家谱10-05
计算机仿真论文09-18
我们的民族小学作文06-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 语法
- 结构
- MIB
- 中学物理实验技能训练讲义正文 - 图文
- 初中数学北师大版《八年级上》《第一章 勾股定理》精选同步练习
- “地球的内部结构”教学实录(湘教版)
- 广东省佛山市顺德区均安中学高中语文 第四单元 孔雀东南飞学案
- 《深入理解LINUX内存管理》学习笔记
- 装配工艺基础
- 保沧高速河间服务区项目水资源论证报告(终) - 图文
- 冀教版小学三至六年级上册信息技术教学工作总结
- 技术方法笔记 - 图文
- 多情柳永
- 多肉展活动策划书
- 村(居)安全生产及突发事件应急预案
- 本特利TSI3500 - 培训资料及总结
- 拌合站验收申报材料
- 股权结构、制度环境与股价信息含量—来自中国股票市场的证据
- 当前企业成本管理工作中问题与对策
- 四上语文复习资料
- 重庆市国有土地上房屋征收与补偿办法(暂行)渝办发〔2011〕123
- 2.2中国军民维护国家主权的斗争
- 高三数学回归教材训练答案