My AGENT实现的SNMP版本号



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

  1. 有没有办法从SNMP管理器中找到SNMP的哪个版本代理支持?
  2. 代理是否支持多个SNMP版本?
  3. 如果代理支持多个SNMP版本,在对OID发出get请求时,需要设置SNMP的哪个版本?
  4. 在SNMP代理中是否有可能使用V1实现很少的oid,使用v2c实现很少的oid,使用SNMPv3实现很少的oid,如果是这样,管理器如何动态地发现它来发出请求?
  1. 您应该假设所有代理都必须使用其IP地址和凭据手动注册到管理器中。SNMP标准没有自动发现机制

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

  3. 响应消息类型(v1、v2c或v3)完全取决于请求的消息类型。

  4. 这是可能的(因为标准没有禁止这样做),但一般来说应该完全避免。

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

以下答案是基于我的研究和实现..........

  1. 是的,我们可以得到snmp的版本使用它的内置api
  2. 是snmp支持向后兼容
  3. 是的,我们可以在v1, v2和/或v3中实现多个oid。动态区分是由库(如net-snmp库)完成的,它依次调用注册的回调函数。

库检查请求消息类型(详细信息,请参阅SNMP v1/v2/v3 PDU格式),并动态决定应该使用哪种消息解码技术和应该调用哪个回调函数。

欢呼……:)

最新更新