这取决于陷阱中是否引用了“标量”或“表行”相关的 varbind。
http://www.net-snmp.org/wiki/index.php/TUT:snmptrap状态:
请注意,此命令还包括 VARIABLES 子句中列出的 varbind 的 (OID,type,value) 三元组(与 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
精确定位行的 id 负责。
标量行示例。
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
末尾的 s 精确定位标量(就像您设置它时一样)
来自原始问题的 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 }
即它不是一个真实的、可识别的、可访问的标量,所以我建议 no .0
。