OK, let’s say you’ve decided to live a healthier life. You’re exercising regularly, stopped getting drunk every night, and you’re eating healthy. You’ve been eating more salads, almost cut out red meat, and even eating annoyingly healthy desserts, if any.

SNMP Salad

It’s been a whole week of this torture, and it’s time to get on that scale. How would you feel when you stepped on the scale and you’ve gained 7 lbs? “What the #*$& !?!?! How can this be?? This doesn’t make sense. Even my pants are feeling looser…? What’s going on? ”

Looks like when you replaced the battery in your scale, the calibration changed.

Did you know that something as simple as Cisco router re-initialization (reboot, reload and so on) or with the insertion of a new card, the SNMP instances can change resulting in completely erroneous SNMP reports? It can happen regardless of which SNMP monitoring application you use.

For this reason Cisco has included the ifIndex Persistence Feature starting in IOS version 12.x.

In taking excerpts from the ifIndex Persistence Feature link above, I’ll outline the problem as it relates to SNMP.

Problem before the ifIndex Persistence Feature
Consider a situation where a simple monitoring software (like MRTG) is polling the interface statistics of the router specific serial interface going to the Internet. As an example, you could have these conditions prior to re-initialization:

SNMP Instances before adding a card

Therefore, the management application is polling the ifIndex 3, which corresponds to the serial port.
After the router re-initialization (reboot, reload and so on) the conditions change to something similar to this:

SNMP Instances after adding a card

The management application continues polling the ifIndex 3, which corresponds now to the Ethernet port. Therefore, if the management application is not warned by a trap, for example, the router has been rebooted, the statistics polled could be completely wrong.  The chart is a little dated because nobody uses token ring anymore, but this still happens with newer gig interfaces too.

The ifIndex Persistence overview
Cisco IOS Release adds support for an ifIndex value that can persist across reboots. The Interface Index Persistence feature allows for greater accuracy when it collects and processes network management data by uniquely identifying input and output interfaces for traffic flows and SNMP statistics. As it relates each interface to a known entity (such as an ISP customer), the Interface Index Persistence feature allows network management data to be more effectively utilized. IfIndex persistence means that the mapping between the ifDescr (or ifName) object values and the ifIndex object values generated from the IF-MIB is retained across reboots.

This feature is particularly useful for:

IfIndex persistence is disabled by default. To globally enable ifIndex values that are maintained across reboots, use the following command in global configuration mode:

Router(config)# snmp-server ifindex persist

For more details on the configuration, refer to Cisco’s SNMP ifIndex Persistance Configuration documentation.


Steve Cunha author pic


Stephen joined Plixer in 2011. Steve’s efforts over the years have helped many customer gain better Visibility and Network Analytics. With more than 5 years of successful technology consultation, Steve has become a thought leader, focusing on how Scrutinizer can be part of a system incorporating other solutions such as Gigamon, Statseeker, Uptime, InfoBlox and Splunk. Firm believer that most organizations will have a larger SDN implementation and greater leveraging the Cloud in the next few years. Steve resides in Scarborough, ME with his wife and two sons.


Leave a Reply