A Quick Guide to SNMP (Simple Network Management Protocol)

What is SNMP?

Simple Network Management Protocol (SNMP) is a standard protocol defined by the Internet Engineering Task Force (IETF) that allows network administrators to monitor and manage devices on a network, such as routers, switches, and servers. SNMP works by allowing network devices to send messages (known as SNMP messages or SNMP traps) to a central monitoring system that can analyze the data and take action as needed. 

For example, an SNMP message could report on the status of a device (such as CPU usage, memory usage, or network traffic), and the monitoring system can use this information to alert administrators if the device is not performing as expected. SNMP messages are sent using a hierarchical structure of objects, known as the Management Information Base (MIB). Each object in the MIB represents a specific aspect of a device's configuration or performance, and can be queried or set by SNMP messages.

SNMP is widely used in enterprise and service provider networks, as it provides a standardized method for managing and monitoring devices from different vendors. It is also used in Internet of Things (IoT) applications to monitor and manage connected devices in healthcare, manufacturing, transportation and other industries.

What's the history of SNMP?

SNMP was developed in the late 1980s as a standard for managing and monitoring network devices, such as routers, switches and servers. It was originally developed by a group of networking experts from various companies and organizations, including Digital Equipment Corporation (DEC), IBM, Hewlett-Packard (HP), and MIT.

SNMPv1 was published in 1988 as part of the Transmission Control Protocol/Internet Protocol (TCP/IP) suite. SNMPv2 was released in 1993, and added several new features, including improved security mechanisms, better support for distributed management, and enhanced functionality for managing large-scale networks. SNMPv3, released in 1998, further improved security by adding support for encryption and authentication, as well as other features such as event notification, enhanced error handling, and improved performance. 

Over the years, SNMP has become widely adopted and is supported by a wide range of vendors and devices. It has also been extended to support other areas of network management, such as Quality of Service (QoS), traffic analysis and network configuration management. 

Architectural Elements of SNMP

SNMP (Simple Network Management Protocol) follows a client-server architecture, where the network devices are the clients, and the network management system (NMS) is the server.

The SNMP architecture consists of three main components:

  1. Managed Devices: These are the network devices that are being managed using SNMP. Examples include routers, switches, servers, printers, and other network appliances.
  1. Agents: Agents are software processes that run on managed devices and interact with the SNMP protocol. They collect and store data about the device's configuration, performance, and status, and respond to SNMP requests from the network management system.
  1. Network Management System (NMS): The NMS is a software system that manages and monitors the network devices. It can send SNMP requests to the agents running on the managed devices to collect information about the device's configuration, performance, and status. It can also receive SNMP traps (messages) from the agents to alert it to any issues or events that require attention.

The SNMP architecture also includes a Management Information Base (MIB), which is a hierarchical tree structure that defines the objects (variables) that can be monitored or controlled using SNMP. Each object in the MIB has a unique identifier (OID), and SNMP messages use OIDs to identify the object being queried or set.

SNMP Components

The components of SNMP include:

  • Management Information Base (MIB): A hierarchical database that defines the variables (known as objects) that can be monitored or controlled using SNMP. MIB is organized as a tree structure, with each node representing a particular object and each object identified by an Object Identifier (OID).
  • Network Management System (NMS): The software system that manages and monitors the network devices using SNMP. NMS sends SNMP requests to the agents running on the managed devices to collect information about the device's configuration, performance and status. It can also receive SNMP traps (messages) from the agents to alert it to any issues or events that require attention.
  • Agents: Software processes that run on the managed devices and interact with the SNMP protocol. They collect and store data about the device's configuration, performance and status, and respond to SNMP requests from the network management system.
  • SNMP Messages: Messages used to communicate between the NMS and the agents. There are five types: GetRequest, GetNextRequest, GetResponse, SetRequest, and Trap.
  • SNMP Protocol Operations: Get, GetNext, Set and Trap. These operations are used to manage and monitor network devices -.

These components work in concert to provide a standardized way of managing and monitoring network devices using SNMP. The MIB defines the objects that can be monitored or controlled, the NMS sends requests and receives traps, the agents collect and store data, and SNMP messages and protocol operations facilitate communication between the components.

