snmp特定陷阱代码

时间:2014-08-19 05:43:05

标签: snmp snmptrapd snmp-trap

我正在构建SNMP代理,现在正在处理陷阱消息。在我开始编写陷阱消息的代码之前,我有疑问:
 在SNMPv1中,具体的陷阱代码是什么?我搜索过的每个地方都只是肤浅的定义,我希望得到一个深刻的定义,包含它可以包含的内容。

1 个答案:

答案 0 :(得分:5)

SNMPv1 trap PDU包含以下内容:

  1. 生成陷阱的对象类型(这是OID类型的NOTIFICATION-TYPE
  2. 生成对象的地址(IP地址)
  3. 通用陷阱数据 - 列出的枚举之一(0 == coldStart,1 == warmStart ... 6 == Enterprise)
  4. 企业陷阱数据 - 0或指定的企业陷阱数据
  5. 时间戳 - 生成时间戳陷阱
  6. 变量绑定。
  7. 通用陷阱数据项目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以及尾随12分别用于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中找到

    说实话,我不会费心去解释这些数据,除非我对陷阱的规格持怀疑态度,否则就无法理解它的含义。