下列哪种是snmptrap(net-snmp)命令的正确格式?

snmptrap -v 2c -c public host "" NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification \
       netSnmpExampleHeartbeatRate i 123456

或者
snmptrap -v 2c -c public host "" NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification \
       netSnmpExampleHeartbeatRate.0 i 123456

即在变量绑定(bind)中是否包含.0

实际上,这两种格式都可以使用,但是哪一种是正确的,或者有什么区别?

最佳答案

这取决于是否在陷阱中引用了与“标量”或“表行”相关的varbinds。
http://www.net-snmp.org/wiki/index.php/TUT:snmptrap状态:

表行示例。

snmptrap -v 2c -c public host:162 .1.3.6.1.6.3.1.1.5.3 .1.3.6.1.6.3.1.1.5.3    \
        ifIndex i 2 ifAdminStatus i 1 ifOperStatus i 1
以供引用 :
snmptranslate -m +ALL -Pu .1.3.6.1.6.3.1.1.5.3
IF-MIB::linkDown
在变量绑定(bind)中没有.0,因为id由定位该行的ifIndex照顾。
标量行示例。
http://www.net-snmp.org/wiki/index.php/TUT:snmptrap显示示例
snmptrap -v 1 -c public host UCD-TRAP-TEST-MIB::demotraps "" 6 17 "" \
       SNMPv2-MIB::sysLocation.0 s "Just here"
'SNMPv2-MIB::sysLocation.0'是标量
与上面的IF-MIB::linkDown示例不同,后者与 ifIndex 标识的表行有关,此处的.0末尾精确标量了标量(例如在设置时)
原始问题中的 Netsnmp示例mibs/NET-SNMP-EXAMPLES-MIB.txt状态
netSnmpExampleHeartbeatRate OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "A simple integer object, to act as a payload for the
         netSnmpExampleHeartbeatNotification.  The value has
         no real meaning, but is nominally the interval (in
         seconds) between successive heartbeat notifications."
::= { netSnmpExampleNotificationObjects 1 }
不是是真正的,可识别的,可访问的标量,因此我建议您不要使用.0

关于snmp - 正确的snmptrap命令格式是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19947680/

10-11 08:10