SNMP Versions

There are three main versions of SNMP:

  1. SNMPv1 is a simple protocol that provides basic management functions such as monitoring device status and collecting statistics. It uses a community-based security model, which relies on a shared community string to authenticate and control access to devices.
  1. SNMPv2 introduced several improvements and enhancements to SNMPv1, including support for more complex management functions and better error handling. SNMPv2 also introduced two new versions: SNMPv2c, which uses a community-based security model similar to SNMPv1, and SNMPv2u, which uses a user-based security model.
  1. SNMPv3 is the most secure and feature-rich version of SNMP. It introduces several security features, including authentication, encryption, and access control, to protect against unauthorized access and tampering of data. SNMPv3 also includes several performance improvements and new features such as event notifications and message compression.

While SNMPv1 and SNMPv2 are still in use, SNMPv3 is becoming more widely adopted due to its improved security and enhanced functionality. It is also backwards-compatible with previous versions of SNMP, which means that SNMPv3 management systems can still manage devices that only support earlier versions of the protocol.

SNMP Operations

SNMP defines several operations, also known as protocol data units (PDUs), that are used to manage and monitor network devices:

  1. Get: Used by the network management system (NMS) to retrieve a single value from a managed device. The NMS sends a GetRequest message to the device, which responds with a GetResponse message containing the requested value.
  2. GetNext: Used by the NMS to retrieve the next value in a sequence of values from a managed device. The NMS sends a GetNextRequest message to the device, which responds with a GetResponse message containing the next value in the sequence.
  3. Set: Used by the NMS to modify a value in a managed device. The NMS sends a SetRequest message to the device, which responds with a SetResponse message to confirm the modification.
  4. Trap: Used by a managed device to notify the NMS of an event or error condition. The device sends a Trap message to the NMS, which receives the message and takes appropriate action.
  5. GetBulk: Used by the NMS to retrieve large amounts of data from a managed device in a single request. The NMS sends a GetBulkRequest message to the device, which responds with a GetResponse message containing multiple values.
  6. Inform: Similar to the Trap operation, but it requires confirmation from the NMS. The device sends an Inform message to the NMS, which receives the message and sends a Response message to confirm receipt.

SNMP operations are used in combination with the MIB to manage and monitor network devices. The NMS sends Get and GetNext operations to retrieve data from the MIB, and Set operations to modify data in the MIB. Traps and Informs are used to receive notifications from the managed devices about events or issues. 

What Is the SNMP MIB?

SNMP MIB is a virtual database that contains information about the managed devices on a network. It is a hierarchical structure that organizes information in a tree-like structure, with each branch representing a different aspect of the device's configuration, performance or status.

The MIB contains a set of standardized objects that can be queried and modified using SNMP operations. Each object is uniquely identified by an OID, a sequence of numbers that defines the object's location in the MIB hierarchy. The MIB also includes definitions for the data types that can be used to represent the values of the objects - integers, strings, booleans and more complex data structures such as tables.

SNMP agents running on managed devices collect and store data in the MIB, which can then be accessed and manipulated by SNMP managers using SNMP operations. This allows network administrators to monitor and manage network devices, and to diagnose and resolve network issues.

There are several standard MIBs defined by the Internet Engineering Task Force (IETF), such as the System MIB, the Interface MIB, and the TCP MIB. In addition, vendors may define their own proprietary MIBs to provide additional information or functionality specific to their devices.

SNMP Security

SNMP provides several mechanisms for securing communication between SNMP agents and managers, all implemented through SNMP versions and community strings.

SNMPv1 and SNMPv2c use a community string, similar to a password, to authenticate SNMP requests and responses. When an SNMP manager sends a request to an agent, it includes a community string. The agent checks this string against its configured community strings to authenticate the request. However, SNMPv1 and SNMPv2c do not provide any encryption for the data being transmitted, so the community string is sent in clear text. This makes it vulnerable to interception and eavesdropping. 

SNMPv3 addresses this vulnerability by providing authentication and encryption for SNMP communication. It uses a security model to define how authentication and encryption are applied. The security model includes a set of parameters, such as security level, authentication protocol and encryption protocol. SNMPv3 also uses a username and password to authenticate SNMP requests and responses, rather than a community string. The username and password are encrypted and authenticated using the selected authentication protocol.

