我的代理实现了哪个SNMP版本

我的代理实现了哪个SNMP版本,snmp,Snmp,我有一些关于SNMP代理实现的基本问题,其中一些问题可能也是无效的,但请让我知道 有没有办法从SNMP管理器中找到哪个版本的SNMP 代理支持什么 代理是否可能支持多个SNMP版本 如果代理支持多个SNMP版本,在发出OID的get请求时,我需要设置哪个版本的SNMP 在SNMP代理中是否存在这样的可能性:少数OID使用V1实现,少数OID使用v2c实现,少数OID使用SNMPv3实现,如果是,管理器如何动态地发现这一点以发出请求 您应该假设所有代理都必须使用其IP地址和凭据手动注册到管理器中。

我有一些关于SNMP代理实现的基本问题,其中一些问题可能也是无效的,但请让我知道

  • 有没有办法从SNMP管理器中找到哪个版本的SNMP 代理支持什么
  • 代理是否可能支持多个SNMP版本
  • 如果代理支持多个SNMP版本,在发出OID的get请求时,我需要设置哪个版本的SNMP
  • 在SNMP代理中是否存在这样的可能性:少数OID使用V1实现,少数OID使用v2c实现,少数OID使用SNMPv3实现,如果是,管理器如何动态地发现这一点以发出请求
  • 您应该假设所有代理都必须使用其IP地址和凭据手动注册到管理器中。SNMP标准没有自动发现机制

  • 代理可能同时支持v1、v2c和v3

  • 响应消息类型(v1、v2c或v3)完全取决于请求的消息类型。他们必须匹配

  • 这是可能的(因为标准并不禁止这样做),但一般来说应该完全避免。据我所知,没有一位经理能够动态地完成您所描述的任务


  • 通常,SNMP管理器只允许您通过IP+版本对定义代理。因此,具有多版本支持的代理可以被视为位于同一IP地址的多个代理(每个代理具有一个版本)。因此,如果代理支持多个版本,则应在manager中注册最高版本。这对于代理管理来说已经足够了。

    以下答案基于我的研究和实施

  • 是的,我们可以使用内置的api获取snmp版本
  • 是,snmp支持向后兼容性
  • 是的,我们可以在v1、v2和/或v3中实现几个OID。动态区分由库(如net snmp库)完成,该库依次调用已注册的回调函数 库检查请求消息类型(有关更多信息,请查看SNMP v1/v2/v3 PDU格式),并动态决定应使用哪种消息解码技术以及应调用哪种回调函数

    干杯……:)