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

进行SNMPv3连接时,是否需要指定;“上下文名称”;,snmp,Snmp,当我们建立SNMPv3连接时,以下是主要参数 SNMPV3UserName SNMPV3ContextName SNMPV3安全级别 SNMPV3Auth协议 SNMPV3AuthPassword SNMPV3竞争控制 SNMPV3privacPassword 我想了解,连接时是否需要指定“SNMPV3ContextName”。我在SNMP RFC文档和其他链接中没有找到任何明确提及的内容。 我有一个应用程序,如果不是由用户输入,它会要求输入上下文名称。我怀疑它不应该要求输入上下文名称,因为

当我们建立SNMPv3连接时,以下是主要参数

  • SNMPV3UserName
  • SNMPV3ContextName
  • SNMPV3安全级别
  • SNMPV3Auth协议
  • SNMPV3AuthPassword
  • SNMPV3竞争控制
  • SNMPV3privacPassword
我想了解,连接时是否需要指定“SNMPV3ContextName”。我在SNMP RFC文档和其他链接中没有找到任何明确提及的内容。 我有一个应用程序,如果不是由用户输入,它会要求输入上下文名称。我怀疑它不应该要求输入上下文名称,因为它似乎是可选参数。 参考RFC:tl;医生:可能不会。

RFC5343说:

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

RFC3411将
SnmpAdminString
定义为
OCTET字符串(大小(0..255))

所以,它可以是空的。我找不到任何东西来约束它,所以允许使用空字符串。根据这些RFC(以及RFC 3412),如果您的引擎需要这种消除歧义的功能(从某种意义上说,将其视为多个引擎),则似乎可以在
contextEngineID
之上添加多个上下文


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

Net SNMP是实际的参考设计,请使用它并查看。似乎您已经回答了自己的问题?“RFC说这是可选的,但有些经理认为这是强制性的。”我们还能说什么呢@LightnessRacesinOrbit是的,虽然RFC并没有特别提到“必须”或“可选”,但我检查了打印机面板。在这里,它允许值为空。所以我现在假设它是可选的。另外一件事是这个字段是后来添加的,早些时候它不存在。因此,对于向后兼容性等,它必须是可选的。