Simple Network Management Protocol (SNMP) is part of an Internet Protocol Suite (IPS). It is defined by the Internet Engineering Task Force (IETF). This organization is in charge of defining standards and protocols that provide a base for creation and exchange of data over the Internet. SNMP defines a set of standards for SNMP network discovery that include application protocol, database schema, as well as the definition of data sets.
Relatively small numbers of what we generally consider to be standards are in fact full standards and this only gives weight to Simple Network Management Protocol and its use in management and monitoring areas.
A common use of SNMP is in the default configuration that consists of at least one computer or another device that has an administrative role (master) and a group of managed networked devices that are controlled by the master device. Every managed device (slave) is running a software component called an agent that is in charge of communication with the master node.
Agents provide for access to various system variables of managed device (e.g. system identification, available resources, resource consumption, etc.) but also provide a mechanism to control the device by setting the values of specified variables to desired values (e.g. bringing network interfaces up or down, changing their addresses, etc).
Data transfer is typically done over User Datagram Protocol (UDP) with default port numbers 161 on the agent side and 162 on the master side. Communication can be initiated by the master through use of GET operations for accessing the data and SET operations used to modify the data, as well as by the managed device through the use of TRAP or INFORM operations used to send data to the management node.
Extending Simple Network Management Protocol Functionality
Simple Network Management Protocol allows for a flexible approach and management of networked devices but is unfortunately limited to functionality implemented in the agent component. If one desires to access additional data or enable new functionality, there are several approaches you could take. Among the most used are: modification of the agent, use of external programs and use of AgentX protocol.
The most efficient, but also the most difficult to implement and least flexible, approach is modifying the agent to implement required functions through access to and modification of the source code of the agent in question. If it is impossible or infeasible to modify the agent, or if there is a need for several agents on the same device, a solution can be obtained by the use of SNMP proxy software.
Use of a proxy increases the complexity of the system by the introduction of an additional layer in the architecture and also requires full support for all relevant requirements on this layer (e.g. the proxy layer becomes a key component in security aspect). An alternative solution is the use of external software programs for access to required data.
The simplest solution is the execution of the external program every time the need for specific data arises. This approach can have severely degraded performances as the program could be executed during any SNMP operation. A better solution is the parallel execution of both agent and external program, providing the means for communication between them.
That is our short explanation of Simple Network Management Protocol. Feel free to visit the links provided throughout for more information.