我一直在试图了解如何创建一个MIB:在这里我做了什么至今:snmpset对象不可写。为什么?
我创建了一个MIB,并试图将值分配给新的OID =>失败
这里是MIB:
TEST-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
OBJECT-TYPE, Integer32,MODULE-IDENTITY FROM SNMPv2-SMI;
test MODULE-IDENTITY
LAST-UPDATED "201112190200Z"
ORGANIZATION "blah"
CONTACT-INFO
"please"
DESCRIPTION
"I am stuck"
REVISION "201112190200Z"
DESCRIPTION
"initial Draft"
::= { iso org(3) dod(6) internet(1) private(4) enterprises(1) 39106 }
testResearch OBJECT IDENTIFIER ::= { test 2 }
testVar OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"just for testing"
::= { testResearch 1}
-- conformance information
testMIBConformance OBJECT IDENTIFIER ::= { test 999 }
testMIBCompliances OBJECT IDENTIFIER ::= { testMIBConformance 1 }
testMIBGroups OBJECT IDENTIFIER ::= { testMIBConformance 2 }
-- compliance statements
testMIBCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"blah."
MODULE -- this module
MANDATORY-GROUPS { testGroup }
::= { testMIBCompliances 1 }
-- units of conformance
testGroup OBJECT-GROUP
OBJECTS { testVar }
STATUS current
DESCRIPTION
"The draft"
::= { testMIBGroups 1 }
END
我再
- 验证这个MIB对smilint,
- 把它放在〜/ .snmp/MIB中/
- 有rwcommunity字符串的所有主机,没有OID限制
- 重新启动snmpd守护进程(在Debian)
到目前为止,一切良好。
我又试图看看守护进程知道这个新的企业,我所做的:
snmpwalk -v2c -m +ALL localhost .1.3.6.1.4.1.39106
,输出: TEST-MIB ::测试=没有这样的在此代理对象可以在此OID
所以我想这个snmpd告诉我他在这棵树下找不到任何东西,因为还没有设置任何东西。
所以我尝试设置与snmpset此测试变量的shell:
snmpset -v2c -m +ALL localhost .1.3.6.1.4.1.39106.2.1 i 111
输出:
Error in packet.
Reason: notWritable (That object does not support modification)
Failed object: TEST-MIB::testVar
我试着以及同: snmpset -v2c -m + ALL本地主机。 1.3.6.1.4.1.39106.2.1.0我111
和作为根,但没有成功
但是当我做了snmptranslate,我可以看到,MIB被正确解析:
snmptranslate -Td 1.3.6.1.4.1.39106.2.1
TEST-MIB::testVar
testVar OBJECT-TYPE
-- FROM TEST-MIB
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION "just for testing"
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) test(39106) testResearch(2) 1 }
它是一个错误吗?一个已知的问题?
已经花了一个小时阅读栈溢出所有相关岗位(13页,yehaoo),我意识到,我可能必须使用mib2c将我的mib转换为c代码,然后用这个库重新编译netsmtpd。我需要编写任何C代码来做到这一点吗?我不是一个C-noob,我完全不了解与C有关的所有东西...... :( – Ant 2011-12-18 19:37:04