2014-09-03 126 views
0

我读过关于SNMP协议的几个RFC以及他们通常写在神秘和不透明的风格,所以我可能已经错过了正确的信息,我提前道歉,什么是可能一个简单的问题...什么套SNMP错误和错误索引字段

我不清楚什么样的错误的GET命令的情况下将设置在SNMP获取响应消息中的错误和错误索引字段。由于我一直使用Net-SNMP发送命令(以及demo.snmplabs.com上的snmp模拟器),所以我无法发送格式不正确的消息来查看我会得到什么样的响应。我已经开始编写我自己的SNMP测试工具(在Visual Basic中),只是为了能够发送格式不正确的消息,但在将它用作验证测试工具之前,这将是相当多的工作。

当发送对不存在的OID或错误的数据类型的请求,看来的Net-SNMP处理错误,而无需错误/错误的索引值。

任何建议赞赏

回答

0

它应该是可能的SNMP GET来产生错误,但或许更容易产生错误的设置启动。

➜ snmpset -v 2c -c private demohost sysName.0 s "foo" 
SNMPv2-MIB::sysName.0 = STRING: foo 

在以下版本代理会拒绝SET ...

➜ snmpset -v 2c -c private demohost ucdDemoPublicString.0 s "TEST" 
Error in packet. 
Reason: noCreation (That table does not support row creation or that object can not ever be created) 
Failed object: UCD-DEMO-MIB::ucdDemoPublicString.0 

使用-d看到包来回。

+0

感谢您的建议。我一直在创建故意定义(例如,MIB数据类型与实际的消息数据类型不匹配),但我无法真正让代理将错误和错误索引字段设置为0以外的值。我想,设置这些错误字段,snmp消息本身不应该被正确地格式化(Net-SNMP不会这么做),所以这意味着我必须创建自己的“格式错误”的消息(从“坏的ASN.1编码“ 例如)。这是我现在采取的方向,所以我正在为Visual Basic编写一个工具。 – Didier 2014-09-04 13:31:53

+0

我也可以强制我的SNMP代理(我自己的代码在Cortex-M3上运行)返回格式不正确的消息,以查看Net-SNMP如何处理。 – Didier 2014-09-04 13:34:39