以下哪项是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
?
实际上这两种格式都有效,但哪一种是正确的还是有什么区别?
答案 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”。