snmpset对象不可写。为什么?
我一直在试图理解如何创建MIB:这里是我迄今为止所做的: 我创建了一个MIB,并尝试将值分配给新OID=>fail 这是MIB:snmpset对象不可写。为什么?,snmp,net-snmp,snmpd,Snmp,Net Snmp,Snmpd,我一直在试图理解如何创建MIB:这里是我迄今为止所做的: 我创建了一个MIB,并尝试将值分配给新OID=>fail 这是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-
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
我那么
- 针对smilint验证了此MIB
- 将其放入~/.snmp/mibs中/
- 具有所有主机的rwcommunity字符串,没有OID限制
- 重新启动snmpd守护进程(在Debian上)
snmpwalk -v2c -m +ALL localhost .1.3.6.1.4.1.39106
哪些产出:
TEST-MIB::TEST=此OID上此代理上没有可用的此类对象
所以我猜snmpd告诉我他在这棵树下找不到任何东西,因为还没有设置任何东西
因此,我尝试在shell上使用snmpset设置此测试变量:
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 localhost.1.3.6.1.4.1.39106.2.1.0 i 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 }
是虫子吗?一个已知的问题?听起来您正在尝试构建自己的SNMP代理 从外观上看,您已经正确创建了自己的MIB OID,但在查询SNMP主机时,没有任何内容响应新OID
读一读这个:看看它是否解决了你的问题(q:)花了一个小时阅读了所有关于堆栈溢出的相关文章(13页,Yehao),我意识到我可能必须使用mib2c将我的mib转换为c代码,然后用这个库重新编译netsmtpd。我需要写一些C代码来实现吗?我不是C-noob,我完全不知道关于C的一切(如果我理解得很好,NET-SNMP不允许动态更新MIB树。我必须编写一些C代码才能写入新的OID。我相信CPAN上有一大堆Perl模块,如果您在用C编写代码时遇到问题,它们可以提供帮助!试试看