【发布时间】:2010-10-21 10:32:05
【问题描述】:
我想知道我是否可以在 SNMPv1 中使用 getbulk 命令。如果是,请让我知道它的建议......如果没有,那么缺点是什么。
提前致谢。
乌代。
【问题讨论】:
标签: snmp
我想知道我是否可以在 SNMPv1 中使用 getbulk 命令。如果是,请让我知道它的建议......如果没有,那么缺点是什么。
提前致谢。
乌代。
【问题讨论】:
标签: snmp
没有。这是由协议栈决定的(在 v2 栈中引入了 GET BULK),而不是其他因素。
如果你想使用 GET BULK,你必须使用 SNMP v2 和 v3,而不是 v1。
【讨论】:
正如其他人所说,GetBulkRequest 是在 SNMPv2 中引入的。但是,您可能会发现知道版本 1 GetRequest PDU 可以与多个变量绑定相关联很有用。这样做时,GetRequest 响应将包含这些 OID 对象及其当前值的映射(如果请求成功)。
如果您不需要树的“行走”,并且您提前拥有所有 OID,那么加载带有所有需要的变量绑定的 GetRequest 可能对您有用。
如果您使用 Java,则 SNMP4J API 与 SNMP v1、v2c 和 v3 兼容。 SNMP4J API
【讨论】:
值得注意的是,GETBULK 是在 v2c 中,这是对 SNMPv1 的小升级,因此即使供应商没有完全使用 SNMPv3,现在几乎所有设备都支持它。
SNMPv1:使用带有 V1 PDU 的社区 SNMPv2c:使用带有 V2 PDU 的社区 SNMPv3:使用带有 V2 PDU 的多个安全模块
然后 SMI 版本号(1 和 2)可用于任何协议,除非存在无法使用 V1 PDU 访问的 SMIv2 数据类型(例如,counter64)。
【讨论】:
如果您使用 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
正如在 v 2c 中引入的 snmpbulkwalk,执行此操作将为您带来整洁的输出,学习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
【讨论】:
snmpbulkwalk -v2c -Os -c public demo.snmplabs.com