linkDown SNMP 陷阱没有所需的 varbinds

linkDown SNMP trap not having the required varbinds

linkDown 告警有两种类型

linkDown (CISCO-GENERAL-TRAPS) 1.3.6.1.2.1.11.0.2 linkDown (IF-MIB) 1.3.6.1.6.3.1.1.5.3

来自 CISCO-GENERAL-TRAPS mib 的链接包含以下变量绑定 1.ifIndex 2.ifDescr 3.ifType 4.locIfReason

来自 If-MIB mib 的 linkDown 包含以下变量绑定 1.ifIndex 2.ifAdminStatus 3.ifOperStatus

但是我从 ME1200 设备收到的 linkDown 具有以下 varbinds 1.IfIndex 2.IfDesc 3.IfType 4.lifTable ,由于 SNMP 陷阱不包含 locIfReason 和 IfAdminStatus,我无法处理此 linkDown 陷阱。 lifTable varbind 包含 Admin Status 相关信息,但我的问题是 为什么 locIfReason 和 IfAdminStatus varbind 都不可用?如何从设备获取 IfAdminStatus 变量绑定?

linkDownlinkUp 陷阱是 generic。这些陷阱在标准 RFC 中定义,并具有预定义的变量绑定集:

    linkDown NOTIFICATION-TYPE
    OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
    STATUS  current
    DESCRIPTION
            "A linkDown trap signifies that the SNMP entity, acting in
            an agent role, has detected that the ifOperStatus object for
            one of its communication links is about to enter the down
            state from some other state (but not from the notPresent
            state).  This other state is indicated by the included value
            of ifOperStatus."
    ::= { snmpTraps 3 }

linkUp NOTIFICATION-TYPE
    OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
    STATUS  current
    DESCRIPTION
            "A linkUp trap signifies that the SNMP entity, acting in an
            agent role, has detected that the ifOperStatus object for
            one of its communication links left the down state and
            transitioned into some other state (but not into the
            notPresent state).  This other state is indicated by the
            included value of ifOperStatus."
    ::= { snmpTraps 4 }

思科不应该修改这些陷阱,因为这是不允许的。相反,他们应该定义所谓的企业特定陷阱。

CISCO-GENERAL-TRAPS(实际上是 CISCOTRAP-MIB?)linkDown 的 OID 似乎不正确。随手,我找到了一个 SMIv1 TRAP-TYPE 定义,而不是 NOTIFICATION-TYPE,这意味着它是用一个整数(而不是 OID)定义的,并且它的 OID 将由 RFC 2576 转换规则确定。在我发现的 SMIv1 MIB 中,他们的 linkDown 版本是用 ENTERPRISE "snmp" 定义的,这(正如 Andrew 在上面所说的那样)意味着他们正在重新定义该 MIB 中的标准陷阱;他们应该改用自己的 ENTERPRISE OID,这会使它独一无二。

RFC 2576 转换规则要求将带有 ENTERPRISE "snmp" 的陷阱映射到标准 OID 之一。根据这些规则,1.3.6.1.2.1.11.0.2 不是 CISCO-GENERAL-TRAPS:linkDown 的正确 OID,它与标准 (1.3.6.1.6.3.1.1.5.3) 相同。

也就是说,如果模块已导入(或以其他方式用标准 OID 定义 "snmp"),但它没有,所以我只能假设这是已修复的 MIB 的修改版本. 1.3.6.1.2.1.11 是 "snmp" 的 OID,所以 1.3.6.1.2.1.11.0.2 如果按照 trap other[=18] 的规则转换的话,就是 OID =] 比企业 "snmp"。除了重载标准陷阱的定义之外,它还被错误地转换了。