2014-09-03 14 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