我正在构建SNMP代理,现在正在处理陷阱消息。在我开始编写陷阱消息的代码之前,我有疑问:
在SNMPv1中,具体的陷阱代码是什么?我搜索过的每个地方都只是肤浅的定义,我希望得到一个深刻的定义,包含它可以包含的内容。
答案 0 :(得分:5)
SNMPv1 trap PDU包含以下内容:
OID
类型的NOTIFICATION-TYPE
) 通用陷阱数据项目0-5在规范中明确定义了它们的意思,一旦你点击6
(企业),那么它完全取决于定义在企业MIB中提供。除非您实际加载和解释定义的MIB内容该值意味着什么,否则您实际上无法理解其含义。如果我们查看UCD-SNMP-MIB
,它会定义两种陷阱类型:
ucdTraps OBJECT IDENTIFIER ::= { ucdavis 251 }
ucdStart NOTIFICATION-TYPE
STATUS current
DESCRIPTION
"This trap could in principle be sent when the agent start"
::= { ucdTraps 1 }
ucdShutdown NOTIFICATION-TYPE
STATUS current
DESCRIPTION
"This trap is sent when the agent terminates"
::= { ucdTraps 2 }
这些分别对应于OID .1.3.6.1.4.1.2021.251.1
和.1.3.6.1.4.1.2021.251.2
。
OID被解释为.1.3.6.1.4.1
==企业基础,2021
==加州大学戴维斯分校,251
== ucdTraps以及尾随1
或2
分别用于usdStartup和usdShutdown。
这些陷阱会将陷阱数据类型设置为6
,并且由于它们没有指定企业数据字段的任何内容,因此无法解释。
最后,对于变量数据,它是一系列OID,值对,需要作为指定的ASN.1数据展开。
coldStart
OID是.1.3.6.1.6.3.1.1.5.1
- 基本定义在the SNMPv2 MIB文件中,用于coldStart,warmStart和authenticationFailure,linkDown和linkUp的定义可以在RFC2863中找到