Simple Architecture Diagram: SNMP Manager and SNMP Agent
The Network Element
The Network Element contains the SNMP Agent. We call Network Element any type of device capable of communicating over the network.
Network Elements include, but are not limited to, routers, access servers, switches, bridges, hubs, IP telephones, IP video cameras, Microwave Links, DSLAMs, computer hosts, and printers.
To support SNMP, each Network Element must contain a software component called SNMP Agent, which runs all the time and communicates via SNMP with the Network Manager.
SNMP Agents contained in Network Elements, perform two main tasks:
- They expose data concerning the configuration, status and performance of the Network Element they reside, as variables.
- They send notifications concerning status change and faults of the Network Element they reside.
The SNMP Agent has local access and therefore knowledge of the Network Elements internal configuration, status and performance. This information is translated to SNMP specific form from the usually proprietary structure of the Network Element software.
The SNMP interface of the SNMP Agent allows unidirectional (read-only) or bidirectional (read-write) access to Network Element-specific information. This information is exchanged with the Network Manager.
The SNMP Agent uses an information database called Management Information Base (MIB) to store and retrieve information related with the status, performance and configuration of the Network Element it resides.
The Network Manager
We call Network Manager a computer or server capable of managing Network Elements (i.e. devices) over an IP network.
Network Managers include, but are not limited to, PCs running standalone software open-source software, Servers running specialized software that provide User Interface over a Web Browser or dedicated Windows/Java applications.
The SNMP Manager is usually branded open-source or commercial software, like Solarwind, SNMPc, openNMS, PRTG etc.
To support SNMP, the Network Manager must contain software called SNMP Manager, which runs all the time and communicates via SNMP with the Network Elements. SNMP Managers perform three main tasks:
- They request & receive data concerning the configuration, status and performance of the Network Element they manage.
- They sometimes edit the configuration of the Network Element they manage.
- They receive notifications concerning status change and faults of the Network Element they manage.
The SNMP protocol permits active management tasks to be performed from the SNMP Manager, i.e. to modify and apply a new configuration to an SNMP Agent. This can be done by editing the exposed data (variables) of the SNMP Agent.
These configuration variables but also the status, performance ones are organized in hierarchies. These hierarchies, and other metadata (such as type and description of the variable), are described by SNMP MIBs, the so-called Management Information Bases. SNMP Managers need to be aware of the SNMP MIBs supported by the SNMP Agents in order to be able to communicate.
A closer look at SNMP
If you feel like you want to dig deeper in SNMP to see how it works and how the functions described in the overview are implemented, I recommend you continue reading!
What is an SNMP Manager?
The SNMP manager is a separate entity that is responsible to communicate with the SNMP agent implemented within network devices.
An SNMP manager is software dedicated for network management typically running in a computer (PC or Server).
SNMP Manager’s key functions:
- Queries SNMP agents, i.e. requests information
- Gets responses from SNMP agents, i.e. collects information.
- Sets variables in SNMP agents, i.e. configures devices
- Acknowledges asynchronous events from SNMP agents, i.e. collects alarms and notifications
What is an SNMP Agent?
The SNMP agent is a software program that is packaged within the network element.
Activating the SNMP agent allows it to start collecting the management information database from the device locally and makes it available to the SNMP manager, when it is queried for.
The SNMP agents can be based on open-source libraries like the netSNMP Agent or they can be proprietary implementations. This is done typically by some equipment vendors.
SNMP agent’s key functions:
- Collects management information about its local environment and stores it in the MIB.
- When a request comes from the SNMP Manager, it retrieves management information from the MIB to send back as a response.
- When requested from the SNMP Manager, it updates management information in the MIB concerning the configuration of the device it resides.
- Signals an event or fault to the SNMP manager via SNMP traps.
- Acts as a proxy for some non–SNMP manageable network nodes.
What is the Management Information Base (MIB)?
Every SNMP agent maintains an information database describing the managed device parameters and holding their latest or sometimes historical values.
The SNMP manager must know the structure of this database, to be able to request from the agent specific information.
This commonly shared database between the Agent and the Manager is called Management Information Base (MIB).
The MIB is maintained, i.e. filled with data, in the Network Element. There is no copy of it in the SNMP Manager. The SNMP Manager uses the MIB structure to request specific information but when the SNMP Manager receives responses from the SNMP Agent, it translates the information received in a structure better suited to be stored in databases running on computers, i.e. SQL databases such as Oracle, mySQL, Postgres etc.
We have two types of MIBs:
- Standard or public MIBs
- Private MIBs.
The standard MIBs allow Equipment Manufacturers to make sure that their equipment can be managed from day one by Commerial Of-The-Shelf (COTS) Network Managers. This is possible because the popular Network Managers support almost all standard MIBs.
What happens if the standard MIBs do not include variables for a statistical or control values used specifically by a device? The SNMP standard is flexible enough to allow the Equipment Manufacturers to create their own private MIBs that the SNMP Agents and Managers can use.
Summarizing, MIB files are the set of questions that a SNMP Manager can ask the SNMP Agent. The SNMP Agent collects these data locally and stores it, as defined in the MIB. So, the SNMP Manager should be aware of these standard and private questions for every type of agent.
Is the MIB part of SNMP?
Although we sometimes use the term SNMP to refer to both the protocol and the information database, if we want to be accurate, the SNMP protocol itself does not define which information (which variables) a Network Element should offer.
The SNMP protocol uses an extensible design, where the available information is defined by management information bases (MIBs).
MIB structure and Object Identifiers (OIDs)
So, how are the MIBs internally structured and what is the use of OIDs?
MIBs use a standard notation for OIDs, defined by ASN.1.
The MIB is a collection of information for managing Network Elements. The MIB comprises of variables that store values related with statistics or control of the Network Element it resides. We call these variables Managed Objects and we identify them by an Object Identifier or shorter Object ID (or OID).
MIBs actually use a hierarchical namespace containing object identifiers (OID). Each OID identifies a variable that can be read or set via SNMP. As every Object ID is organized hierarchically in the MIB, we can represent the MIB hierarchy in a tree structure with individual variable identifiers.