关于SNMP的MIB文件的语法简述
源地址:https://blog.csdn.net/carechere/article/details/51236184
对MIB文件中一些常见的宏定义的描述
1.DEFINITIONS ::= BEGIN
SNMP始终使用ASN.1概念中的描述块(module)来组织ASN.1对象的,ASN.1的描述块是一些相关描述语句的集合,module的结构如下
<<module>> DEFINITIONS ::= BEGIN
<<linkage>>
<<declarations>>
END
2.<<basetype>> ::= TEXTUAL-CONVENTION
定义了对标准数据类型的进行扩展的语法
很多MIB定义中都会先定义一些基于标准类型的扩展类型,如:
CiFlowDirection ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The direction of data flow thru a circuit.
transmit(1) - Only transmitted data
receive(2) - Only received data
both(3) - Both transmitted and received data."
SYNTAX INTEGER {
transmit(1),
receive(2),
both(3)
}
CiFlowDirection 是基于INTEGER的枚举类型
3.<<mibname>> MODULE-IDENTITY
该定义添加了一个公共的标示段来对整个信息描述块进行顶层的文字描述,以加强对管理MIB描述块的文档管理和控制,每个MIB定义中都会有该定义。
如:
circuitIfMIB MODULE-IDENTITY
4.OBJECT-IDENTIFIFIER
声明一个节点
如:
atmClpTaggingNoScr OBJECT-IDENTITY
5.OBJECT-TYPE
如:
ciCircuitTable OBJECT-TYPE
SYNTAX SEQUENCE OF CiCircuitEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Circuit Interface Circuit Table."
::= { ciObjects 1 }
包括了SNMP定义该管理对象的全部信息,相当于一个模板。
表,实体,叶子都是该类型。
SNMPv2中对SNMP的兼容性做了规定,主要是通过引入三个宏: OBJECT-GROUP,MODULE-COMPLIANCE,AGENT-CAPABILITIES.
6.OBJECT-GROUP
定义相关管理对象集合以及他们彼此关联的一致性程度。OBJECT-GROUP声明的MIB对象是实现该组所必须包括的MIB对象的最小集合。也就是说,要实现这个组,必须包括这些对象。
7.MODULE-COMPLIANCE
通过定义模块内所包含的组来保证模块的兼容性。
规定了要实现该模块必须包含的组的最小集合。
其中MANDATORY-GROUPS规定了此模块必须实现的组的名称。GROUP子句说明条件必须活条件可选的组。
8.AGENT-CAPABILITIES
管理代理实现了模块中的哪些组以及这些组中的MIB对象在实现时和原定义的差别在管理信息结构中由此宏定义表示。此宏定义在实际应用中很少见。
9.OBJECT-IDENTITY
对象标示宏,此宏定义用于说明对象标示符(OBJECT-IDENTIFIER),给对象标示符的说明加上附加信息,包括状态,文字说明等,可用于对一个表中几个参数的不同组合的意义的说明。
10.NOTIFICATION-TYPE
说明了SNMPv2的trap格式。定义了通知类型报文中传输的数据。
MIB file的开始和结束
所有的MIB file的都以DEFINITIONS ::= BEGIN关键字开始,以END结束。我们所有添加的节点均应在此之间。
XXX-TEST-MIB DEFINITIONS ::= BEGIN
……
……
END
模块引用区域
在MIB开始关键字后,即是模块引用区域,利用IMPORTS标识,所有的模块引用及群组的引用均使用FROM关键字说明其出处,引用使用分号(;)结束。
注:分号,英文全角分号。
在一个MIB file中,所有引用到的数据类型均应有引用。
如:
IMPORTS
enterprises
FROM RFC1155-SMI
Integer32
FROM SNMPv2-SMI
DisplayString
FROM SNMPv2-TC;
MIB核心部分(对象标识,标量节点,表格对象的定义)
对象标识
对象标识用关键字OBJECT IDENTIFIER声明,它的主要功能是用来将一类功能的对象结合起来。展开或折叠此对象标识即可展开或折叠此类功能的所有对象。
在ASN.1中,对象标识符类型描述对象的抽象信息,MIB树中的每一个标号是用对象标识符描述的。
例如:
xxx OBJECT IDENTIFIER ::= {enterprises 22566}
xxx是一个子树支,它定义在enterprises树支下,“22566” 是子树xxx在父树enterprises下的一个唯一对象标识符。
其编译后的视图为:
标量节点
在每一个树支下,可以定义被管理资源的管理对象,其中一类是标量节点(直观地看象树叶的节点)。利用OBJECT-TYPE定义。其定义的句法如下:
objectname OBJECT-TYPE
SYNTAX (syntax)
MAX-ACCESS (access)
STATUS (status)
DESCRIPTION (description)
::= { ( parent ) ( number )
关键字 |
说明 |
备注 |
objectname |
被管理对象的名字 |
必须以小写字母开头 |
OBJECT-TYPE |
每一个叶子对象所必须的关键字 |
|
syntax |
被管理对象类型的关键字 |
Counter(计数) Gauge(标准) DisplayString(显示字符串) Interger(整数) TimeTicks(时间戳) NetworkAddress(网络地址) IpAddress(Ipv4地址) |
access |
该节点支持的访问方式 |
read-only(只读) read-write(读写) read-create(读和创建) no-accessible(不可访问) |
status |
该节点的状态 |
current (当前的) deprecated (反对的) obsolete(废弃的) |
description |
对被管理对象的功能、特征等进行描述的关键字 |
例如:
Xxxx OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"
"
::= { xxxx 1 }
表类型
表类型是一个特殊类型的声明,表内声明的对象称为列对象,表对象可以看作是一些标量对象的集合。利用SEQUENCE和SEQUENCE OF定义表格和表格中的行, 通常来说,表格对象的名字后面加有后缀Table,行对象的名字后面加有后缀Entry。
其声明如下:
tablename OBJECT-TYPE
SYNTAX SEQUENCE OF Entrytype
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION (description)
:: ={ (parent) (number)}
entryname OBJECT-TYPE
SYNTAX Entrytype
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION description
INDEX { index list }
:: ={ (tablename) 1}
(Entrytype) :: =
SEQUENCE {
(column1) (column1type),
(column2) (column1type),
( columnN) (columnNtype) }
关键字 |
说明 |
备注 |
tablename |
表格名 |
xxxxTable首字母小写 |
Entrytype |
表对象名 |
XxxxEntry首字母大写 |
not-accessible |
访问方式 |
此处必须是not-accessible |
entryname |
行名 |
和XxxxEntry名相同,首字母小写xxxxEntry |
description |
描述信息 |
源码如下:
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
关于SNMP的MIB文件的语法简述的更多相关文章
- .md文件的语法
md全称是Macdown,.md文件可以当记事本一样使用,作为编辑软件,还可以自己添加样式,图片,链接等,可以用记事本打开,也可以保持样式排版转换为html文件,语法比较简单..md除了编辑容易的优势 ...
- eclipse加速之禁用JS、jsp等文件的语法验证,eclipsejs
eclipse加速之禁用JS.jsp等文件的语法验证 去除eclipse的JS验证:将windows->preference->Java Script->Validator-> ...
- php -l 检查文件是否语法错误
有时候在进行网页开发的时候,后台文件的语法错误比较难检查出来,这时候使用php -l filename可对文件的语法进行检查.
- eclipse *.vm 文件,语法高亮
eclipse *.vm 文件,语法高亮按如下方式不起作用,原因不明.设置文件打开时使用的编辑器General>>Editors>>File Associations 下述方试 ...
- Atom打开txt文件中文乱码解决、指定文件的语法格式、win10中禁止睡眠
1.Atom中文乱码解决 首先保证打开的txt文件的编码格式为UTF-8无BOM编码格式,可以使用Notepad++更改,如下图所示: 然后再在atom中打开文件,并右键点击文件内容的任意位置,Cha ...
- 如果习惯VisualStudio,可以如下实现.Shader文件的语法高亮。
如果习惯VisualStudio,可以如下实现.Shader文件的语法高亮. 下载作者donaldwu自己添加的关键词文件usertype.dat.其包括了Unity ShaderLab的部分关键字, ...
- SNMP mib文件说明
MIB file的开始和结束 所有的MIB file的都以DEFINITIONS ::= BEGIN关键字开始,以END结束.我们所有添加的节点均应在此之间. XXX-TEST-MIB DEFINIT ...
- SNMP与MIB
简单网络管理协议(SNMP:Simple Network Management Protocol)是一套网络管理协议,注意,SNMP是一个强大的网络管理协议,而不是"简单"的.利用 ...
- .md文件 Markdown 语法说明
Markdown 语法说明 (简体中文版) / (点击查看快速入门) 概述 宗旨 兼容 HTML 特殊字符自动转换 区块元素 段落和换行 标题 区块引用 列表 代码区块 分隔线 区段元素 链接 强调 ...
随机推荐
- 解决 python 读取文件乱码问题(UnicodeDecodeError)
解决 python 读取文件乱码问题(UnicodeDecodeError) 确定你的文件的编码,下面的代码将以'utf-8'为例,否则会忽略编码错误导致输出乱码 解决方案一 with open(r' ...
- 深入解析 H.265 编码模式,带你了解Apple全面推进H.265的原因
今天我们聊聊视频编码.视频文件亘古以来存在一个矛盾:高清画质和视频体积的冲突,相同编码标准下,视频更高清,视频体积更大.因此,应用更先进的视频编码标准,降低视频体积,可以大幅降低网站的流量消耗. 目前 ...
- 『追捕盗贼 Tarjan算法』
追捕盗贼(COCI2007) Description 为了帮助警察抓住在逃的罪犯,你发明了一个新的计算机系统.警察控制的区域有N个城市,城市之间有E条双向边连接,城市编号为1到N. 警察经常想在罪犯从 ...
- Chapter 5 Blood Type——12
I blinked, my mind going blank. Holy crow, how did he do that? 我眨着眼睛,心里一片空白.天哪,他是怎么做到的? "Er, wh ...
- 阿里云HBase全新发布X-Pack 赋能轻量级大数据平台
一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...
- mysql数据库迁移文档
数据库迁移文档 一.需求 确保数据库稳定的运行,为开发人员提供方便的测试数据库和生产数据库的环境. 二.数据库整体架构(master/slave) 1.slave数据库安装 rpm -Uvh http ...
- 如何正确使用Java泛型
前言 Java 1.5之前是没有泛型的,以前从集合中读取每个对象都必须先进行转换,如果不小心存入集合中对象类型是错的,运行过程中转换处理会报错.有了泛型之后编译器会自动帮助转换,使程序更加安全,但是要 ...
- C语言之递归
递归例子如下: #include <stdio.h> /*函数声明*/ void digui(int n); int main() { ; digui(n); ; } void digui ...
- [转]react 部署在ngnix上(windows环境)
本文转自:https://blog.csdn.net/wly_er/article/details/82348593 目录 1.下载nginx. 2.测试nginx 3.配置react项目 4.ngi ...
- Apollo配置中心动态刷新日志级别
Apollo配置中心动态刷新日志级别 添加次配置后,当在apollo上面调整日志级别不需要重启服务器,马上就能生效 /** * 结合apollo动态刷新日志级别 * @author: nj * @da ...