什么是正确的snmptrap命令格式?

时间:2013-11-13 07:18:28

标签: snmp net-snmp

以下哪项是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

即,在变量绑定中是否有.0

实际上这两种格式都有效,但哪一种是正确的还是有什么区别?

1 个答案:

答案 0 :(得分:8)

这取决于陷阱中是否引用了“标量”或“表格行”相关的varbinds。

http://www.net-snmp.org/wiki/index.php/TUT:snmptrap州:

  

请注意,此命令还包括(OID,类型,值)三元组   VARIABLES子句中列出的varbinds(与使用相同的方式)   snmpset命令)。

表格行示例。

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

变量绑定中没有“.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”。