【问题标题】:OID addressing with net-snmp使用 net-snmp 进行 OID 寻址
【发布时间】:2016-11-29 07:32:59
【问题描述】:

我正在使用自行开发的 MIB 文件扩展我的 snmp 代理。 我注意到的是,当我散步时,它会将我的变量打印为

MY-MIB::myvariable.0

但我特意将变量放在不以 0 结尾的 OID 处。

我正在使用 net-snmp 库函数:

netsnmp_create_handler_registration

还有

netsnmp_register_read_only_ulong_instance

注册我的实例。

这似乎只发生在netsnmp_create_handler_registration 上。但是当我将reg_oid_len 指定短一点时,它会双重注册一些变量。

【问题讨论】:

    标签: snmp net-snmp


    【解决方案1】:

    我假设您的问题是“为什么在我的 OID 上附加 0?” 为了访问任何 scalar 值,您必须将 .0 附加到树的叶节点。如果您尝试处理表条目,则需要将条目的索引附加到表中。如果您不使用 OID 作为诸如 bulkget 或 walk 之类的参数,则不在标量上使用 .0 通常会导致问题,即

    $ snmpget -v2c -c public 192.168.1.120 1.3.6.1.2.1.1.1.0
      SNMPv2-MIB::sysDescr.0 = STRING: things, stuff
    
    $ snmpget -v2c -c public 192.168.1.120 1.3.6.1.2.1.1.1  
      SNMPv2-MIB::sysDescr = No Such Instance currently exists at this OID
    
    $ snmpwalk -v2c -c public 192.168.1.120 1.3.6.1.2.1.1.1
      SNMPv2-MIB::sysDescr.0 = STRING: things, stuff
    

    请参阅this net-snmp 邮件列表条目,了解有关为什么标量以 0 结尾的更明确的详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多