2010-02-10 112 views
1

我正在研究网络监视应用程序,并且需要知道哪些版本的SNMP向后兼容其他版本。我正在使用Java编写程序并使用SNMP4J来查询特定设备上的OID。在SNMP4J中,您必须在设置目标时指定SNMP设备的版本。什么是SNMP的向后兼容性?

目前有SNMP版本1,2c和3.如果我的设备是SNMP版本1,SNMP版本2c或3是否与该版本向后兼容?

如果设备是版本2,将1或3向后兼容?

...等等

反正,所有的帮助是极大的赞赏,

史蒂夫

回答

2

SNMP v1采用团体字符串,这成为上下文的ID在v2c版本。基本上它是一样的东西,但看待事物的方式稍有不同。

SNMPv3具有安全性和各种附加功能,使协议变得非常简单。

如果您尝试在SNMPv1设备上发出SNMPv2c请求,如果SNMPv2c管理器正在使用get-bulk请求(它一次请求超过1个后续对象,这对于快速拉入柱状对象很有用) )。 SNMPv1不支持批量操作。

因此,SNMPv1管理器可能能够从SNMPv2c代理检索对象。但是SNMPv2c管理器可能无法从SNMPv1设备获取对象。

将SNMPv3与其他任何东西混合在一起正在寻求麻烦。

+0

在SNMP4J中,似乎没有向后兼容性。版本控制看起来非常严格。当我为SNMP版本1设置目标时,我无法从SNMP版本2c设备检索OID。更具体地说,它给出了一个No This Name错误。 这听起来不错吗?或者我错过了什么? – 2010-02-10 16:10:02

+0

“没有这样的名称”是有效的SNMP响应:它表示您试图获取不存在的变量。您是否知道标量对象(即不是表格的一部分)必须具有以“.0”结尾的OID? – 2010-02-11 10:41:51

+1

SNMP代理设计人员对此主题拥有更多控制权。如果他们决定代理只支持特定的SNMP版本,那么您将失去使用其他SNMP版本管理设备的自由。 – 2010-02-15 09:40:15