当前位置: 首页 > article >正文

snmp MIB详解

MIB(管理信息库,Management Information Base) 是 SNMP(简单网络管理协议)中用于存储和描述网络设备(如路由器、交换机、服务器等)管理信息的数据库。MIB 采用树状结构来组织和管理设备的各种数据,每个数据对象都有一个唯一的标识符,称为 OID(对象标识符,Object Identifier)。通过 SNMP 协议,SNMP 管理器可以访问、修改、删除设备上 MIB 中的数据。

MIB 中的每一个对象都描述了设备的某一属性或状态(例如接口的状态、CPU 使用率、设备的温度等)。SNMP 管理器可以通过 GETSETGETNEXT 请求来查询和修改这些对象的值。

1. MIB 的基本概念

MIB 是一个层次化的数据库,定义了设备、接口、系统、协议等的管理信息。MIB 对象的定义遵循标准,通常由国际标准化组织(ISO)和互联网工程任务组(IETF)制定,也有设备厂商自定义的 MIB。每个 MIB 对象都有一个 OID,OID 是一个唯一的标识符,它描述了对象在 MIB 中的位置。

1.1 MIB 树的结构

MIB 的组织方式是树形的,每个节点代表一个管理对象。MIB 树由多个层次构成,每个层次都有不同的功能和作用。树的根部是由 ISO 定义的标准 MIB 库,接下来是 IETF 定义的标准 MIB 库,最后是设备厂商定义的 MIB 库。

  • 根节点:MIB 树的根节点是由 ISO(国际标准化组织)定义的,树的根节点标识符为 1,也称为 iso。从这个根节点开始,MIB 树逐级分支,形成各种不同类别的管理对象。
  • IETF(Internet Engineering Task Force)节点:IETF 负责定义网络协议、设备状态监控等 MIB 对象。例如,1.3.6.1 表示 IETF 下的 MIB 库。
  • 企业特定的 MIB 对象:每个厂商可以根据自己的需要定义特定的 MIB 对象,通常位于 1.3.6.1.4.1 下。每个厂商在 1.3.6.1.4.1 下有一个唯一的 OID 子树。
1.2 MIB 对象的定义

每个 MIB 对象都由一个对象标识符(OID)和对象类型组成。OID 是一个由多个数字组成的路径(类似于 IP 地址),它标识了 MIB 中对象的层次结构。

  • OID(对象标识符):每个对象在 MIB 树中都有一个唯一的 OID,用于标识该对象。例如,1.3.6.1.2.1.1.1 表示一个设备的系统描述。
  • 对象类型:定义了对象的数据类型。常见的数据类型包括:
    • Integer:整数。
    • String:字符串。
    • Gauge:一种表示可增减的非负值的类型,通常用于表示资源的数量,如网络流量、内存使用等。
    • Counter:递增计数器,常用于统计数量的对象,如传输的字节数。
    • TimeTicks:表示时间的增量,通常用于描述设备的运行时间。
    • IpAddress:表示一个 IP 地址。
    • Oid:表示另一个 OID。
1.3 MIB 对象的实例化

MIB 对象并不是单一的,它们可以有多个实例。例如,MIB 中的 ifTable 对象用来表示设备上所有网络接口的状态,每个接口都有自己的实例。ifTable 对象本身在 MIB 中的 OID 是 1.3.6.1.2.1.2.2,但每个网络接口都有自己的实例,表示为 ifEntry

  • 实例化:例如 1.3.6.1.2.1.2.2.1.2.1 表示设备的第一个接口的描述(ifDescr),1.3.6.1.2.1.2.2.1.7.1 表示接口的状态(ifAdminStatus)。

2. MIB 的标准和自定义

  • 标准 MIB:这些是由国际标准组织(ISO)和互联网工程任务组(IETF)定义的标准 MIB,对所有兼容 SNMP 的设备有效。例如:
    • system:包含设备的基本信息,如系统描述、系统名称等,OID 为 1.3.6.1.2.1.1
    • interfaces:网络接口信息,OID 为 1.3.6.1.2.1.2
    • TCP:TCP 协议的管理信息,OID 为 1.3.6.1.2.1.6
    • UDP:UDP 协议的管理信息,OID 为 1.3.6.1.2.1.7
  • 企业特定 MIB:每个设备厂商可以根据需要定义自有的 MIB 对象。这些 MIB 对象通常位于 1.3.6.1.4.1 下,每个厂商都有一个唯一的编号。例如:
    • 思科的企业 MIB OID 是 1.3.6.1.4.1.9
    • 华为的企业 MIB OID 是 1.3.6.1.4.1.2011

