Home > Articles > Certification > Cisco Certification > CCNP Security / CCSP

SNMP Concepts and Configuration

  • Print
  • + Share This
The Simple Network Management Protocol (SNMP) is a common site in most networks, it provides not only a method that can be used for event notification but can also be used to maintain device statistics, set configuration parameters and many other functions. This article takes a look at some of the basic SNMP concepts, examining how it works and how it can be configured to perform basic functions.
From the author of

The Simple Network Management Protocol (SNMP) is a common site in most networks. It not only provides a method that can be used for event notification but also can be used to maintain device statistics, set configuration parameters, and many other functions. This article takes a look at some of the basic SNMP concepts, how SNMP works, and how it can be configured to perform basic functions.

SNMP Concepts

SNMP is a protocol that operates at the application layer; it defines a method of communication between various networking devices and a central manager for use with the monitoring and management of these devices.

SNMP Components

There are three different components that are defined by SNMP:

  • SNMP manager—The SNMP manager is a central system that is used to monitor traffic seen by the various SNMP agents as well as provide a mechanism for the control of these agents.
  • SNMP agent—The SNMP agent is a software component that exists within a network element; this component is used to maintain real-time information about the elements operations. The agent is also used to communicate this information back to the central SNMP manager as well as perform control actions dictated by the SNMP manager.
  • Management Information Base (MIB)—The MIB is a virtual information storage location where network management information is held. Within the MIB are a number of different collections of objects that are related together (think database). Each of these collections contains a number of variables that can be altered by the SNMP agent and/or SNMP manager.

SNMP Versions

There are three different versions of SNMP that can be configured:

  • SNMPv1—This was the original version of SNMP; SNMPv1 utilizes a community based security mechanism.
  • SNMPv2c—This was created to update a number of little things within SNMPv1; SNMPv2c utilizes a community based security mechanism.
  • SNMPv3—This was developed to provide a much higher level of security then was provided by either previous version. A couple different security features are implemented within the SNMPv3 standard; these include:
    • Message integrity
    • Authentication
    • Encryption

SNMP Security Models

When implementing SNMP, there are five different security models that can be implemented depending on the version of SNMP being used and the amount of security required. Table 1 below shows the different features of each available model and what authentication and encryption they support.

Table 1—SNMP Security Models

Model

Level

Authentication

Encryption

v1

noAuthNoPriv

Community String

None

v2c

NoAuthNoPriv

Community String

None

v3

NoAuthNoPriv

Username

None

v3

AuthNoPriv

MD5 or SHA

None

v3

AuthPriv

MD5 or SHA

DES, 3DES, AES

SNMP Operations

Once the different elements within the network have been configured, they are able to provide a number of different operations that are used to provide the majority of the work done by SNMP. The available operations depend on what version of SNMP is being run on the network.

The following operations are available when using all of the available versions:

  • Get—The Get operation is used by the SNMP manager to retrieve one or more object instances from the SNMP agent.
  • GetNext—The GetNext operation is used by the SNMP manager to retrieve the next object instance from the SNMP agent.
  • Set—The Set operation is used by the SNMP manager to set the value of an object instance on the SNMP agent.

The following operation was added in SNMPv2c:

  • GetBulk—The GetBulk operation is used by the SNMP manager to efficiently retrieve large amounts (multiple rows) of data from the SNMP agent.

SNMP also defines different notification operations that can be used by the SNMP to notify the SNMP manager of a significant event. The following notification operation was defined in SNMPv1:

  • Trap—The Trap notification operation is used to send an unacknowledged message from the SNMP agent to the SNMP manager.

The following notification operation was added in SNMPv2c:

  • Inform—The Inform notification operation is used to send an acknowledged message from the SNMP agent to the SNMP manager.

Note that while the Trap notification operation was defined in SNMPv1, the format of the Trap message was altered in SNMPv2c.

SNMP Configuration

