SNMP GetBulk命令

时间:2010-10-21 10:32:05

标签: snmp

我想知道我是否可以使用带有SNMPv1的getbulk命令。如果是,请让我知道它的建议...否则有什么缺点。

提前致谢。

乌代。

4 个答案:

答案 0 :(得分:5)

没有。这是由协议栈确定的(GET BULK是在v2堆栈中引入的),而不是由其他因素决定的。

如果你想使用GET BULK,你必须使用SNMP v2和v3,而不是v1。

答案 1 :(得分:5)

正如其他人所说,GetBulkRequest是在SNMPv2中引入的。但是,您可能会发现知道版本1 GetRequest PDU可以与多个变量绑定相关联很有用。在这样做时,GetRequest响应将包含这些OID对象及其当前值的映射(如果请求成功)。

如果您不需要树的“行走”,并且您事先拥有所有OID,那么加载带有所有所需变量绑定的GetRequest可能对您有用。

如果您使用的是Java,则SNMP4J API与SNMP v1,v2c和v3兼容。 SNMP4J API

答案 2 :(得分:3)

值得注意的是GETBULK是在v2c中,这是对SNMPv1的一次小升级,因此现在几乎所有设备都支持它,即使供应商没有完全解决SNMPv3的问题。

SNMPv1:使用具有V1 PDU的社区 SNMPv2c:使用具有V2 PDU的社区 SNMPv3:使用带有V2 PDU的多个安全模块

然后SMI版本号(1和2)可以与任何协议一起使用,除非存在无法使用V1 PDU访问的SMIv2数据类型(例如,counter64)。

答案 3 :(得分:2)

如果使用v1执行snmpbulkwalk,则会收到以下错误

bash# snmpbulkwalk -v 1 -Os -c demopublic test.net-snmp.org
No log handling enabled - using stderr logging
snmpbulkwalk: Cannot send V2 PDU on V1 session

作为snmpbulkwalk在v 2c上介绍,执行此操作将为您带来整洁的输出,学习concept

bash# snmpbulkwalk -v2c -Os -c demopublic test.net-snmp.org
sysDescr.0 = STRING: test.net-snmp.org
sysObjectID.0 = OID: netSnmpAgentOIDs.10
sysUpTimeInstance = Timeticks: (174391443) 20 days, 4:25:14.43
sysContact.0 = STRING: Net-SNMP Coders <net-snmp-coders@lists.sourceforge.net>
sysName.0 = STRING: test.net-snmp.org
sysLocation.0 = STRING: Undisclosed
sysORLastChange.0 = Timeticks: (7) 0:00:00.07