进行SNMPv3连接时,是否需要指定“上下文名称”

时间:2018-06-13 07:45:37

标签: snmp

当我们进行SNMPv3连接时,主要是以下参数。

  • SNMPV3UserName
  • SNMPV3ContextName
  • SNMPV3SecurityLevel
  • SNMPV3AuthProtocol
  • SNMPV3AuthPassword
  • SNMPV3PrivacyControl
  • SNMPV3PrivacyPassword

我想了解,如果有必要在连接时指定“SNMPV3ContextName”。我的SNMP RFC Doc和其他链接我没有找到任何明确的提及。 我有一个应用程序,如果没有用户输入请求上下文名称。我怀疑它不应该要求上下文名称输入,因为它看起来像可选参数。 RFC我提到:https://tools.ietf.org/html/rfc5343

1 个答案:

答案 0 :(得分:0)

tl; dr:可能不是。

RFC 5343说:

  

contextName是一个字符串(遵循SNMP-FRAMEWORK-MIB [RFC3411]的SnmpAdminString文本约定)

并且RFC 3411将SnmpAdminString定义为OCTET STRING (SIZE (0..255))

因此,它可以为空。我再也找不到任何东西可以限制这个了,因此允许使用空字符串。根据这些RFC(以及RFC 3412),这似乎是一种在contextEngineID if 顶部添加多个上下文的方法,您的引擎需要这种歧义性功能(将其视为多个引擎) ,在某种意义上)。

但是,与任何SNMP一样,某些实现可能会施加自己的约束,或者只是完全遵循规范。因此,您应该查阅所用技术的文档。