MIB表中的索引

时间:2013-04-14 18:05:01

标签: snmp mib snmp-trap

我想在MIB中使用类似于此答案中描述的SNMPv2-Trap的分层表结构https://stackoverflow.com/a/2510340/346899

但是我并没有真正获得MIB表中条目的INDEX概念。例如,在引用的答案的摘录中,使用了childIndex子表中的条目:

childEntry OBJECT-TYPE
SYNTAX       ChildEntry
MAX-ACCESS   not-accessible
STATUS       current
DESCRIPTION  "Entry in Child table"
INDEX        { parentIndex,
               childIndex }
::= { childTable 1 }

然而,如果我没有在它使用的使用过的Trap-MIB中指定特殊的childIndex,我的Trap接收器(通过iReasoning)也可以工作。那么索引的目的是什么?

1 个答案:

答案 0 :(得分:1)

此索引仅用于表检索,您可以使用GET NEXT或GET BULK消息查询表中的所有对象。只有基于INDEX信息,您才能知道如何将接收到的对象格式化为正确的表格。

  

“然而,如果我不这样做,我的陷阱接收器(通过iReasoning)也可以工作   在其使用的Trap-MIB中指定一个特殊的childIndex。“

<强>编辑: 对于陷阱接收器,它依赖于MIB文档来了解如何解释传入的通知。幸运的是,在NOTIFICATION-TYPE对象的几乎所有标准MIB文档中,定义都很清楚。例如,在RFC 4898中

http://tools.ietf.org/html/rfc4898

tcpEStatsEstablishNotification NOTIFICATION-TYPE
   OBJECTS     {
                 tcpEStatsConnectIndex
               }
   STATUS      current
   DESCRIPTION
       "The indicated connection has been accepted
       (or alternatively entered the established state)."
   ::= { tcpEStatsNotifications 1 }

“对象”部分显示了如何解释对象。

因此,陷阱接收器确实不需要返回并检查您是否错误地定义了表(在此MIB的开头)。

当使用此MIB文档解释表的GET NEXT或GET BULK结果时,您对表的更改只会出现问题,因为此时该实用程序会发现缺少某些索引项。