厂商定义的 MIB 中包含了设备的厂商特定信息,例如设备型号、固件版本、硬件状态等。

3. 常见的 MIB 对象

以下是一些常见的 MIB 对象及其用途:

3.1 System MIB(系统管理信息)
  • sysDescr (1.3.6.1.2.1.1.1):设备描述信息,包含设备的类型、硬件信息等。
  • sysName (1.3.6.1.2.1.1.5):设备的名称。
  • sysUpTime (1.3.6.1.2.1.1.3):设备的运行时间,通常以 TimeTicks 格式表示。
3.2 Interfaces MIB(接口管理信息)
  • ifTable (1.3.6.1.2.1.2.2):接口信息表,包含设备所有网络接口的状态信息。
  • ifDescr (1.3.6.1.2.1.2.2.1.2):接口描述(如网卡名称)。
  • ifOperStatus (1.3.6.1.2.1.2.2.1.8):接口的运行状态,如 updown
  • ifInOctets (1.3.6.1.2.1.2.2.1.10):接收的字节数,通常用于监控网络流量。
3.3 TCP MIB(TCP 协议管理信息)
  • tcpRtoAlgorithm (1.3.6.1.2.1.6.3.1):TCP 重传算法的类型。
  • tcpEstabResets (1.3.6.1.2.1.6.6.9):TCP 建立的连接数。
3.4 UDP MIB(UDP 协议管理信息)
  • udpInDatagrams (1.3.6.1.2.1.7.1.1):接收到的 UDP 数据报文数。
  • udpOutDatagrams (1.3.6.1.2.1.7.1.2):发送的 UDP 数据报文数。

4. MIB 和 OID 的关系

MIB 对象通过 OID 唯一标识。OID 是由多个数字组成的路径,表示 MIB 树中的特定节点。OID 可以用来直接访问设备的管理对象。

  • OID 示例
    • 1.3.6.1.2.1.1.1 表示系统描述信息。
    • 1.3.6.1.2.1.2.2.1.2.1 表示设备第一个网络接口的描述信息(ifDescr)。

通过这些 OID,SNMP 管理器能够访问设备的各种状态信息。

5. 使用 MIB 查询和配置设备

SNMP 管理器使用 MIB 通过 SNMP 协议向设备发送请求,获取 MIB 对象的值或修改其值。例如,使用 snmpget 命令可以查询设备的 MIB 对象


http://www.kler.cn/a/411391.html

相关文章:

  • 4.6 JMeter HTTP信息头管理器
  • AI时代的PPT革命:智能生成PPT工具为何备受青睐?
  • 网络安全学习77天(记录)
  • (三)手势识别——动作识别应用【代码+数据集+python环境(免安装)+GUI系统】
  • 自研芯片逾十年,亚马逊云科技Graviton系列芯片全面成熟
  • 直播技术-Android基础框架
  • UE5 实现组合键触发事件的方法
  • 滑动窗口篇——如行云流水般的高效解法与智能之道(3)
  • 第二十二周周报:Stable Diffusion
  • box-im学习
  • 跨部门文件共享安全:平衡协作与风险的关键策略
  • vscode添加环境变量(mujoco)
  • 2024.9 Pruning Cycles in UMLS Metathesaurus: A NeuroSymbolic AI Approach
  • C++设计模式(单例模式)
  • Ubuntu下Docker容器java服务往mysql插入中文数据乱码
  • UE5材质混合模式
  • mysql深度分页优化
  • FPGA中的电平标准
  • nodejs第三方库sharp对图片的操作生成新图片、压缩、添加文字水印及图片水印等
  • 第二十二课 Vue中的组件切换
  • C#中面试的常见问题007
  • redis工程实战介绍(含面试题)
  • 【es6】原生js在页面上画矩形层级等问题的优化(二)
  • C# 程序来计算三角形的面积(Program to find area of a triangle)
  • 数据结构 (11)串的基本概念
  • 异或-java-leetcode