SNMP MIB(信息管理库)格式剖析
MIB 是一个信息管理库,在该库中包含了大量的对象,这些对象有自己唯一的位置和名字。那么它们是如何进行区分的呢?本节将介绍这些信息格式。
SNMP 的管理信息库采用和域名系统 DNS 相似的树形结构,如图所示。
上图所示为管理信息库中的一部分信息。最上面部分为根,没有名字,其余部分都是节点,由一个专用的名字和数字这两部分构成。这些名字不是随便分配的,而是由一些权威组织进行管理和分配的。
上图中的每一个节点表示一个被管理的对象,每一个对象都可以从根开始找出一条唯一的路径,这个路径就是对象标识符 OID,它是以点
其中,mib 下的分组有 system 组、interfaces 组和 at 组等。
常用的数据类型及含义如下:
对象标识符(OID)
管理信息库 MIB 指明了网络元素所维持的变量,即能够被管理进程查询和设置的信息。MIB 给出了网络中所有可能的被管理对象集合的数据结构。SNMP 的管理信息库采用和域名系统 DNS 相似的树形结构,如图所示。
上图中的每一个节点表示一个被管理的对象,每一个对象都可以从根开始找出一条唯一的路径,这个路径就是对象标识符 OID,它是以点
.
进行分隔的整数序列。例如,对象标识符 1.3.6.1.2.1,表示对象 iso.org.dod.internet.mgmt.mib。
对象下面的分组
在管理信息库 MIB 中,管理对象下面会被分为若干个组。例如,管理对象 mib 的分组如图所示。数据类型(值类型)
管理信息库 MIB 用于收集和储存管理信息(管理对象的状态和统计信息),并且能够使 NMS 通过 SNMP 代理查询对象信息或进行设置。而 MIS 用于定义通过 SNMP 协议可访问对象的规则,它定义在 MIB 中使用的数据类型。常用的数据类型及含义如下:
- Integer:整数类型,有多种形式。有些整型变量没有范围限制,有些整型变量定义为特定的数值。例如,IP 的转发标志只有允许转发或者不允许转发。有些整型变量定义包含特定的范围,如 UDP 和 TCP 的端口号从 0~65535。
- OCTER STRING:0 或多个 8bit 字节,每个字节值在 0~255 之间。
- Display String:0 或多个 8bit 字节,但是每个字节必须是 ASCII 码。在 MIB-II 中,所有该类型的变量不能超过 255 个字符,但可以为 0 个字符。
- OBJECT IDENTIFIER:对象标识符。
- NULL:表示相关的变量没有值。例如,在 get 或 get-next 操作中,变量的值就是 NULL。因为这些值还没有获取。
- IpAddress:以网络序表示的 IP 地址。因为它是一个 32 位的值,所以定义为 4 个字节。
- PhysAddress:OCTER STRING 类型,代表物理地址。例如,以太网物理地址为 6 个字节。
- Counter:以网络序表示的 IP 地址。它是一个 32 位的值,被定义为 4 个字节。
- Gauge:非负整数,取值范围为 0~4294976295(或增或减)。达到最大值后锁定,直到复位。例如,MIB 中的 tcpCurrEstab 就是这种类型,它代表目前在 ESTABLISHED 或 CLOSE_WAIT 状态的 TCP 连接数。
- TimeTicks:时间计数器,以 0.01 秒为单位递增,但是不同的变量可以有不同的递增幅度。所以在定义这种类型变量时,必须指定递增幅度。
- SEQUENCE:用于列表。这一数据类型与大多数程序设计语言中的 structure 类似。一个 SEQUENCE 包括 0 个或多个元素,每一个元素可以是另一个 ASN.1 数据类型。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算