Regardless of the version of SNMP implemented, there are a number of different parameters that are shared. The configuration of these parameters is shown in Table 2.

Table 2—General SNMP Parameter Configuration

Step 1

Enter privileged mode

router>enable

Step 2

Enter global configuration mode

router#configure terminal

Step 3

Configure the SNMP contact information

router(config)#snmp-server contact text

Step 4

Configure the SNMP location information

router(config)#snmp-server location text

Step 5

Configure the SNMP chassis-id

router(config)#snmp-server chassis-id number

Step 6

Configure an SNMP view; a view can be used to limit the type of information that is accessible.

router(config)#snmp-server view view-name oid-tree {included | excluded}

Step 7

Exit configuration mode

router(config)#end

The configuration of how an SNMP agent communicated to the SNMP manager depends on the version of SNMP being implemented. SNMPv1 and SNMPv2c utilize community strings to authenticate with the SNMP agent and manager. The configuration required to setup this relationship between the SNMP agent and SNMP manager when implementing these versions is shown in Table 3.

Table 3—SNMP v1/v2c Configuration

Step 1

Enter privileged mode

router>enable

Step 2

Enter global configuration mode

router#configure terminal

Step 3

Configure the SNMP community.

The view-name is used to limit the variable that is accessible to those accessing the SNMP agent using a specific community string.

The access-list-number refers to an access list that can contain a list of ip addresses of SNMP manager that are allowed to access the SNMP agent.

router(config)#snmp-server community string [view view-name] [ro | rw] [access-list-number]

Step 4

Exit configuration mode

router(config)#end

The configuration of a SNMPv3 agent is a bit more involved, as it requires the setup of users and groups that are used to authenticate with the SNMP manager. Another piece of information that is required when configuring this connection is the SNMPV3 EngineID of the remote host; this EngineID exists on each SNMPv3 element and is typically automatically created. The configuration required to setup when SNMPv3 is being implemented is shown in Table 4.

Table 4—SNMP v3 Configuration

Step 1

Enter privileged mode

router>enable

Step 2

Enter global configuration mode

router#configure terminal

Step 3

Configure the remote EngineID of the SNMP manager

router(config)#snmp-server engineID remote remote-ip-address remote-engineID


Configure the SNMPv3 group

router(config)#snmp-server group group-name v3 {auth | noauth | priv} [read read-view] [write write-view] [notify notify-view]

Step 4

Configure the SNMPv3 user associated with the SNMP manager and its associated parameters

router(config)#snmp-server user username groupname remote remote-ip-address [udp-port udp-port] v3 [encrypted] [auth {md5 | sha} auth-password] [priv {des | 3des | aes {128 | 192 |256}} priv-password]

Step 5

Exit configuration mode

router(config)#end

The configuration that is required to set up the use of SNMP traps or informs is the same regardless of the version of SNMP being used. The configuration required to setup these on the SNMP agent are shown in Table 5.

Table —SNMP Trap or Inform Configuration

Step 1

Enter privileged mode

router>enable

Step 2

Enter global configuration mode

router#configure terminal

Step 3

Configure the location where SNMP traps or informs will be sent.

Traps are sent by default

router(config)#snmp-server host host [traps | informs] [version {1 | 2c | 3 [auth | noauth | priv]}] {community-name | username}

Step 4

Configuring the sending of traps or informs.

Whether the SNMP agent sends traps or informs is configured with the snmp-server host command.

router(config)#snmp enable traps [notification-type]

Step 5

Exit configuration mode

router(config)#end

Summary

The deployment of SNMP has been a long time staple within the network of many organizations. What has not been as commonly deployed is the use of SNMPv3, as it does require a different type of configuration that is a bit more time consuming. If possible, a deployment or update to the use of SNMPv3 is recommended as it does provide a much more secure management solution. Hopefully, the information in this article has clearly shown the possibilities that are available when deploying SNMP and how the different versions differ from each other.

  • + Share This
  • 🔖 Save To Your Account