A Management Information Base (MIB) is a collection of information that is stored on the local agent of a managed device. MIBs are organized hierarchically and are accessed by the NMS. MIBs are databases of objects organized in a tree-like structure, with each branch containing similar objects. Each object has an object identifier (number) that uniquely identifies the managed object of the MIB hierarchy. Read and write community strings are used to control access to MIB information.
The top-level MIB object IDs belong to different standards organizations, and lower-level object IDs are allocated to associated organizations. Standard MIBs are defined by RFCs. Vendors define private branches that include managed objects for their products. Figure 5-4 shows a portion of the MIB tree structure. RFC 1213 describes the MIBs for TCP/IP. Cisco defines the MIBs under the Cisco head object. For example, a Cisco MIB can be uniquely identified by either the object name iso.org.dod.internet.private.enterprise.cisco or the equivalent object descriptor 1.3.6.1.4.1.9.

Figure 5-4 MIB Tree Structure
Each manageable feature in the MIB is called an MIB variable. The MIB module is a document that describes each manageable feature that is contained in an agent. The MIB module is written in Abstract Syntax Notation 1 (ASN.1). Three ASN.1 data types are required: name, syntax, and encoding. The name serves as the object identifier. The syntax defines the object’s data type (integer or string). The encoding data describes how information associated with a managed object is formatted as a series of data items for transmission on the network. The following are examples of standard managed objects that can be obtained from the MIB tree:
- Interfaces
- Buffers
- Memory
- Standard protocols
From the Cisco private tree, you can obtain the following additional information:
- Small, medium, and large buffers
- Primary and secondary memory
- Proprietary protocols (such as Enhanced Interior Gateway Routing Protocol [EIGRP])
SNMP Versions
SNMP was initially defined in RFC 1157. Since then, SNMP has evolved, and each new version has added new message types.
SNMPv1
SNMPv1, defined in RFC 1157, is a simple request-and-response protocol. The NMS manager issues a request, and managed devices return responses. The data types are limited to 32-bit values. SNMPv1 uses four protocol operations with five message types to carry out the communication:
- Get Request: Retrieves the value of a specific MIB variable.
- GetNext Request: Retrieves the next instance of the MIB variable.
- Get Response: Contains the values of the requested variable.
- Set Request: Specifies a request from the manager to the agent to set an MIB variable. It can be used to modify the agent’s configuration.
- Trap: Transmits an unsolicited alarm condition.
Figure 5-5 shows the SNMPv1 message types.

Figure 5-5 SNMPv1 Message Types
The NMS manager uses the Get operation to retrieve the value-specific MIB variable from an agent. The GetNext operation is used to retrieve the next object instance in a table or list within an agent. The Get Response contains the value of the requested variable.
The NMS manager uses the Set operation to set values of the object instance within an agent. For example, the Set operation can be used to set an IP address on an interface or to bring an interface up or down. Agents use the Trap operation to inform the NMS manager of a significant alarm event. For example, a trap is generated when a WAN circuit goes down.