SNMP Applications

SNMP is widely used in network management systems to monitor and manage network devices, including routers, switches, servers, printers, and other network devices. It can also be used to monitor security events on network devices, such as detecting unauthorized access attempts, monitoring firewall activity, and tracking intrusion attempts.

SNMP can be used to manage the configuration of network devices, such as configuring interfaces, setting up VLANs, and managing routing tables. It can also be used to detect and respond to network faults, such as hardware failures, software errors and network connectivity issues.

Another important application of SNMP is to track network assets, such as servers, routers, switches and other network devices. This information can be used to manage device inventories, track device locations, and maintain accurate records of device configurations.

SNMP Tools

SNMP software refers to any software application or tool that is used to implement or manage the SNMP in a network environment. Network administrators and IT professionals use this software to monitor and manage network devices and applications, identify and diagnose network issues, configure network devices, and ensure that the network is running smoothly and efficiently. In addition to MIB browsers, SNMP software can include:

  • SNMP agents: Installed on network devices so they can communicate with SNMP managers
  • SNMP managers: Manage and monitor network devices 
  • SNMP traps and notifications: Send messages to SNMP managers to notify them of specific events or conditions
  • SNMP monitoring tools: Monitor network devices and gather data on their performance and status

SNMP testers enable administrators to test and verify the functionality and performance of SNMP-enabled network devices. They simulate SNMP traffic to test the responsiveness of SNMP agents on network devices, and to identify issues related to SNMP communication and data retrieval.They may also  retrieve SNMP data from network devices to test the accuracy and completeness of the data.

SNMP Best Practices

Here are some best practices for configuring, device and server monitoring, and troubleshooting SNMP:

  1. Use SNMPv3, as it provides improved security features over previous versions of SNMP.
  2. Configure SNMP agents on network devices with the appropriate MIBs and SNMP settings. Make sure that the SNMP agents are properly configured and that they are set up to send SNMP traps to the appropriate SNMP managers.
  3. Use SNMP monitoring tools to monitor network devices and gather data on their performance and status. 
  4. Monitor SNMP traffic to detect issues related to SNMP communication, data retrieval and management, and SNMP traffic analysis tools to identify SNMP traffic patterns and anomalies.
  5. Enable SNMP logging on network devices to capture SNMP messages and errors. Analyze the SNMP logs to troubleshoot issues related to SNMP communication, data retrieval and management.
  6. Set SNMP thresholds to trigger alerts when network devices reach certain thresholds for performance or utilization. This can help you identify and address issues before they impact network performance.
  7. Monitor SNMP traps to detect issues related to SNMP managers. Use SNMP trap analysis tools to identify SNMP trap patterns and anomalies.
  8. Test SNMP functionality regularly to ensure that SNMP-enabled devices are functioning properly. Use SNMP testers to simulate SNMP traffic and test the responsiveness of SNMP agents and managers.

By following these best practices, you can configure, monitor and troubleshoot SNMP-enabled devices more effectively, and ensure that your network is running smoothly and efficiently.

Conclusion

While newer technologies such as REST APIs and Netconf/Yang are gaining popularity, SNMP is still widely used in many network environments and will likely continue to be used in the future. Recent developments offer improved security features and support for a wider range of devices and systems, including virtual machines and cloud infrastructure. As network technology continues to evolve, SNMP may also continue to be updated and improved to meet the changing needs of network management, and server and device monitoring.

Lansweeper uses SNMP to discover and monitor network devices, and retrieve information such as device type, manufacturer, model, firmware version, CPU and memory usage, network interface status and traffic and more. This information is then stored in a central database, which can be used to generate reports, track changes and identify potential issues. Lansweeper also uses SNMP to perform tasks such as configuring network devices, backing up and restoring device configurations, and deploying software updates. 

To learn more about how Lansweeper scans and detects network devices here. New to Lansweeper? Try it for free today!

You may also like...

Try Lansweeper for Free

Learn why Lansweeper is used by thousands of enterprises worldwide.​