可以从
链接: https://pan.baidu.com/s/1sfIWXOSitc7kNrD-CtqUYw 提取码: v3n3
下载Mib Builder等相关工具
打开Mib Builder 如下
选择下一步
填入公司名称 后面选中一个id 也可以点击后面的3个点从已定义的module选择一个
输入mib module的名称
这里我们去掉默认创建的一些字段,然后点击完成
点击完成后我们会看到一个这样的界面
左侧的是MIB树 最上面第一个是我们创建树节点的地方 第三个我们可以定义一些自定义的类型
例如我们可以把右边的Type assignment 拖过去
然后设置相关的值 假设我们自定义一个LED状态的类型有on off两个值 默认是int值 我们可以点击...进去 针对int值我们可以有3种方式 一个就是简单的 第二种类似于一个枚举 第三种就是一个范围
当然我们也可以选择其他值 每个类型都有相应的详情设置
然后我们开始在上面enterprises下面新建节点
首先创建的是module,我们把右侧的Module Identify拖过去
创建好module后 我们可以根据不同的场景场景不同的节点 Object idetify代表的是中间节点 例如这里我们创建两个中间节点
然后我们可以再下面创建其他的节点 例如标量节点 这里我们创建了两个标量节点
我们也可以创建表格节点Object-Tpye(Table)
表格节点创建好后会自动帮我们创建一个Object -Type(Row) 行对象行 并再其下面创建一个Object Type(Columnar)列对象 注意一个Object-Tpye(Table)下面只能有一个Object -Type(Row) Object -Type(Row)下面可以有多个Object Type(Columnar)
这里我们拖了3个 列
MIB 树中标量对象位于 MIB 树的叶子节点,表示单个管理对象(如系统时间、设备型号等)
MIB 表(MIB Table)由行对象(Row)和列对象(Column)组成,存储结构化数据(如网络接口列表)一般用SYNTAX SEQUENCE OF明确声明这是一个表
我们还可以创建一个组对象
然后把前面创建的两个标量对象添加到组里面 点击...
创建完组后要选择一个座位索引
OBJECT-GROUP 是一个用于逻辑分组相关管理对象的宏定义,其核心作用是为网络管理员提供更高效的管理和访问控制机制
逻辑分组:将功能相关或类别相似的 MIB 对象(如标量、表、通知)归类到同一组中,便于统一管理和查询。
访问控制:通过组级别定义 SNMP 的读写权限(如 `read-view` 或 `write-view`),简化对多个对象的访问策略配置。
然后我们还可以再创建一个Notification-Type 也就是我们所说的TRAP
现在 我们基本大部分类型都创建了 然后我们就可以导出mib文件 导出如果MIB文件有问题 根据提示修改即可
例如把所有的节点加入group,trap则新建一个notification group放入其中 另外就是 table里面索引的范围不能从0开始
最终的MIB文件如下
--
--
-- MIB generated by MG-SOFT Visual MIB Builder Version 6.0 Build 88
-- Friday, July 25, 2025 at 14:58:55
--
TEST-MODULE DEFINITIONS ::= BEGIN
IMPORTS
OBJECT-GROUP, NOTIFICATION-GROUP
FROM SNMPv2-CONF
enterprises, Integer32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
FROM SNMPv2-SMI;
-- 1.3.6.1.4.1.2
testNode2 MODULE-IDENTITY
LAST-UPDATED "202507251414Z" -- July 25, 2025 at 14:14 GMT
ORGANIZATION
"Organization."
CONTACT-INFO
"Contact-info."
DESCRIPTION
"Description."
::= { enterprises 2 }
--
-- Type definitions
--
LedStateType ::= INTEGER
{
off(0),
on(1)
}
--
-- Node definitions
--
-- 1.3.6.1.4.1.2.1
middleNode1 OBJECT IDENTIFIER ::= { testNode2 1 }
-- 1.3.6.1.4.1.2.1.1
objtype1 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Description."
::= { middleNode1 1 }
-- 1.3.6.1.4.1.2.1.2
objtype2 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Description."
::= { middleNode1 2 }
-- 1.3.6.1.4.1.2.1.3
objTable OBJECT-TYPE
SYNTAX SEQUENCE OF ObjEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Description."
::= { middleNode1 3 }
-- 1.3.6.1.4.1.2.1.3.1
objEntry OBJECT-TYPE
SYNTAX ObjEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Description."
INDEX { objTableColumn1 }
::= { objTable 1 }
ObjEntry ::=
SEQUENCE {
objTableColumn1
INTEGER,
objTableColumn2
Integer32,
objTableColumn3
Integer32
}
-- 1.3.6.1.4.1.2.1.3.1.1
objTableColumn1 OBJECT-TYPE
SYNTAX INTEGER (1..100)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Description."
::= { objEntry 1 }
-- 1.3.6.1.4.1.2.1.3.1.2
objTableColumn2 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Description."
::= { objEntry 2 }
-- 1.3.6.1.4.1.2.1.3.1.3
objTableColumn3 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Description."
::= { objEntry 3 }
-- 1.3.6.1.4.1.2.1.4
objGroup OBJECT-GROUP
OBJECTS { objtype1, objtype2, objTableColumn3, objTableColumn2, objTableColumn1
}
STATUS current
DESCRIPTION
"Description."
::= { middleNode1 4 }
-- 1.3.6.1.4.1.2.1.5
objTrap NOTIFICATION-TYPE
OBJECTS { objtype1 }
STATUS current
DESCRIPTION
"Description."
::= { middleNode1 5 }
-- 1.3.6.1.4.1.2.1.6
testNode15 NOTIFICATION-GROUP
NOTIFICATIONS { objTrap }
STATUS current
DESCRIPTION
"Description."
::= { middleNode1 6 }
-- 1.3.6.1.4.1.2.2
middleNode2 OBJECT IDENTIFIER ::= { testNode2 2 }
END
--
--
--