IP : 简单网络管理协议 (SNMP)

了解 SNMP 中的表索引值

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

当轮询简单网络管理协议(SNMP)对象时,您必须正确地时常了解什么轮询。为了充分地了解此,您需要会关联轮询与的对象什么您要轮询。本文在SNMP包括基础如何使用索引分组对象到表。

先决条件

要求

本文档的读者应掌握以下这些主题的相关知识:

  • SNMP常识

  • 用于的软件通过SNMP查询Cisco设备

使用的组件

本文档中的信息基于以下软件和硬件版本:

  • UCD SNMP版本4.2

  • Cisco Catalyst 5509用Cisco IOS�软件版本5.5(7)

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

开始 ifIndex

学习的其中第一件事,当您交易与SNMP时,是IfIndex。这是所有对象主键。认为它所有接口的方法(物理和逻辑)被划分并且分配值。此值分配在期间启动设备,并且不可以更改。如果任何信息需求为该特定接口轮询,它必须使用该已分配值。

IfIndex在IF-MIB (RFC 1213)leavingcisco.com 如此定义:

InterfaceIndex ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "A unique value, greater than zero, for each interface
               or interface sub-layer in the managed system.  It is
               recommended that values are assigned contiguously
               starting from 1.  The value for each interface sub-
               layer must remain constant at least from one re-
               initialization of the entity's network management
               system to the next re-initialization."
       SYNTAX       Integer32 (1..2147483647)

对于所有MIB,快速方式告诉什么索引组织表将查看条目:

ifEntry OBJECT-TYPE
         SYNTAX      IfEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
             "An entry containing management information applicable
             to a particular interface."
         INDEX   { ifIndex }
        ::= { ifTable 1 }

给MIB和条目,您能确定如何标注表。IfIndex下一部分提供示例。

轮询对象

基于 ifIndex 轮询对象

当您发出snmpwalk命令轮询一个ifIndex-based对象(ifName)时交换机的端口的7/4,您得到此输出:

sj-cse-568: snmpwalk 172.16.99.60 public ifname

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.1 = sc0
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.2 = sl0
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.3 = VLAN-1
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.4 = VLAN-1002
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.5 = VLAN-1004
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.6 = VLAN-1005
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.7 = VLAN-1003
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.8 = 7/1
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.9 = 7/2
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.10 = 7/3

!--- This is the relevant line:

ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.11 = 7/4
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.12 = 7/5
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.13 = 7/6
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.14 = 7/7
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.15 = 7/8
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.16 = 7/9
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.17 = 7/10
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.18 = 7/11
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.19 = 7/12
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.20 = ATM8/0
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.22 = /A
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.23 = /B
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.24 = Nu0
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.25 = LEC/ATM8/0.10
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.532 = 3/1
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.533 = 3/2

!--- Output suppressed.

在从ifName (在路由器的ifDescr)投票的该输出中,请在ifName以后注意有编号附加对每行。这是分配到在同一行的实际接口的IfIndex。这意味着投票的第二行,端口7/4,分配IfIndex 11。如果想要关于端口7/4的信息从ifIndexed对象,请使用索引11。这意味着加.11到MIB对象标识符(OID)的末端,获取对应于同样IfIndex值该对象的实例。

ifIndex 未为表创建索引或者创建的是交叉索引时轮询对象

有时,表没有由IfIndex标注,例如与BRIDGE-MIB。此输出检查如何标注:

dot1dBasePortEntry OBJECT-TYPE
         SYNTAX  Dot1dBasePortEntry
         ACCESS  not-accessible
         STATUS  mandatory
         DESCRIPTION
                 "A list of information for each port of the
                 bridge."
         REFERENCE
                 "IEEE 802.1D-1990: Section 6.4.2, 6.6.1"
         INDEX  { dot1dBasePort }
         ::= { dot1dBasePortTable 1 }

该输出显示dot1dBasePort标注dot1dBasePortEntry。那如何转换到IfIndex ?BRIDGE-MIB访问呼叫dot1dBasePortIfIndex的对象。对象如此定义:

dot1dBasePortIfIndex OBJECT-TYPE
         SYNTAX  INTEGER
         ACCESS  read-only
         STATUS  mandatory
         DESCRIPTION
                 "The value of the instance of the ifIndex object,
                 defined in MIB-II, for the interface corresponding
                 to this port."
         ::= { dot1dBasePortEntry 2 }

该输出显示如何从BRIDGE-MIB关联到IF-MIB。下一个示例显示全部如何组合。

注意: BRIDGE-MIB每VLAN被构件,因此必须用于社区“public@vlan-id” non-vlan1环境。

将 BRIDGE-MIB 关联到 IF-MIB

当您发出在BRIDGE-MIB时的一snmpwalk,您得到索引的下输出示例:。请使用dot1dBasePortIfIndex (.1.3.6.1.2.1.17.1.4.1.2)映射它回到IfIndex。一旦有IfIndex,请使用它轮询根据IfIndex的其他对象。

sj-cse-568: snmpwalk 172.16.99.60 public .1.3.6.1.2.1.17.1.4.1.2

17.1.4.1.2.203 = 671
17.1.4.1.2.204 = 672
17.1.4.1.2.205 = 673
17.1.4.1.2.206 = 674
17.1.4.1.2.207 = 675
17.1.4.1.2.208 = 676
17.1.4.1.2.209 = 677
17.1.4.1.2.210 = 678
17.1.4.1.2.211 = 679
17.1.4.1.2.212 = 680
17.1.4.1.2.213 = 681
17.1.4.1.2.214 = 682
17.1.4.1.2.215 = 683
17.1.4.1.2.216 = 684
17.1.4.1.2.257 = 581
17.1.4.1.2.385 = 8
17.1.4.1.2.386 = 9
17.1.4.1.2.387 = 10
17.1.4.1.2.388 = 11
17.1.4.1.2.389 = 12
17.1.4.1.2.390 = 13
17.1.4.1.2.391 = 14
17.1.4.1.2.392 = 15
17.1.4.1.2.393 = 16
17.1.4.1.2.394 = 17
17.1.4.1.2.395 = 18
17.1.4.1.2.396 = 19
17.1.4.1.2.449 = 22

粗体文本线路(17.1.4.1.2.388 = 11)显示.388是索引。由于您轮询了从BRIDGE-MIB的dot1dBasePortIfIndex对象, .388是dot1dBasePortIfIndex。11在输出线路实际上是IfIndex。如果收集信息从此投票和从上一个投票,您能确定端口7/4有IfIndex 11和一dot1dBasePortIfIndex (BRIDGE-MIB的索引) .388。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 40700