Simple Network Management Protocol (SNMP) is used to gather information such as status information, configuration settings and counters from network intermediary devices.
This information is collected by management applications to both monitor and manage the network.
Each device on a network has similar variables such as IP addresses, interface packet counters. A Database is used to represent these variables.
Two versions: SNMP v2c & SNMP v3
Agent - This is the software running within each network intermediary device that has information about the variables within the device.
Manager - This is a network management application running either on a PC or a centralized server on the network, commonly known as the Network Management Station (NMS). The SNMP Manager is responsible for interfacing with the network intermediary devices.
MIB - Management Information Base (MIB) - contains variables which are contained within a specific devices.
SNMP GET - This message is used to request information about variables from an Agent on the network.
SNMP SET - The NMS sends SNMP SET messages to the Agent to write variables such as configurations on the device (switch, router, etc.).
When a SNMP Agent initiates a communication to the Network Management Station (NMS), these notifications are uses SNMP messages known as Trap and Inform.
SNMP Traps - Trap messages are sent from the SNMP Agent to the NMS notifying of a change on the device. An example if in the event a router's interface change to a down state. Traps were around since SNMP v1 and uses UDP as the Transport protocol, thus providing no reliability.
SNMP Informs - Inform messages were added in the SNMPv2 and uses UDP, however there is additional application layer availability. The NMS must respond to the SNMP Inform messages, if no response is provided by the NMS to the Agent, the Agent will re-send the SNMP Trap message again.
The MIB is used to define the variable on each device such as their values and update the SNMP Agent. These variables as known as Object ID (OID).
The MIB organizes the OIDs in part with the vendor-proprietary variables.
The MIB organizes the variables into a hierarchical OID structure.