SNMP v3 Discovery Issues - Duplicate SNMPv3 Engine IDs on Linux/Unix servers

Document ID : KB000044380
Last Modified Date : 14/02/2018
Show Technical Document Details

Issue: 

Some Linux/Unix Servers modeled in Spectrum show up as “pingable” and they receive “Duplicate SNMPv3 Engine ID” alarms.

Environment:  

Platform Independent

Cause: 

The NET-SNMP Agent on Linux Servers determines the SNMPv3 Engine ID of the server. If the NET-SNMP agent has been left on the out-of-box configuration, a generic SNMPv3 Engine ID will be created.

If multiple Linux servers with generic SNMPv3 Engine IDs are modeled, then there is a chance for duplicate Engine IDs.

If Spectrum finds a duplicate SNMPv3 engine ID on another modeled Linux server in the database, the new model can only be modeled as a “pingable”, and Spectrum will assert a “Duplicate Engine ID” alarm on the device model.

 

Resolution/Workaround:

The NET-SNMP Agent can be configured for several options on how the SNMPv3 Engine ID is created. The NET-SNMP Agent is configured in snmpd.conf and snmpd.local.conf

One of the options is to configure the SNMPv3 Engine ID using the MAC Address. This option may have the best chance of avoiding a duplicate Engine ID

Excerpt from the NET-SNMP manpage:

SNMPv3 Configuration

SNMPv3 requires an SNMP agent to define a unique "engine ID" in order to respond to SNMPv3 requests. This ID will normally be determined automatically, using two reasonably non-predictable values - a (pseudo-)random number and the current time in seconds. This is the recommended approach. However the capacity exists to define the engineID in other ways:

engineID STRING

specifies that the engineID should be built from the given text STRING.

engineIDType 1|2|3

specifies that the engineID should be built from the IPv4 address (1), IPv6 address (2) or MAC address (3). Note that changing the IP address (or switching the network interface card) may cause problems.

engineIDNic INTERFACE

defines which interface to use when determining the MAC address. If engineIDType 3 is not specified, then this directive has no effect.

 

The default is to use eth0.

 

Additional Information:

Please reference the NET-SNMP manpage for more information:

http://www.net-snmp.org/docs/man/snmpd.conf.html