2

如果这是一个微不足道的问题,请原谅我的无知。我正在编写一些代码来支持通过 SNMPv3 进行通信;我们的应用程序目前仅支持 SNMPv2c。

除非我匹配社区字符串,否则使用 SNMPv3 通信时的响应对象是空白的。我的印象是社区字符串是“SNMPv2/1 事物”,而“新方法”是使用用户名/真实协议/隐私协议。

维基百科指出:

尽管 SNMPv3 除了增加加密安全性之外没有对协议进行任何更改,但由于新的文本约定、概念和术语,它看起来有很大不同。 [1]

这个声明让我相信我确实也需要提供社区字符串。

我只是想确认这一点,因为我很难判断我是因为满足 SNMPv2 要求还是因为我成功满足了所有 SNMPv3 要求而正在取回数据。

我正在使用 Dart 的 SNMP 库与其他设备进行通信,并且我已经指定我的请求应该使用 SNMP 版本 3——但是当给定有效的 SNMP 社区时,它可能会退回到幕后的 SNMPv2?

4

1 回答 1

2

不,你没有。内部数据包结构更改为许多新概念,如上面的引用试图表明的那样。上面所说的协议方面与PDU操作等有关。IE,从技术上讲,SNMP有3个版本:

version 1:  community string based authentication with SMNPv1 PDUs
version 2c: community string based authentication with SNMPv2 PDUs
            (the SNMPv2 PDUs add GETBULK, INFORM, and REPORT PDUs)
version 3:  modular security with SNMPv2 PDUs

IE,版本 3 没有涉及实际操作的工作方式(它仍然使用版本 2 中的 PDU 类型),而只是在它们周围添加了其他标头内容(例如更好和更模块化的安全性;实际上我们现在有 3 种不同的安全性此时要选择的类型:USM、SSH 和 (D)TLS)。

于 2012-05-02T23:38:48.663 回答