Network Working Group K. McCloghrie Request For Comments: 1156 Hughes LAN Systems Obsoletes: RFC 1066 M. Rose Performance Systems International May 1990 Management Information Base for Network Management of TCP/IP-based internets Table of Contents 1. Status of this Memo ................................... 1 2. IAB Policy Statement .................................. 2 3. Introduction .......................................... 2 4. Objects ............................................... 6 4.1 Object Groups ........................................ 6 4.2 Format of Definitions ................................ 7 5. Object Definitions .................................... 8 5.1 The System Group ..................................... 9 5.2 The Interfaces Group ................................. 11 5.2.1 The Interfaces Table ............................... 11 5.3 The Address Translation Group ........................ 23 5.4 The IP Group ......................................... 26 5.4.1 The IP Address Table ............................... 34 5.4.2 The IP Routing Table ............................... 36 5.5 The ICMP Group ....................................... 43 5.6 The TCP Group ........................................ 53 5.7 The UDP Group ........................................ 62 5.8 The EGP Group ........................................ 64 5.8.1 The EGP Neighbor Table ............................. 65 6. Definitions ........................................... 68 7. Acknowledgements ...................................... 89 8. References ............................................ 90 9. Security Considerations................................ 91 10. Authors' Addresses.................................... 91 1. Status of this Memo This RFC is a re-release of RFC 1066, with a changed "Status of this Memo", "IAB Policy Statement", and "Introduction" sections plus a few minor typographical corrections. The technical content of the document is unchanged from RFC 1066. This memo provides the initial version of the Management Information Base (MIB) for use with network management protocols in TCP/IP-based internets in the short-term. In particular, together with its companion memos which describe the structure of management
information along with the initial network management protocol, these documents provide a simple, workable architecture and system for managing TCP/IP-based internets and in particular the Internet. This memo specifies a Standard Protocol for the Internet community. TCP/IP implementations in the Internet which are network manageable are expected to adopt and implement this specification. The Internet Activities Board recommends that all IP and TCP implementations be network manageable. This implies implementation of the Internet MIB (RFC-1156) and at least one of the two recommended management protocols SNMP (RFC-1157) or CMOT (RFC-1095). It should be noted that, at this time, SNMP is a full Internet standard and CMOT is a draft standard. See also the Host and Gateway Requirements RFCs for more specific information on the applicability of this standard. Please refer to the latest edition of the "IAB Official Protocol Standards" RFC for current information on the state and status of standard Internet protocols. Distribution of this memo is unlimited. 2. IAB Policy Statement This MIB specification is the first edition of an evolving document defining variables needed for monitoring and control of various components of the Internet. Not all groups of defined variables are mandatory for all Internet components. For example, the EGP group is mandatory for gateways using EGP but not for hosts which should not be running EGP. Similarly, the TCP group is mandatory for hosts running TCP but not for gateways which aren't running it. What IS mandatory, however, is that all variables of a group be supported if any element of the group is supported. It is expected that additional MIB groups and variables will be defined over time to accommodate the monitoring and control needs of new or changing components of the Internet. The responsible working group(s) will continue to refine this specification. 3. Introduction As reported in RFC 1052, IAB Recommendations for the Development of Internet Network Management Standards [1], the Internet Activities Board has directed the Internet Engineering Task Force (IETF) to create two new working groups in the area of network management. One group was charged with the further specification and definition of
elements to be included in the Management Information Base. The other was charged with defining the modifications to the Simple Network Management Protocol (SNMP) to accommodate the short-term needs of the network vendor and operator communities. In the long- term, the use of the OSI network management framework was to be examined using the ISO CMIS/CMIP [2,3] framework as a basis. Two documents were produced to define the management information: RFC 1065, which defined the Structure of Management Information (SMI) [4], and RFC 1066, which defined the Management Information Base (MIB) [5]. Both of these documents were designed so as to be compatible with both the SNMP and the OSI network management framework. This strategy was quite successful in the short-term: Internet-based network management technology was fielded, by both the research and commercial communities, within a few months. As a result of this, portions of the Internet community became network manageable in a timely fashion. As reported in RFC 1109, Report of the Second Ad Hoc Network Management Review Group [6], the requirements of the SNMP and the OSI network management frameworks were more different than anticipated. As such, the requirement for compatibility between the SMI/MIB and both frameworks was suspended. The IAB has designated the SNMP, SMI, and the initial Internet MIB to be full "Standard Protocols" with "Recommended" status. By this action, the IAB recommends that all IP and TCP implementations be network manageable and that the implementations that are network manageable are expected to adopt and implement the SMI, MIB, and SNMP. As such, the current network management framework for TCP/IP- based internets consists of: Structure and Identification of Management Information for TCP/IP-based Internets, which describes how managed objects contained in the MIB are defined as set forth in RFC 1155 [7]; Management Information Base for Network Management of TCP/IP- based Internets, which describes the managed objects contained in the MIB as set forth in this memo; and, the Simple Network Management Protocol, which defines the protocol used to manage these objects, as set forth in RFC 1157 [8]. The IAB also urged the working groups to be "extremely sensitive to the need to keep SNMP simple," and recommends that the MIB working group take as its starting inputs the MIB definitions found in the High-Level Entity Management Systems (HEMS) RFC 1024 [9], the initial SNMP specification [10], and the CMIS/CMIP memos [11,12].
Thus, the list of managed objects defined here, has been derived by taking only those elements which are considered essential. Since such elements are essential, there is no need to allow the implementation of individual objects, to be optional. Rather, all compliant implementations will contain all applicable (see below) objects defined in this memo. This approach of taking only the essential objects is NOT restrictive, since the SMI defined in the companion memo provides three extensibility mechanisms: one, the addition of new standard objects through the definitions of new versions of the MIB; two, the addition of widely-available but non-standard objects through the multilateral subtree; and three, the addition of private objects through the enterprises subtree. Such additional objects can not only be used for vendor-specific elements, but also for experimentation as required to further the knowledge of which other objects are essential. The primary criterion for being considered essential was for an object to be contained in all of the above referenced MIB definitions. A few other objects have been included, but only if the MIB working group believed they are truly essential. The detailed list of criteria against which potential inclusions in this (initial) MIB were considered, was: 1) An object needed to be essential for either fault or configuration management. 2) Only weak control objects were permitted (by weak, it is meant that tampering with them can do only limited damage). This criterion reflects the fact that the current management protocols are not sufficiently secure to do more powerful control operations. 3) Evidence of current use and utility was required. 4) An attempt was made to limit the number of objects to about 100 to make it easier for vendors to fully instrument their software. 5) To avoid redundant variables, it was required that no object be included that can be derived from others in the MIB. 6) Implementation specific objects (e.g., for BSD UNIX) were excluded. 7) It was agreed to avoid heavily instrumenting critical
sections of code. The general guideline was one counter per critical section per layer.
4. Objects Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using Abstract Syntax Notation One (ASN.1) [13]. The mechanisms used for describing these objects are specified in the companion memo. In particular, each object has a name, a syntax, and an encoding. The name is an object identifier, an administratively assigned name, which specifies an object type. The object type together with an object instance serves to uniquely identify a specific instantiation of the object. For human convenience, we often use a textual string, termed the OBJECT DESCRIPTOR, to also refer to the object type. The syntax of an object type defines the abstract data structure corresponding to that object type. The ASN.1 language is used for this purpose. However, the companion memo purposely restricts the ASN.1 constructs which may be used. These restrictions are explicitly made for simplicity. The encoding of an object type is simply how that object type is represented using the object type's syntax. Implicitly tied to the notion of an object type's syntax and encoding is how the object type is represented when being transmitted on the network. This memo specifies the use of the basic encoding rules of ASN.1 [14]. 4.1. Object Groups Since this list of managed objects contains only the essential elements, there is no need to allow individual objects to be optional. Rather, the objects are arranged into the following groups: - System - Interfaces - Address Translation - IP - ICMP - TCP - UDP - EGP There are two reasons for defining these groups: one, to provide a means of assigning object identifiers; two, to provide a method for implementations of managed agents to know which objects they must implement. This method is as follows: if the semantics of a group is applicable to an implementation, then it must implement all objects
in that group. For example, an implementation must implement the EGP group if and only if it implements the EGP protocol. 4.2. Format of Definitions The next section contains the specification of all object types contained in the MIB. Following the conventions of the companion memo, the object types are defined using the following fields: OBJECT: ------- A textual name, termed the OBJECT DESCRIPTOR, for the object type, along with its corresponding OBJECT IDENTIFIER. Syntax: The abstract syntax for the object type, presented using ASN.1. This must resolve to an instance of the ASN.1 type ObjectSyntax defined in the SMI. Definition: A textual description of the semantics of the object type. Implementations should ensure that their interpretation of the object type fulfills this definition since this MIB is intended for use in multi- vendor environments. As such it is vital that object types have consistent meaning across all machines. Access: One of read-only, read-write, write-only, or not-accessible. Status: One of mandatory, optional, or obsolete.
5. Object Definitions RFC1156-MIB DEFINITIONS ::= BEGIN IMPORTS mgmt, OBJECT-TYPE, NetworkAddress, IpAddress, Counter, Gauge, TimeTicks FROM RFC1155-SMI; mib OBJECT IDENTIFIER ::= { mgmt 1 } system OBJECT IDENTIFIER ::= { mib 1 } interfaces OBJECT IDENTIFIER ::= { mib 2 } at OBJECT IDENTIFIER ::= { mib 3 } ip OBJECT IDENTIFIER ::= { mib 4 } icmp OBJECT IDENTIFIER ::= { mib 5 } tcp OBJECT IDENTIFIER ::= { mib 6 } udp OBJECT IDENTIFIER ::= { mib 7 } egp OBJECT IDENTIFIER ::= { mib 8 } END
5.1. The System Group Implementation of the System group is mandatory for all systems. OBJECT: ------- sysDescr { system 1 } Syntax: OCTET STRING Definition: A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. It is mandatory that this only contain printable ASCII characters. Access: read-only. Status: mandatory. OBJECT: ------- sysObjectID { system 2 } Syntax: OBJECT IDENTIFIER Definition: The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining "what kind of box" is being managed. For example, if vendor "Flintstones, Inc." was assigned the subtree 1.3.6.1.4.1.42, it could assign the identifier 1.3.6.1.4.1.42.1.1 to its "Fred Router". Access: read-only. Status: mandatory.
OBJECT: ------- sysUpTime { system 3 } Syntax: TimeTicks Definition: The time (in hundredths of a second) since the network management portion of the system was last re-initialized. Access: read-only. Status: mandatory.
5.2. The Interfaces Group Implementation of the Interfaces group is mandatory for all systems. OBJECT: ------- ifNumber { interfaces 1 } Syntax: INTEGER Definition: The number of network interfaces (regardless of their current state) on which this system can send/receive IP datagrams. Access: read-only. Status: mandatory. 5.2.1. The Interfaces Table OBJECT: ------- ifTable { interfaces 2 } Syntax: SEQUENCE OF IfEntry Definition: A list of interface entries. The number of entries is given by the value of ifNumber. Access: read-write. Status: mandatory. OBJECT: ------- ifEntry { ifTable 1 } Syntax: IfEntry ::= SEQUENCE {
ifIndex INTEGER, ifDescr OCTET STRING, ifType INTEGER, ifMtu INTEGER, ifSpeed Gauge, ifPhysAddress OCTET STRING, ifAdminStatus INTEGER, ifOperStatus INTEGER, ifLastChange TimeTicks, ifInOctets Counter, ifInUcastPkts Counter, ifInNUcastPkts Counter, ifInDiscards Counter, ifInErrors Counter, ifInUnknownProtos Counter, ifOutOctets Counter, ifOutUcastPkts Counter, ifOutNUcastPkts Counter, ifOutDiscards Counter, ifOutErrors Counter, ifOutQLen Gauge } Definition: An interface entry containing objects at the subnetwork layer and below for a particular interface.
Access: read-write. Status: mandatory. We now consider the individual components of each interface entry: OBJECT: ------- ifIndex { ifEntry 1 } Syntax: INTEGER Definition: A unique value for each interface. Its value ranges between 1 and the value of ifNumber. The value for each interface must remain constant at least from one re- initialization of the entity's network management system to the next re-initialization. Access: read-only. Status: mandatory. OBJECT: ------- ifDescr { ifEntry 2 } Syntax: OCTET STRING Definition: A text string containing information about the interface. This string should include the name of the manufacturer, the product name and the version of the hardware interface. The string is intended for presentation to a human; it must not contain anything but printable ASCII characters.
Access: read-only. Status: mandatory. OBJECT: ------- ifType { ifEntry 3 } Syntax: INTEGER { other(1), -- none of the following regular1822(2), hdh1822(3), ddn-x25(4), rfc877-x25(5), ethernet-csmacd(6), iso88023-csmacd(7), iso88024-tokenBus(8), iso88025-tokenRing(9), iso88026-man(10), starLan(11), proteon-10MBit(12), proteon-80MBit(13), hyperchannel(14), fddi(15), lapb(16), sdlc(17), t1-carrier(18), cept(19), -- european equivalent of T-1 basicIsdn(20), primaryIsdn(21), -- proprietary serial propPointToPointSerial(22) } Definition: The type of interface, distinguished according to the physical/link/network protocol(s) immediately "below" IP in the protocol stack. Access: read-only. Status: mandatory.
OBJECT: ------- ifMtu { ifEntry 4 } Syntax: INTEGER Definition: The size of the largest IP datagram which can be sent/received on the interface, specified in octets. Access: read-only. Status: mandatory. OBJECT: ------- ifSpeed { ifEntry 5 } Syntax: Gauge Definition: An estimate of the interface's current bandwidth in bits per second. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. Access: read-only. Status: mandatory. OBJECT: ------- ifPhysAddress { ifEntry 6 } Syntax: OCTET STRING Definition: The interface's address at the protocol layer immediately
"below" IP in the protocol stack. For interfaces which do not have such an address (e.g., a serial line), this object should contain an octet string of zero length. Access: read-only. Status: mandatory. OBJECT: ------- ifAdminStatus { ifEntry 7 } Syntax: INTEGER { up(1), -- ready to pass packets down(2), testing(3) -- in some test mode } Definition: The desired state of the interface. The testing(3) state indicates that no operational packets can be passed. Access: read-write. Status: mandatory. OBJECT: ------- ifOperStatus { ifEntry 8 } Syntax: INTEGER { up(1), -- ready to pass packets down(2), testing(3) -- in some test mode } Definition: The current operational state of the interface. The testing(3) state indicates that no operational packets can be passed.
Access: read-only. Status: mandatory. OBJECT: ------- ifLastChange { ifEntry 9 } Syntax: TimeTicks Definition: The value of sysUpTime at the time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this object contains a zero value. Access: read-only. Status: mandatory. OBJECT: ------- ifInOctets { ifEntry 10 } Syntax: Counter Definition: The total number of octets received on the interface, including framing characters. Access: read-only. Status: mandatory.
OBJECT: ------- ifInUcastPkts { ifEntry 11 } Syntax: Counter Definition: The number of (subnet) unicast packets delivered to a higher-layer protocol. Access: read-only. Status: mandatory. OBJECT: ------- ifInNUcastPkts { ifEntry 12 } Syntax: Counter Definition: The number of non-unicast (i.e., subnet broadcast or subnet multicast) packets delivered to a higher-layer protocol. Access: read-only. Status: mandatory. OBJECT: ------- ifInDiscards { ifEntry 13 } Syntax: Counter Definition: The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer
protocol. One possible reason for discarding such a packet could be to free up buffer space. Access: read-only. Status: mandatory. OBJECT: ------- ifInErrors { ifEntry 14 } Syntax: Counter Definition: The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. Access: read-only. Status: mandatory. OBJECT: ------- ifInUnknownProtos { ifEntry 15 } Syntax: Counter Definition: The number of packets received via the interface which were discarded because of an unknown or unsupported protocol. Access: read-only. Status: mandatory.
OBJECT: ------- ifOutOctets { ifEntry 16 } Syntax: Counter Definition: The total number of octets transmitted out of the interface, including framing characters. Access: read-only. Status: mandatory. OBJECT: ------- ifOutUcastPkts { ifEntry 17 } Syntax: Counter Definition: The total number of packets that higher-level protocols requested be transmitted to a subnet-unicast address, including those that were discarded or not sent. Access: read-only. Status: mandatory. OBJECT: ------- ifOutNUcastPkts { ifEntry 18 } Syntax: Counter Definition: The total number of packets that higher-level protocols requested be transmitted to a non-unicast (i.e., a subnet broadcast or subnet multicast) address, including those
that were discarded or not sent. Access: read-only. Status: mandatory. OBJECT: ------- ifOutDiscards { ifEntry 19 } Syntax: Counter Definition: The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Access: read-only. Status: mandatory. OBJECT: ------- ifOutErrors { ifEntry 20 } Syntax: Counter Definition: The number of outbound packets that could not be transmitted because of errors. Access: read-only. Status: mandatory.
OBJECT: ------- ifOutQLen { ifEntry 21 } Syntax: Gauge Definition: The length of the output packet queue (in packets). Access: read-only. Status: mandatory.
5.3. The Address Translation Group Implementation of the Address Translation group is mandatory for all systems. The Address Translation group contains one table which is the union across all interfaces of the translation tables for converting a NetworkAddress (e.g., an IP address) into a subnetwork-specific address. For lack of a better term, this document refers to such a subnetwork-specific address as a "physical" address. Examples of such translation tables are: for broadcast media where ARP is in use, the translation table is equivalent to the ARP cache; or, on an X.25 network where non-algorithmic translation to X.121 addresses is required, the translation table contains the NetworkAddress to X.121 address equivalences. OBJECT: ------- atTable { at 1 } Syntax: SEQUENCE OF AtEntry Definition: The Address Translation tables contain the NetworkAddress to "physical" address equivalences. Some interfaces do not use translation tables for determining address equivalences (e.g., DDN-X.25 has an algorithmic method); if all interfaces are of this type, then the Address Translation table is empty, i.e., has zero entries. Access: read-write. Status: mandatory. OBJECT: ------- atEntry { atTable 1 } Syntax: AtEntry ::= SEQUENCE { atIfIndex
INTEGER, atPhysAddress OCTET STRING, atNetAddress NetworkAddress } Definition: Each entry contains one NetworkAddress to "physical" address equivalence. Access: read-write. Status: mandatory. We now consider the individual components of each Address Translation table entry: OBJECT: ------- atIfIndex { atEntry 1 } Syntax: INTEGER Definition: The interface on which this entry's equivalence is effective. The interface identified by a particular value of this index is the same interface as identified by the same value of ifIndex. Access: read-write. Status: mandatory. OBJECT: ------- atPhysAddress { atEntry 2 } Syntax: OCTET STRING
Definition: The media-dependent "physical" address. Access: read-write. Status: mandatory. OBJECT: ------- atNetAddress { atEntry 3 } Syntax: NetworkAddress Definition: The NetworkAddress (e.g., the IP address) corresponding to the media-dependent "physical" address. Access: read-write. Status: mandatory.