The Simple Network Management Protocol (SNMP) is a framework for managing devices in an internet using the TCP/IP protocol suite. It provides a set of fundamental operations for monitoring and maintaining an internet.
SNMP uses the concept of manager and agent. That is, a manager, usually a host, controls and monitors a set of agents, usually routers.
SNMP is an application-level protocol in which a few manager stations control a set of agents. The protocol is designed at the application level so that it can monitor devices made by different manufacturers and installed on different physical networks. In other words, SNMP frees management tasks from both the physical characteristics of the managed devices and the underlying networking technology. It can be used in a heterogeneous internet made of different LANs and WANs connected by routers or gateways made by different manufacturers.
Managers and Agents A management station, called a manager, is a host that runs the SNMP client program. A managed station, called an agent, is a router (or a host) that runs the SNMP server program. Management is achieved through simple interaction between a manager and an agent. The agent keeps performance information in a database. The manager has access to the values in the database. For example, a router can store in appropriate variables, the number of packets received and forwarded. The manager can fetch and compare the values of these two variables to see if the router is congested or not.
The manager can also make the router perform certain actions. For example, a router can periodically check the value of a reboot counter to see when it should reboot itself. It reboots itself, for example, if the value of the counter is 0. The manager can use this feature to reboot the agent remotely at any time. It simply sends a packet to force a 0 value in the counter.
Agents can also contribute to the management process. The Server program running on the agent can check the environment and, if it notices something unusual, it can send a warning message (called a trap) to the manager.
In other words, management with SNMP is based on three basic ideas.
- A manager checks an agent by requesting information that reflects the behavior of the agent.
- A manager forces an agent to perform a task by resetting values in the agent database.
- An agent contributes to the management process by warning the manager of an unusual situation.
Components Management in the Internet is achieved not only through the SNMP protocol but also by using other protocols that cooperate with SNMP. At the top level, management is accomplished with two protocols.
- Structure of management information (SMI)
- Management information base (MIB)
SNMP uses the services provided by these two protocols to do its job. In other words, management is a team effort by SMI, MIB, and SNMP. All three use other protocols such as abstract syntax notation l (ASN 1) and basic encoding rules (BER).
SMI – The SMI is a component used in network management. Its functions are to name objects, to define the type of data that can be stored in an object, and to show how to encode data for transmission over the network.
MIB – The management information base (MIB) is the second component used in network management. Each agent has its own MIB, which is a collection of all the objects that the manager can manage. The objects in the MIB are categorized under eight different groups. They are, system, interface, address translation, ip, icmp, tcp, udp, and egp.
Each group has defined variables and/ or tables.
SNMP defines five messages: GetRequest, GetNextRequest, SetRequest, GetResponse, and Trap.
Get Request: This message is sent from the manager (client) to the agent (server) to retrieve the value of a variable.
GetNextRequest This message is sent from the manager to the agent to retrieve the value of a variable.
The retrieved value is the value of the object, following the defined object in the message. It is mostly used to retrieve the values of the entries in a table. If the manager does not know the indexes of the entries, it cannot retrieve the values. However, it can use GetNextRequestand define the object.
GetResponse This message is sent from an agent to a manager in response to GetRequest and GetNextRequest. It contains the value of the variable(s) requested by the manager.
SetRequest This message is sent from the manager to the agent to set (store) a value in a variable.
Trap This message is sent from the agent to the manager to report an event. For example, if the agent is rebooted, it inf0rms the manager and reports the time of rebooting.