目录

简介

先决条件

要求

使用的组件

规则

使用 ifIndex 持续功能之前的问题

ifIndex 持续概述

设置 ifIndex 持续值

配置

限制

验证 IfIndex 持续

在线插入和拆卸

相关信息

相关的思科支持社区讨论

简介

基于SNMP的网络管理应用程序中最常用的标识符之一是接口索引(ifIndex)值。IfIndex是与物理或逻辑接口关联的唯一标识号。对于大多数软件，ifIndex是接口的名称。虽然相关RFC不要求在重新启动后维护特定ifIndex值与其接口之间的对应关系，但设备清单、计费和故障检测等应用程序依赖于此对应关系。

RFC1213(MIB2)定义初始ifIndex，如下所示：

"每个接口都由ifIndex对象的唯一值标识，ifIndex的说明将限制其值，如下所示：其值范围为1和ifNumber的值。每个接口的值必须至少保持恒定，从实体网络管理系统的一次重新初始化到下一次重新初始化。”

但是，根据最新的IETF RFC 2863（接口组MIB），ifIndex定义已更改，以适应允许动态添加或删除网络接口的设备数量的增加。RFC 2863中采用的解决方案是删除ifIndex的值小于ifNumber的值的要求，并保留ifNumber及其当前定义。

先决条件

要求

本文档没有任何特定的前提条件。

使用的组件

有关IOS平台和映像对此功能的大多数最新支持信息，可在功能导航器工具中搜索接口索引持久性。

从Cisco IOS版本12.1(5)T开始，在以下平台上支持此功能（Cisco IOS版本12.2中随后提供）：

- Cisco 800 系列

- Cisco 1400 系列

- Cisco 1600系列（包括1600R系列）

- Cisco 1700 系列

- Cisco 2500 系列

- Cisco 2600 系列

- Cisco 2800 系列

- Cisco 3600系列（包括Cisco 3620、3640和3660）

- Cisco 3800 系列

- Cisco 4500 系列

- Cisco AS5300

- Cisco AS5400

- 思科AS5800

- Cisco 7100 系列

- Cisco 7200系列（包括Cisco 7202、7204和7206）

- Cisco 7500系列（包括Cisco RSP7000）

在Cisco IOS版本12.0S中，接口索引持久性支持从Cisco IOS版本12.0(11)S开始在以下平台上：

- Cisco 7200 系列

- Cisco 7500 系列

- 思科12000 GSR系列

注意：对于CatOS设备，如果Index对物理接口和VLAN接口自动保持，但对于EtherChannel接口则不保持。默认情况下，此功能处于打开状态，无法将其关闭。MSFC上的IOS软件不支持ifIndex持久性。Catalyst 6000 IOS（也称为本机模式）支持从12.1(13)E开始的ifIndex持久性。

本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您是在真实网络上操作，请确保您在使用任何命令前已经了解其潜在影响。

规则

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

使用 ifIndex 持续功能之前的问题

考虑一种情况，即简单监控软件（如MRTG）正在轮询路由器特定串行接口的接口统计信息以访问互联网。

例如，在重新初始化之前，您可以有以下条件：

物理端口

ifIndex

以太网端口

1

令牌环端口

2

串行端口

3

因此，管理应用程序正在轮询与串行端口对应的ifIndex 3。

在路由器重新初始化（重新启动、重新加载等）后，情况将变为类似以下情况：

物理端口

ifIndex

以太网端口

3

令牌环端口

1

串行端口

2

管理应用程序继续轮询ifIndex 3，该接口现在与以太网端口对应。因此，如果管理应用程序没有受到陷阱的警告，例如路由器已重新启动，则轮询的统计数据可能完全错误。

ifIndex 持续概述

Cisco IOS版本增加了对ifIndex值的支持，该值可在重新启动后继续存在。接口索引持久性功能通过唯一标识流量和SNMP统计信息的输入和输出接口，在收集和处理网络管理数据时，可实现更高的准确性。由于每个接口都与已知实体（如ISP客户）相关联，因此接口索引持久性功能可以更有效地利用网络管理数据。

IfIndex持久性意味着ifDescr（或ifName）对象值和从IF-MIB生成的ifIndex对象值之间的映射在重新启动后保留。

此功能对以下方面特别有用：

- SNMP ：监控接口计数器

- Netflow:ifIndex接口的报告

- RMON:事件/警报（基于特定接口）

- EXPRESSION/EVENT MIB:根据接口计数器创建新的MIB变量

设置 ifIndex 持续值

配置

Router(config)# snmp-server ifindex persist

Router(config-if)# snmp-server ifindex persist

有关配置的详细信息，请参阅SNMP IfIndex Persistence。

限制

不能在子接口上使用接口特定ifIndex持久性命令([no] snmp ifindex persistence)。应用到接口的命令会自动应用到与该接口关联的所有子接口。

验证 IfIndex 持续

要验证ifIndex是否已正确启用，可以查看nvram中ifIndex表的内容。

Router # dir nvram:ifIndex-table

Directory of nvram:/ifIndex-table

2  -rw-           0         <no date>  ifIndex-table

126968 bytes total (114116 bytes free)

如果长度为0，则省略了执行运行的副本，该副本将ifIndexes分配复制到nvram。执行此操作后，您将看到以下内容：

Router # dir nvram:ifIndex-table

Directory of nvram:/ifIndex-table

2  -rw-           283        <no date>   ifIndex-table

126968 bytes total (114088 bytes free)

文件格式为：

名称

类型

描述

大小

INTEGER32

此行的大小

ifIndex

INTEGER32

此接口的ifIndex

enablePersistence

INTEGER32

1如果启用了持久性

ifDescr

二进制八位数字符串

接口描述

可以将文件复制到ftp服务器并查看二进制文件的内容。但请勿编辑该文件：不支持所有更改。在某些平台上，文件可以保留压缩格式。

在线插入和拆卸

以下是插入和移除以太网卡的示例列表。

1. 1.卸下卡，然后更换为相同的卡类型。

为新卡分配的ifIndexes相同，只要新硬件上的ifDescr与旧硬件匹配

2. 2.卸下卡，并用几乎相同的卡类型更换。

如果用8端口以太网卡替换4端口以太网卡，则8端口卡上的前4个端口的ifIndex值与4个端口以太网接口相同。其他四个端口接收新的ifIndex值。

3. 3.卸下卡并更换为其他卡类型。

安装新卡类型（如新ifDescr）时，将收到新ifIndex值。上一个ifIndex未使用，在ifIndex分配中创建一个差距。

4. 4.取出卡并将其放入同一路由器的不同插槽。

将卡放在其他插槽中时，会有新的ifDescr，因此您会收到新的ifIndex值。上一个ifIndex未使用，在ifIndex分配中创建一个差距。

注：必须执行运行starting命令的copy，以保留示例2、3和4的新分配ifIndex值。

相关信息

- SNMP IfIndex持久性