diff options
Diffstat (limited to 'doc/rfc/rfc2925.txt')
-rw-r--r-- | doc/rfc/rfc2925.txt | 4315 |
1 files changed, 4315 insertions, 0 deletions
diff --git a/doc/rfc/rfc2925.txt b/doc/rfc/rfc2925.txt new file mode 100644 index 0000000..0d868ef --- /dev/null +++ b/doc/rfc/rfc2925.txt @@ -0,0 +1,4315 @@ + + + + + + +Network Working Group K. White +Request for Comments: 2925 IBM Corp. +Category: Standards Track September 2000 + + + Definitions of Managed Objects for Remote Ping, Traceroute, and + Lookup Operations + +Status of this Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2000). All Rights Reserved. + +Abstract + + This memo defines Management Information Bases (MIBs) for performing + remote ping, traceroute and lookup operations at a remote host. When + managing a network it is useful to be able to initiate and retrieve + the results of ping or traceroute operations when performed at a + remote host. A Lookup capability is defined in order to enable + resolving of either an IP address to an DNS name or an DNS name to an + IP address at a remote host. + + Currently, there are several enterprise-specific MIBs for performing + remote ping or traceroute operations. The purpose of this memo is to + define a standards-based solution to enable interoperability. + +Table of Contents + + 1.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 + 2.0 The SNMP Network Management Framework . . . . . . . . . . . 4 + 3.0 Structure of the MIBs . . . . . . . . . . . . . . . . . . . 5 + 3.1 Ping MIB . . . . . . . . . . . . . . . . . . . . . . . . . . 6 + 3.1.1 pingMaxConcurrentRequests . . . . . . . . . . . . . . . 6 + 3.1.2 pingCtlTable . . . . . . . . . . . . . . . . . . . . . . 6 + 3.1.3 pingResultsTable . . . . . . . . . . . . . . . . . . . . 7 + 3.1.4 pingProbeHistoryTable . . . . . . . . . . . . . . . . . 7 + 3.2 Traceroute MIB . . . . . . . . . . . . . . . . . . . . . . . 8 + 3.2.1 traceRouteMaxConcurrentRequests . . . . . . . . . . . . 8 + 3.2.2 traceRouteCtlTable . . . . . . . . . . . . . . . . . . . 8 + 3.2.3 traceRouteResultsTable . . . . . . . . . . . . . . . . . 9 + + + +White Standards Track [Page 1] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + 3.2.4 traceRouteProbeHistoryTable . . . . . . . . . . . . . . 9 + 3.2.5 traceRouteHopsTable . . . . . . . . . . . . . . . . . . 10 + 3.3 Lookup MIB . . . . . . . . . . . . . . . . . . . . . . . . . 10 + 3.3.1 lookupMaxConcurrentRequests and lookupPurgeTime . . . . 10 + 3.3.2 lookupCtlTable . . . . . . . . . . . . . . . . . . . . . 10 + 3.3.3 lookupResultsTable . . . . . . . . . . . . . . . . . . . 11 + 4.0 Definitions . . . . . . . . . . . . . . . . . . . . . . . . 12 + 4.1 DISMAN-PING-MIB . . . . . . . . . . . . . . . . . . . . . . 12 + 4.2 DISMAN-TRACEROUTE-MIB . . . . . . . . . . . . . . . . . . . 36 + 4.3 DISMAN-NSLOOKUP-MIB . . . . . . . . . . . . . . . . . . . . 63 + 5.0 Security Considerations . . . . . . . . . . . . . . . . . . 73 + 6.0 Intellectual Property . . . . . . . . . . . . . . . . . . . 74 + 7.0 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 74 + 8.0 References . . . . . . . . . . . . . . . . . . . . . . . . . 74 + 9.0 Author's Address . . . . . . . . . . . . . . . . . . . . . . 76 + 10.0 Full Copyright Statement . . . . . . . . . . . . . . . . . 77 + +1.0 Introduction + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119, reference + [13]. + + This document is a product of the Distributed Management (DISMAN) + Working Group. Its purpose is to define standards-based MIB modules + for performing specific remote operations. The remote operations + defined by this document consist of the ping, traceroute and lookup + functions. + + Ping and traceroute are two very useful functions for managing + networks. Ping is typically used to determine if a path exists + between two hosts while traceroute shows an actual path. Ping is + usually implemented using the Internet Control Message Protocol + (ICMP) "ECHO" facility. It is also possible to implement a ping + capability using alternate methods, some of which are: + + o Using the UDP echo port (7), if supported. + + This is defined by RFC 862 [2]. + + o Timing an SNMP query. + + o Timing a TCP connect attempt. + + In general, almost any request/response flow can be used to generate + a round-trip time. Often many of the non-ICMP ECHO facility methods + stand a better chance of yielding a good response (not timing out for + + + +White Standards Track [Page 2] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + example) since some routers don't honor Echo Requests (timeout + situation) or they are handled at lower priority, hence possibly + giving false indications of round trip times. + + It must be noted that almost any of the various methods used for + generating a round-trip time can be considered a form of system + attack when used excessively. Sending a system requests too often + can negatively effect its performance. Attempting to connect to what + is supposed to be an unused port can be very unpredictable. There + are tools that attempt to connect to a range of TCP ports to test + that any receiving server can handle erroneous connection attempts. + + It also is important to the management application using a remote + ping capability to know which method is being used. Different + methods will yield different response times since the protocol and + resulting processing will be different. It is RECOMMENDED that the + ping capability defined within this memo be implemented using the + ICMP Echo Facility. + + Traceroute is usually implemented by transmitting a series of probe + packets with increasing time-to-live values. A probe packet is a UDP + datagram encapsulated into an IP packet. Each hop in a path to the + target (destination) host rejects the probe packet (probe's TTL too + small) until its time-to-live value becomes large enough for the + probe to be forwarded. Each hop in a traceroute path returns an ICMP + message that is used to discover the hop and to calculate a round + trip time. Some systems use ICMP probes (ICMP Echo request packets) + instead of UDP ones to implement traceroute. In both cases + traceroute relies on the probes being rejected via an ICMP message to + discover the hops taken along a path to the final destination. Both + probe types, UDP and ICMP, are encapsulated into an IP packet and + thus have a TTL field that can be used to cause a path rejection. + + Implementations of the remote traceroute capability as defined within + this memo SHOULD be done using UDP packets to a (hopefully) unused + port. ICMP probes (ICMP Echo Request packets) SHOULD NOT be used. + Many PC implementations of traceroute use the ICMP probe method, + which they should not, since this implementation method has been + known to have a high probability of failure. Intermediate hops + become invisible when a router either refuses to send an ICMP TTL + expired message in response to an incoming ICMP packet or simply + tosses ICMP echo requests altogether. + + The behavior of some routers not to return a TTL expired message in + response to an ICMP Echo request is due in part to the following text + extracted from RFC 792 [20]: + + + + + +White Standards Track [Page 3] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + "The ICMP messages typically report errors in the processing of + datagrams. To avoid the infinite regress of messages about messages + etc., no ICMP messages are sent about ICMP messages." + + Both ping and traceroute yield round-trip times measured in + milliseconds. These times can be used as a rough approximation for + network transit time. + + The Lookup operation enables the equivalent of either a + gethostbyname() or a gethostbyaddr() call being performed at a remote + host. The Lookup gethostbyname() capability can be used to determine + the symbolic name of a hop in a traceroute path. + + Consider the following diagram: + ++--------------------------------------------------------------------+ +| | +| Remote ping, traceroute, Actual ping, traceroute, | +| +-----+or Lookup op. +------+or Lookup op. +------+ | +| |Local|---------------->|Remote|---------------->|Target| | +| | Host| | Host | | Host | | +| +-----+ +------+ +------+ | +| | +| | ++--------------------------------------------------------------------+ + + A local host is the host from which the remote ping, traceroute, or + Lookup operation is initiated using an SNMP request. The remote host + is a host where the MIBs defined by this memo are implemented that + receives the remote operation via SNMP and performs the actual ping, + traceroute, or lookup function. + +2.0 The SNMP Network Management Framework + + The SNMP Management Framework presently consists of five major + components: + + o An overall architecture, described in RFC 2571 [7]. + + o Mechanisms for describing and naming objects and events for the + purpose of management. The first version of this Structure of + Management Information (SMI) is called SMIv1 and described in STD + 16, RFC 1155 [14], STD 16, RFC 1212 [15] and RFC 1215 [16]. The + second version, called SMIv2, is described in STD 58, RFC 2578 + [3], STD 58, RFC 2579 [4] and STD 58, RFC 2580 [5]. + + + + + + +White Standards Track [Page 4] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + o Message protocols for transferring management information. The + first version of the SNMP message protocol is called SNMPv1 and + described in STD 15, RFC 1157 [1]. A second version of the SNMP + message protocol, which is not an Internet standards track + protocol, is called SNMPv2c and described in RFC 1901 [17] and + RFC 1906 [18]. The third version of the message protocol is + called SNMPv3 and described in RFC 1906 [18], RFC 2572 [8] and + RFC 2574 [10]. + + o Protocol operations for accessing management information. The + first set of protocol operations and associated PDU formats is + described in STD 15, RFC 1157 [1]. A second set of protocol + operations and associated PDU formats is described in RFC 1905 + [6]. + + o A set of fundamental applications described in RFC 2573 [9] and + the view-based access control mechanism described in RFC 2575 + [11]. + + Managed objects are accessed via a virtual information store, termed + the Management Information Base or MIB. Objects in the MIB are + defined using the mechanisms defined in the SMI. + + This memo specifies MIB modules that are compliant to the SMIv2. A + MIB conforming to the SMIv1 can be produced through the appropriate + translations. The resulting translated MIB must be semantically + equivalent, except where objects or events are omitted because no + translation is possible (use of Counter64). Some machine readable + information in SMIv2 will be converted into textual descriptions in + SMIv1 during the translation process. However, this loss of machine + readable information is not considered to change the semantics of the + MIB. + +3.0 Structure of the MIBs + + This document defines three MIB modules: + + o DISMAN-PING-MIB + + Defines a ping MIB. + + o DISMAN-TRACEROUTE-MIB + + Defines a traceroute MIB. + + + + + + + +White Standards Track [Page 5] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + o DISMAN-NSLOOKUP-MIB + + Provides access to the resolver gethostbyname() and + gethostbyaddr() functions at a remote host. + + The ping and traceroute MIBs are structured to allow creation of ping + or traceroute tests that can be set up to periodically issue a series + of operations and generate NOTIFICATIONs to report on test results. + Many network administrators have in the past written UNIX shell + scripts or command batch files to operate in fashion similar to the + functionality provided by the ping and traceroute MIBs defined within + this memo. The intent of this document is to acknowledge the + importance of these functions and to provide a standards-based + solution. + +3.1 Ping MIB + + The DISMAN-PING-MIB consists of the following components: + + o pingMaxConcurrentRequests + + o pingCtlTable + + o pingResultsTable + + o pingProbeHistoryTable + +3.1.1 pingMaxConcurrentRequests + + The object pingMaxConcurrentRequests enables control of the maximum + number of concurrent active requests that an agent implementation + supports. It is permissible for an agent either to limit the maximum + upper range allowed for this object or to implement this object as + read-only with an implementation limit expressed as its value. + +3.1.2 pingCtlTable + + A remote ping test is started by setting pingCtlAdminStatus to + enabled(1). The corresponding pingCtlEntry MUST have been created + and its pingCtlRowStatus set to active(1) prior to starting the test. + A single SNMP PDU can be used to create and start a remote ping test. + Within the PDU, pingCtlTargetAddress should be set to the target + host's address (pingCtlTargetAddressType will default to ipv4(1)), + pingCtlAdminStatus to enabled(1), and pingCtlRowStatus to + createAndGo(4). + + + + + + +White Standards Track [Page 6] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + The first index element, pingCtlOwnerIndex, is of type + SnmpAdminString, a textual convention that allows for use of the + SNMPv3 View-Based Access Control Model (RFC 2575 [11], VACM) and + allows a management application to identify its entries. The send + index, pingCtlTestName (also an SnmpAdminString), enables the same + management application to have multiple requests outstanding. + + Using the maximum value for the parameters defined within a pingEntry + can result in a single remote ping test taking at most 15 minutes + (pingCtlTimeOut times pingCtlProbeCount) plus whatever time it takes + to send the ping request and receive its response over the network + from the target host. Use of the defaults for pingCtlTimeOut and + pingCtlProbeCount yields a maximum of 3 seconds to perform a "normal" + ping test. + + A management application can delete an active remote ping request by + setting the corresponding pingCtlRowStatus object to destroy(6). + + The contents of the pingCtlTable is preserved across reIPLs (Initial + Program Loads) of its agent according the values of each of the + pingCtlStorageType objects. + +3.1.3 pingResultsTable + + An entry in the pingResultsTable is created for a corresponding + pingCtlEntry once the test defined by this entry is started. + +3.1.4 pingProbeHistoryTable + + The results of past ping probes can be stored in this table on a per + pingCtlEntry basis. This table is initially indexed by + pingCtlOwnerIndex and pingCtlTestName in order for the results of a + probe to relate to the pingCtlEntry that caused it. The maximum + number of entries stored in this table per pingCtlEntry is determined + by the value of pingCtlMaxRows. + + An implementation of this MIB will remove the oldest entry in the + pingProbeHistoryTable to allow the addition of an new entry once the + number of rows in the pingProbeHistoryTable reaches the value + specified by pingCtlMaxRows. An implementation MUST start assigning + pingProbeHistoryIndex values at 1 and wrap after exceeding the + maximum possible value as defined by the limit of this object + ('ffffffff'h). + + + + + + + + +White Standards Track [Page 7] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + +3.2 Traceroute MIB + + The DISMAN-TRACEROUTE-MIB consists of the following components: + + o traceRouteMaxConcurrentRequests + + o traceRouteCtlTable + + o traceRouteResultsTable + + o traceRouteProbeHistoryTable + + o traceRouteHopsTable + +3.2.1 traceRouteMaxConcurrentRequests + + The object traceRouteMaxConcurrentRequests enables control of the + maximum number of concurrent active requests that an agent + implementation supports. It is permissible for an agent either to + limit the maximum upper range allowed for this object or to implement + this object as read-only with an implementation limit expressed as + its value. + +3.2.2 traceRouteCtlTable + + A remote traceroute test is started by setting + traceRouteCtlAdminStatus to enabled(1). The corresponding + traceRouteCtlEntry MUST have been created and its + traceRouteCtlRowStatus set to active(1) prior to starting the test. + A single SNMP PDU can be used to create and start a remote traceroute + test. Within the PDU, traceRouteCtlTargetAddress should be set to + the target host's address (traceRouteCtlTargetAddressType will + default to ipv4(1)), traceRouteCtlAdminStatus to enabled(1), and + traceRouteCtlRowStatus to createAndGo(4). + + The first index element, traceRouteCtlOwnerIndex, is of type + SnmpAdminString, a textual convention that allows for use of the + SNMPv3 View-Based Access Control Model (RFC 2575 [11], VACM) and + allows a management application to identify its entries. The second + index, traceRouteCtlTestName (also an SnmpAdminString), enables the + same management application to have multiple requests outstanding. + + Traceroute has a much longer theoretical maximum time for completion + than ping. Basically 42 hours and 30 minutes (the product of + traceRouteCtlTimeOut, traceRouteCtlProbesPerHop, and + traceRouteCtlMaxTtl) plus some network transit time! Use of the + defaults defined within an traceRouteCtlEntry yields a maximum of 4 + minutes and 30 seconds for a default traceroute operation. Clearly + + + +White Standards Track [Page 8] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + 42 plus hours is too long to wait for a traceroute operation to + complete. + + The maximum TTL value in effect for traceroute determines how long + the traceroute function will keep increasing the TTL value in the + probe it transmits hoping to reach the target host. The function + ends whenever the maximum TTL is exceeded or the target host is + reached. The object traceRouteCtlMaxFailures was created in order to + impose a throttle for how long traceroute continues to increase the + TTL field in a probe without receiving any kind of response + (timeouts). It is RECOMMENDED that agent implementations impose a + time limit for how long it allows a traceroute operation to take + relative to how the function is implemented. For example, an + implementation that can't process multiple traceroute operations at + the same time SHOULD impose a shorter maximum allowed time period. + + A management application can delete an active remote traceroute + request by setting the corresponding traceRouteCtlRowStatus object to + destroy(6). + + The contents of the traceRouteCtlTable is preserved across reIPLs + (Initial Program Loads) of its agent according to the values of each + of the traceRouteCtlStorageType objects. + +3.2.3 traceRouteResultsTable + + An entry in the traceRouteResultsTable is created upon determining + the results of a specific traceroute operation. Entries in this + table relate back to the traceRouteCtlEntry that caused the + corresponding traceroute operation to occur. The objects + traceRouteResultsCurHopCount and traceRouteResultsCurProbeCount can + be examined to determine how far the current remote traceroute + operation has reached. + +3.2.4 traceRouteProbeHistoryTable + + The results of past traceroute probes can be stored in this table on + a per traceRouteCtlEntry basis. This table is initially indexed by + traceRouteCtlOwnerIndex and traceRouteCtlTestName in order for the + results of a probe to relate to the traceRouteCtlEntry that caused + it. The number of entries stored in this table per + traceRouteCtlEntry is determined by the value of + traceRouteCtlMaxRows. + + An implementation of this MIB will remove the oldest entry in the + traceRouteProbeHistoryTable to allow the addition of an new entry + once the number of rows in the traceRouteProbeHistoryTable reaches + the value of traceRouteCtlMaxRows. An implementation MUST start + + + +White Standards Track [Page 9] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + assigning traceRouteProbeHistoryIndex values at 1 and wrap after + exceeding the maximum possible value as defined by the limit of this + object ('ffffffff'h). + +3.2.5 traceRouteHopsTable + + The current traceroute path can be stored in this table on a per + traceRouteCtlEntry basis. This table is initially indexed by + traceRouteCtlOwnerIndex and traceRouteCtlTestName in order for a + traceroute path to relate to the traceRouteCtlEntry that caused it. + A third index, traceRouteHopsHopIndex, enables keeping one + traceRouteHopsEntry per traceroute hop. Creation of + traceRouteHopsTable entries is enabled by setting the corresponding + traceRouteCtlCreateHopsEntries object to true(1). + +3.3 Lookup MIB + + The DISMAN-NSLOOKUP-MIB consists of the following components: + + o lookupMaxConcurrentRequests, and lookupPurgeTime + + o lookupCtlTable + + o lookupResultsTable + +3.3.1 lookupMaxConcurrentRequests and lookupPurgeTime + + The object lookupMaxConcurrentRequests enables control of the maximum + number of concurrent active requests that an agent implementation is + structured to support. It is permissible for an agent either to + limit the maximum upper range allowed for this object or to implement + this object as read-only with an implementation limit expressed as + its value. + + The object lookupPurgeTime provides a method for entries in the + lookupCtlTable and lookupResultsTable to be automatically deleted + after the corresponding operation completes. + +3.3.2 lookupCtlTable + + A remote lookup operation is initiated by performing an SNMP SET + request on lookupCtlRowStatus. A single SNMP PDU can be used to + create and start a remote lookup operation. Within the PDU, + lookupCtlTargetAddress should be set to the entity to be resolved + (lookupCtlTargetAddressType will default to ipv4(1)) and + lookupCtlRowStatus to createAndGo(4). The object lookupCtlOperStatus + + + + + +White Standards Track [Page 10] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + can be examined to determine the state of an lookup operation. A + management application can delete an active remote lookup request by + setting the corresponding lookupCtlRowStatus object to destroy(6). + + An lookupCtlEntry is initially indexed by lookupCtlOwnerIndex, which + is of type SnmpAdminString, a textual convention that allows for use + of the SNMPv3 View-Based Access Control Model (RFC 2575 [11], VACM) + and also allows for a management application to identify its entries. + The lookupCtlOwnerIndex portion of the index is then followed by + lookupCtlOperationName. The lookupCtlOperationName index enables the + same lookupCtlOwnerIndex entity to have multiple outstanding + requests. + + The value of lookupCtlTargetAddressType determines which lookup + function to perform. Specification of dns(16) as the value of this + index implies that the gethostbyname function should be performed to + determine the numeric addresses associated with a symbolic name via + lookupResultsTable entries. Use of a value of either ipv4(1) or + ipv6(2) implies that the gethostbyaddr function should be performed + to determine the symbolic name(s) associated with a numeric address + at a remote host. + +3.3.3 lookupResultsTable + + The lookupResultsTable is used to store the results of lookup + operations. The lookupResultsTable is initially indexed by the same + index elements that the lookupCtlTable contains (lookupCtlOwnerIndex + and lookupCtlOperationName) but has a third index element, + lookupResultsIndex (Unsigned32 textual convention), in order to + associate multiple results with the same lookupCtlEntry. + + Both the gethostbyname and gethostbyaddr functions typically return a + pointer to a hostent structure after being called. The hostent + structure is defined as: + + struct hostent { + char *h_name; /* official host name */ + char *h_aliases[]; /* list of other aliases */ + int h_addrtype; /* host address type */ + int h_length; /* length of host address */ + char **h_addr_list; /* list of address for host */ + }; + + The hostent structure is listed here in order to address the fact + that a remote host can be multi-homed and can have multiple symbolic + (DNS) names. It is not intended to imply that implementations of the + DISMAN-LOOKUP-MIB are limited to systems where the hostent structure + is supported. + + + +White Standards Track [Page 11] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + The gethostbyaddr function is called with a host address as its + parameter and is used primarily to determine a symbolic name to + associate with the host address. Entries in the lookupResultsTable + MUST be made for each host name returned. The official host name + MUST be assigned a lookupResultsIndex of 1. + + The gethostbyname function is called with a symbolic host name and is + used primarily to retrieve a host address. Normally, the first + h_addr_list host address is considered to be the primary address and + as such is associated with the symbolic name passed on the call. + + Entries MUST be stored in the lookupResultsTable in the order that + they are retrieved. Values assigned to lookupResultsIndex MUST start + at 1 and increase in order. + + An implementation SHOULD NOT retain SNMP-created entries in the + lookupTable across reIPLs (Initial Program Loads) of its agent, since + management applications need to see consistent behavior with respect + to the persistence of the table entries that they create. + +4.0 Definitions + +4.1 DISMAN-PING-MIB + +DISMAN-PING-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Integer32, + Unsigned32, mib-2, + NOTIFICATION-TYPE, OBJECT-IDENTITY + FROM SNMPv2-SMI -- RFC2578 + TEXTUAL-CONVENTION, RowStatus, + StorageType, DateAndTime, TruthValue + FROM SNMPv2-TC -- RFC2579 + MODULE-COMPLIANCE, OBJECT-GROUP, + NOTIFICATION-GROUP + FROM SNMPv2-CONF -- RFC2580 + InterfaceIndexOrZero -- RFC2863 + FROM IF-MIB + SnmpAdminString + FROM SNMP-FRAMEWORK-MIB -- RFC2571 + InetAddressType, InetAddress + FROM INET-ADDRESS-MIB; -- RFC2851 + + pingMIB MODULE-IDENTITY + LAST-UPDATED "200009210000Z" -- 21 September 2000 + ORGANIZATION "IETF Distributed Management Working Group" + CONTACT-INFO + + + +White Standards Track [Page 12] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + "Kenneth White + + International Business Machines Corporation + Network Computing Software Division + Research Triangle Park, NC, USA + + E-mail: wkenneth@us.ibm.com" + DESCRIPTION + "The Ping MIB (DISMAN-PING-MIB) provides the capability of + controlling the use of the ping function at a remote + host." + + -- Revision history + + REVISION "200009210000Z" -- 21 September 2000 + DESCRIPTION + "Initial version, published as RFC 2925." + + ::= { mib-2 80 } + + -- Textual Conventions + + OperationResponseStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Used to report the result of an operation: + + responseReceived(1) - Operation completes successfully. + unknown(2) - Operation failed due to unknown error. + internalError(3) - An implementation detected an error + in its own processing that caused an operation + to fail. + requestTimedOut(4) - Operation failed to receive a + valid reply within the time limit imposed on it. + unknownDestinationAddress(5) - Invalid destination + address. + noRouteToTarget(6) - Could not find a route to target. + interfaceInactiveToTarget(7) - The interface to be + used in sending a probe is inactive without an + alternate route existing. + arpFailure(8) - Unable to resolve a target address to a + media specific address. + maxConcurrentLimitReached(9) - The maximum number of + concurrent active operations would have been exceeded + if the corresponding operation was allowed. + unableToResolveDnsName(10) - The DNS name specified was + unable to be mapped to an IP address. + invalidHostAddress(11) - The IP address for a host + + + +White Standards Track [Page 13] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + has been determined to be invalid. Examples of this + are broadcast or multicast addresses." + SYNTAX INTEGER { + responseReceived(1), + unknown(2), + internalError(3), + requestTimedOut(4), + unknownDestinationAddress(5), + noRouteToTarget(6), + interfaceInactiveToTarget(7), + arpFailure(8), + maxConcurrentLimitReached(9), + unableToResolveDnsName(10), + invalidHostAddress(11) + } + + -- Top level structure of the MIB + + pingNotifications OBJECT IDENTIFIER ::= { pingMIB 0 } + pingObjects OBJECT IDENTIFIER ::= { pingMIB 1 } + pingConformance OBJECT IDENTIFIER ::= { pingMIB 2 } + + + -- The registration node (point) for ping implementation types + + pingImplementationTypeDomains OBJECT IDENTIFIER ::= { pingMIB 3 } + + pingIcmpEcho OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Indicates that an implementation is using the Internet + Control Message Protocol (ICMP) 'ECHO' facility." + ::= { pingImplementationTypeDomains 1 } + + pingUdpEcho OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Indicates that an implementation is using the UDP echo + port (7)." + REFERENCE + "RFC 862, 'Echo Protocol'." + ::= { pingImplementationTypeDomains 2 } + + pingSnmpQuery OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Indicates that an implementation is an SNMP query to + calculate a round trip time." + + + +White Standards Track [Page 14] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + ::= { pingImplementationTypeDomains 3 } + + pingTcpConnectionAttempt OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Indicates that an implementation is attempting to + connect to a TCP port in order to calculate a round + trip time." + ::= { pingImplementationTypeDomains 4 } + + + -- Simple Object Definitions + + pingMaxConcurrentRequests OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "requests" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum number of concurrent active ping requests + that are allowed within an agent implementation. A value + of 0 for this object implies that there is no limit for + the number of concurrent active requests in effect." + DEFVAL { 10 } + ::= { pingObjects 1 } + + -- Ping Control Table + + pingCtlTable OBJECT-TYPE + SYNTAX SEQUENCE OF PingCtlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines the ping Control Table for providing, via SNMP, + the capability of performing ping operations at + a remote host. The results of these operations are + stored in the pingResultsTable and the + pingProbeHistoryTable." + ::= { pingObjects 2 } + + pingCtlEntry OBJECT-TYPE + SYNTAX PingCtlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines an entry in the pingCtlTable. The first index + element, pingCtlOwnerIndex, is of type SnmpAdminString, + a textual convention that allows for use of the SNMPv3 + + + +White Standards Track [Page 15] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + View-Based Access Control Model (RFC 2575 [11], VACM) + and allows an management application to identify its + entries. The second index, pingCtlTestName (also an + SnmpAdminString), enables the same management + application to have multiple outstanding requests." + INDEX { + pingCtlOwnerIndex, + pingCtlTestName + } + ::= { pingCtlTable 1 } + + PingCtlEntry ::= + SEQUENCE { + pingCtlOwnerIndex SnmpAdminString, + pingCtlTestName SnmpAdminString, + pingCtlTargetAddressType InetAddressType, + pingCtlTargetAddress InetAddress, + pingCtlDataSize Unsigned32, + pingCtlTimeOut Unsigned32, + pingCtlProbeCount Unsigned32, + pingCtlAdminStatus INTEGER, + pingCtlDataFill OCTET STRING, + pingCtlFrequency Unsigned32, + pingCtlMaxRows Unsigned32, + pingCtlStorageType StorageType, + pingCtlTrapGeneration BITS, + pingCtlTrapProbeFailureFilter Unsigned32, + pingCtlTrapTestFailureFilter Unsigned32, + pingCtlType OBJECT IDENTIFIER, + pingCtlDescr SnmpAdminString, + pingCtlSourceAddressType InetAddressType, + pingCtlSourceAddress InetAddress, + pingCtlIfIndex InterfaceIndexOrZero, + pingCtlByPassRouteTable TruthValue, + pingCtlDSField Unsigned32, + pingCtlRowStatus RowStatus + } + + pingCtlOwnerIndex OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "To facilitate the provisioning of access control by a + security administrator using the View-Based Access + Control Model (RFC 2575, VACM) for tables in which + multiple users may need to independently create or + modify entries, the initial index is used as an 'owner + + + +White Standards Track [Page 16] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + index'. Such an initial index has a syntax of + SnmpAdminString, and can thus be trivially mapped to a + securityName or groupName as defined in VACM, in + accordance with a security policy. + + When used in conjunction with such a security policy all + entries in the table belonging to a particular user (or + group) will have the same value for this initial index. + For a given user's entries in a particular table, the + object identifiers for the information in these entries + will have the same subidentifiers (except for the 'column' + subidentifier) up to the end of the encoded owner index. + To configure VACM to permit access to this portion of the + table, one would create vacmViewTreeFamilyTable entries + with the value of vacmViewTreeFamilySubtree including + the owner index portion, and vacmViewTreeFamilyMask + 'wildcarding' the column subidentifier. More elaborate + configurations are possible." + ::= { pingCtlEntry 1 } + + pingCtlTestName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The name of the ping test. This is locally unique, within + the scope of an pingCtlOwnerIndex." + ::= { pingCtlEntry 2 } + + pingCtlTargetAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the type of host address to be used at a remote + host for performing a ping operation." + DEFVAL { unknown } + ::= { pingCtlEntry 3 } + + pingCtlTargetAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the host address to be used at a remote host for + performing a ping operation. The host address type is + determined by the object value of corresponding + pingCtlTargetAddressType. + + + +White Standards Track [Page 17] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + A value for this object MUST be set prior to transitioning + its corresponding pingCtlEntry to active(1) via + pingCtlRowStatus." + DEFVAL { ''H } + ::= { pingCtlEntry 4 } + + pingCtlDataSize OBJECT-TYPE + SYNTAX Unsigned32 (0..65507) + UNITS "octets" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the size of the data portion to be + transmitted in a ping operation in octets. A ping + request is usually an ICMP message encoded + into an IP packet. An IP packet has a maximum size + of 65535 octets. Subtracting the size of the ICMP + or UDP header (both 8 octets) and the size of the IP + header (20 octets) yields a maximum size of 65507 + octets." + DEFVAL { 0 } + ::= { pingCtlEntry 5 } + + pingCtlTimeOut OBJECT-TYPE + SYNTAX Unsigned32 (1..60) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the time-out value, in seconds, for a + remote ping operation." + DEFVAL { 3 } + ::= { pingCtlEntry 6 } + + pingCtlProbeCount OBJECT-TYPE + SYNTAX Unsigned32 (1..15) + UNITS "probes" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the number of times to perform a ping + operation at a remote host." + DEFVAL { 1 } + ::= { pingCtlEntry 7 } + + pingCtlAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), -- test should be started + + + +White Standards Track [Page 18] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + disabled(2) -- test should be stopped + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Reflects the desired state that a pingCtlEntry should be + in: + + enabled(1) - Attempt to activate the test as defined by + this pingCtlEntry. + disabled(2) - Deactivate the test as defined by this + pingCtlEntry. + + Refer to the corresponding pingResultsOperStatus to + determine the operational state of the test defined by + this entry." + DEFVAL { disabled } + ::= { pingCtlEntry 8 } + + pingCtlDataFill OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..1024)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The content of this object is used together with the + corresponding pingCtlDataSize value to determine how to + fill the data portion of a probe packet. The option of + selecting a data fill pattern can be useful when links + are compressed or have data pattern sensitivities. The + contents of pingCtlDataFill should be repeated in a ping + packet when the size of the data portion of the ping + packet is greater than the size of pingCtlDataFill." + DEFVAL { '00'H } + ::= { pingCtlEntry 9 } + + pingCtlFrequency OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of seconds to wait before repeating a ping test + as defined by the value of the various objects in the + corresponding row. + + A single ping test consists of a series of ping probes. + The number of probes is determined by the value of the + corresponding pingCtlProbeCount object. After a single + + + +White Standards Track [Page 19] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + test completes the number of seconds as defined by the + value of pingCtlFrequency MUST elapse before the + next ping test is started. + + A value of 0 for this object implies that the test + as defined by the corresponding entry will not be + repeated." + DEFVAL { 0 } + ::= { pingCtlEntry 10 } + + pingCtlMaxRows OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "rows" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The maximum number of entries allowed in the + pingProbeHistoryTable. An implementation of this + MIB will remove the oldest entry in the + pingProbeHistoryTable to allow the addition of an + new entry once the number of rows in the + pingProbeHistoryTable reaches this value. + + Old entries are not removed when a new test is + started. Entries are added to the pingProbeHistoryTable + until pingCtlMaxRows is reached before entries begin to + be removed. + + A value of 0 for this object disables creation of + pingProbeHistoryTable entries." + DEFVAL { 50 } + ::= { pingCtlEntry 11 } + + pingCtlStorageType OBJECT-TYPE + SYNTAX StorageType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The storage type for this conceptual row. + Conceptual rows having the value 'permanent' need not + allow write-access to any columnar objects in the row." + DEFVAL { nonVolatile } + ::= { pingCtlEntry 12 } + + pingCtlTrapGeneration OBJECT-TYPE + SYNTAX BITS { + probeFailure(0), + testFailure(1), + + + +White Standards Track [Page 20] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + testCompletion(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object determines when and if + to generate a notification for this entry: + + probeFailure(0) - Generate a pingProbeFailed + notification subject to the value of + pingCtlTrapProbeFailureFilter. The object + pingCtlTrapProbeFailureFilter can be used + to specify the number of successive probe failures + that are required before a pingProbeFailed + notification can be generated. + testFailure(1) - Generate a pingTestFailed + notification. In this instance the object + pingCtlTrapTestFailureFilter can be used to + determine the number of probe failures that + signal when a test fails. + testCompletion(2) - Generate a pingTestCompleted + notification. + + The value of this object defaults to zero, indicating + that none of the above options have been selected." + ::= { pingCtlEntry 13 } + + pingCtlTrapProbeFailureFilter OBJECT-TYPE + SYNTAX Unsigned32 (0..15) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object is used to determine when + to generate a pingProbeFailed NOTIFICATION. + + Setting pingCtlTrapGeneration + to probeFailure(0) implies that a pingProbeFailed + NOTIFICATION is generated only when the number of + successive probe failures as indicated by the + value of pingCtlTrapPrbefailureFilter fail within + a given ping test." + DEFVAL { 1 } + ::= { pingCtlEntry 14 } + + pingCtlTrapTestFailureFilter OBJECT-TYPE + SYNTAX Unsigned32 (0..15) + MAX-ACCESS read-create + STATUS current + + + +White Standards Track [Page 21] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + DESCRIPTION + "The value of this object is used to determine when + to generate a pingTestFailed NOTIFICATION. + + Setting pingCtlTrapGeneration to testFailure(1) + implies that a pingTestFailed NOTIFICATION is + generated only when the number of ping failures + within a test exceed the value of + pingCtlTrapTestFailureFilter." + DEFVAL { 1 } + ::= { pingCtlEntry 15 } + + pingCtlType OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object is used to either report or + select the implementation method to be used for + calculating a ping response time. The value of this + object MAY be selected from pingImplementationTypeDomains. + + Additional implementation types SHOULD be allocated as + required by implementers of the DISMAN-PING-MIB under + their enterprise specific registration point and not + beneath pingImplementationTypeDomains." + DEFVAL { pingIcmpEcho } + ::= { pingCtlEntry 16 } + + pingCtlDescr OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The purpose of this object is to provide a + descriptive name of the remote ping test." + DEFVAL { '00'H } + ::= { pingCtlEntry 17 } + + pingCtlSourceAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the type of the source address, + pingCtlSourceAddress, to be used at a remote host + when performing a ping operation." + DEFVAL { ipv4 } + + + +White Standards Track [Page 22] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + ::= { pingCtlEntry 18 } + + pingCtlSourceAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Use the specified IP address (which must be given + in numeric form, not as a hostname) as the source + address in outgoing probe packets. On hosts with + more than one IP address, this option can be used + to force the source address to be something other + than the primary IP address of the interface the + probe packet is sent on. If the IP address is not + one of this machine's interface addresses, an error + is returned and nothing is sent. A zero length + octet string value for this object disables source + address specification. + + The address type (InetAddressType) that relates to + this object is specified by the corresponding value + of pingCtlSourceAddressType." + DEFVAL { ''H } + ::= { pingCtlEntry 19 } + + pingCtlIfIndex OBJECT-TYPE + SYNTAX InterfaceIndexOrZero + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Setting this object to an interface's ifIndex prior + to starting a remote ping operation directs + the ping probes to be transmitted over the + specified interface. A value of zero for this object + means that this option is not enabled." + DEFVAL { 0 } + ::= { pingCtlEntry 20 } + + pingCtlByPassRouteTable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The purpose of this object is to optionally enable + bypassing the route table. If enabled, the remote + host will bypass the normal routing tables and send + directly to a host on an attached network. If the + host is not on a directly-attached network, an + + + +White Standards Track [Page 23] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + error is returned. This option can be used to perform + the ping operation to a local host through an + interface that has no route defined (e.g., after the + interface was dropped by routed)." + DEFVAL { false } + ::= { pingCtlEntry 21 } + + pingCtlDSField OBJECT-TYPE + SYNTAX Unsigned32 (0..255) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the value to store in the Differentiated + Services (DS) Field in the IP packet used to + encapsulate the ping probe. The DS Field is defined + as the Type of Service (TOS) octet in a IPv4 header + or as the Traffic Class octet in a IPv6 header. + + The value of this object must be a decimal integer + in the range from 0 to 255. This option can be used + to determine what effect an explicit DS Field setting + has on a ping response. Not all values are legal or + meaningful. A value of 0 means that the function + represented by this option is not supported. DS Field + usage is often not supported by IP implementations and + not all values are supported. Refer to RFC 2474 for + guidance on usage of this field." + REFERENCE + "Refer to RFC 2474 for the definition of the + Differentiated Services Field and to RFC 1812 + Section 5.3.2 for Type of Service (TOS)." + DEFVAL { 0 } + ::= { pingCtlEntry 22 } + + pingCtlRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object allows entries to be created and deleted + in the pingCtlTable. Deletion of an entry in this + table results in all corresponding (same + pingCtlOwnerIndex and pingCtlTestName index values) + pingResultsTable and pingProbeHistoryTable entries + being deleted. + + A value MUST be specified for pingCtlTargetAddress + prior to a transition to active(1) state being + + + +White Standards Track [Page 24] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + accepted. + + Activation of a remote ping operation is controlled + via pingCtlAdminStatus and not by changing + this object's value to active(1). + + Transitions in and out of active(1) state are not + allowed while an entry's pingResultsOperStatus is + active(1) with the exception that deletion of + an entry in this table by setting its RowStatus + object to destroy(6) will stop an active + ping operation. + + The operational state of a ping operation + can be determined by examination of its + pingResultsOperStatus object." + REFERENCE + "See definition of RowStatus in RFC 2579, 'Textual + Conventions for SMIv2.'" + ::= { pingCtlEntry 23 } + +-- Ping Results Table + + pingResultsTable OBJECT-TYPE + SYNTAX SEQUENCE OF PingResultsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines the Ping Results Table for providing + the capability of performing ping operations at + a remote host. The results of these operations are + stored in the pingResultsTable and the pingPastProbeTable. + + An entry is added to the pingResultsTable when an + pingCtlEntry is started by successful transition + of its pingCtlAdminStatus object to enabled(1). + An entry is removed from the pingResultsTable when + its corresponding pingCtlEntry is deleted." + ::= { pingObjects 3 } + + pingResultsEntry OBJECT-TYPE + SYNTAX PingResultsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines an entry in the pingResultsTable. The + pingResultsTable has the same indexing as the + pingCtlTable in order for a pingResultsEntry to + + + +White Standards Track [Page 25] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + correspond to the pingCtlEntry that caused it to + be created." + INDEX { + pingCtlOwnerIndex, + pingCtlTestName + } + ::= { pingResultsTable 1 } + + PingResultsEntry ::= + SEQUENCE { + pingResultsOperStatus INTEGER, + pingResultsIpTargetAddressType InetAddressType, + pingResultsIpTargetAddress InetAddress, + pingResultsMinRtt Unsigned32, + pingResultsMaxRtt Unsigned32, + pingResultsAverageRtt Unsigned32, + pingResultsProbeResponses Unsigned32, + pingResultsSentProbes Unsigned32, + pingResultsRttSumOfSquares Unsigned32, + pingResultsLastGoodProbe DateAndTime + } + + pingResultsOperStatus OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), -- test is in progress + disabled(2) -- test has stopped + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reflects the operational state of a pingCtlEntry: + enabled(1) - Test is active. + disabled(2) - Test has stopped." + ::= { pingResultsEntry 1 } + + pingResultsIpTargetAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This objects indicates the type of address stored + in the corresponding pingResultsIpTargetAddress + object." + DEFVAL { unknown } + ::= { pingResultsEntry 2 } + + pingResultsIpTargetAddress OBJECT-TYPE + SYNTAX InetAddress + + + +White Standards Track [Page 26] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This objects reports the IP address associated + with a pingCtlTargetAddress value when the destination + address is specified as a DNS name. The value of + this object should be a zero length octet string + when a DNS name is not specified or when a + specified DNS name fails to resolve." + DEFVAL { ''H } + ::= { pingResultsEntry 3 } + + pingResultsMinRtt OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum ping round-trip-time (RTT) received. A value + of 0 for this object implies that no RTT has been received." + ::= { pingResultsEntry 4 } + + pingResultsMaxRtt OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum ping round-trip-time (RTT) received. A value + of 0 for this object implies that no RTT has been received." + ::= { pingResultsEntry 5 } + + pingResultsAverageRtt OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current average ping round-trip-time (RTT)." + ::= { pingResultsEntry 6 } + + pingResultsProbeResponses OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "responses" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of responses received for the corresponding + + + +White Standards Track [Page 27] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + pingCtlEntry and pingResultsEntry. The value of this object + MUST be reported as 0 when no probe responses have been + received." + ::= { pingResultsEntry 7 } + + pingResultsSentProbes OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "probes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object reflects the number of probes sent + for the corresponding pingCtlEntry and pingResultsEntry. + The value of this object MUST be reported as 0 when no probes + have been sent." + ::= { pingResultsEntry 8 } + + pingResultsRttSumOfSquares OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object contains the sum of the squares for all ping + responses received. Its purpose is to enable standard + deviation calculation. The value of this object MUST + be reported as 0 when no ping responses have been + received." + ::= { pingResultsEntry 9 } + + pingResultsLastGoodProbe OBJECT-TYPE + SYNTAX DateAndTime + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Date and time when the last response was received for + a probe." + ::= { pingResultsEntry 10 } + + -- Ping Probe History Table + + pingProbeHistoryTable OBJECT-TYPE + SYNTAX SEQUENCE OF PingProbeHistoryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines a table for storing the results of a ping + operation. Entries in this table are limited by + + + +White Standards Track [Page 28] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + the value of the corresponding pingCtlMaxRows + object. + + An entry in this table is created when the result of + a ping probe is determined. The initial 2 instance + identifier index values identify the pingCtlEntry + that a probe result (pingProbeHistoryEntry) belongs + to. An entry is removed from this table when + its corresponding pingCtlEntry is deleted. + + An implementation of this MIB will remove the oldest + entry in the pingProbeHistoryTable to allow the + addition of an new entry once the number of rows in + the pingProbeHistoryTable reaches the value specified + by pingCtlMaxRows." + ::= { pingObjects 4 } + + pingProbeHistoryEntry OBJECT-TYPE + SYNTAX PingProbeHistoryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines an entry in the pingProbeHistoryTable. + The first two index elements identify the + pingCtlEntry that a pingProbeHistoryEntry belongs + to. The third index element selects a single + probe result." + INDEX { + pingCtlOwnerIndex, + pingCtlTestName, + pingProbeHistoryIndex + } + ::= { pingProbeHistoryTable 1 } + + PingProbeHistoryEntry ::= + SEQUENCE { + pingProbeHistoryIndex Unsigned32, + pingProbeHistoryResponse Unsigned32, + pingProbeHistoryStatus OperationResponseStatus, + pingProbeHistoryLastRC Integer32, + pingProbeHistoryTime DateAndTime + } + + pingProbeHistoryIndex OBJECT-TYPE + SYNTAX Unsigned32 (1..'ffffffff'h) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + + + +White Standards Track [Page 29] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + "An entry in this table is created when the result of + a ping probe is determined. The initial 2 instance + identifier index values identify the pingCtlEntry + that a probe result (pingProbeHistoryEntry) belongs + to. + + An implementation MUST start assigning + pingProbeHistoryIndex values at 1 and wrap after + exceeding the maximum possible value as defined by + the limit of this object ('ffffffff'h)." + ::= { pingProbeHistoryEntry 1 } + + pingProbeHistoryResponse OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of time measured in milliseconds from when + a probe was sent to when its response was received or + when it timed out. The value of this object is reported + as 0 when it is not possible to transmit a probe." + ::= { pingProbeHistoryEntry 2 } + + pingProbeHistoryStatus OBJECT-TYPE + SYNTAX OperationResponseStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The result of a particular probe done by a remote host." + ::= { pingProbeHistoryEntry 3 } + + pingProbeHistoryLastRC OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The last implementation method specific reply code received. + If the ICMP Echo capability is being used then a successful + probe ends when an ICMP response is received that contains + the code ICMP_ECHOREPLY(0). The ICMP responses are defined + normally in the ip_icmp include file." + ::= { pingProbeHistoryEntry 4 } + + pingProbeHistoryTime OBJECT-TYPE + SYNTAX DateAndTime + MAX-ACCESS read-only + STATUS current + + + +White Standards Track [Page 30] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + DESCRIPTION + "Timestamp for when this probe result was determined." + ::= { pingProbeHistoryEntry 5 } + + + -- Notification Definition section + + pingProbeFailed NOTIFICATION-TYPE + OBJECTS { + pingCtlTargetAddressType, + pingCtlTargetAddress, + pingResultsOperStatus, + pingResultsIpTargetAddressType, + pingResultsIpTargetAddress, + pingResultsMinRtt, + pingResultsMaxRtt, + pingResultsAverageRtt, + pingResultsProbeResponses, + pingResultsSentProbes, + pingResultsRttSumOfSquares, + pingResultsLastGoodProbe + } + STATUS current + DESCRIPTION + "Generated when a probe failure is detected when the + corresponding pingCtlTrapGeneration object is set to + probeFailure(0) subject to the value of + pingCtlTrapProbeFailureFilter. The object + pingCtlTrapProbeFailureFilter can be used to specify the + number of successive probe failures that are required + before this notification can be generated." + ::= { pingNotifications 1 } + + pingTestFailed NOTIFICATION-TYPE + OBJECTS { + pingCtlTargetAddressType, + pingCtlTargetAddress, + pingResultsOperStatus, + pingResultsIpTargetAddressType, + pingResultsIpTargetAddress, + pingResultsMinRtt, + pingResultsMaxRtt, + pingResultsAverageRtt, + pingResultsProbeResponses, + pingResultsSentProbes, + pingResultsRttSumOfSquares, + pingResultsLastGoodProbe + } + + + +White Standards Track [Page 31] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + STATUS current + DESCRIPTION + "Generated when a ping test is determined to have failed + when the corresponding pingCtlTrapGeneration object is + set to testFailure(1). In this instance + pingCtlTrapTestFailureFilter should specify the number of + probes in a test required to have failed in order to + consider the test as failed." + ::= { pingNotifications 2 } + + pingTestCompleted NOTIFICATION-TYPE + OBJECTS { + pingCtlTargetAddressType, + pingCtlTargetAddress, + pingResultsOperStatus, + pingResultsIpTargetAddressType, + pingResultsIpTargetAddress, + pingResultsMinRtt, + pingResultsMaxRtt, + pingResultsAverageRtt, + pingResultsProbeResponses, + pingResultsSentProbes, + pingResultsRttSumOfSquares, + pingResultsLastGoodProbe + } + STATUS current + DESCRIPTION + "Generated at the completion of a ping test when the + corresponding pingCtlTrapGeneration object is set to + testCompletion(4)." + ::= { pingNotifications 3 } + + -- Conformance information + -- Compliance statements + + pingCompliances OBJECT IDENTIFIER ::= { pingConformance 1 } + pingGroups OBJECT IDENTIFIER ::= { pingConformance 2 } + + -- Compliance statements + + pingCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for the DISMAN-PING-MIB." + MODULE -- this module + MANDATORY-GROUPS { + pingGroup, + pingNotificationsGroup + + + +White Standards Track [Page 32] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + } + GROUP pingTimeStampGroup + DESCRIPTION + "This group is mandatory for implementations that have + access to a system clock and are capable of setting + the values for DateAndTime objects. It is RECOMMENDED + that when this group is not supported that the values + for the objects in this group be reported as + '0000000000000000'H." + + OBJECT pingMaxConcurrentRequests + MIN-ACCESS read-only + DESCRIPTION + "The agent is not required to support set + operations to this object." + + OBJECT pingCtlStorageType + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required. It is also allowed + for implementations to support only the volatile + StorageType enumeration." + + OBJECT pingCtlType + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required. In addition, the only + value that MUST be supported by an implementation is + pingIcmpEcho." + + OBJECT pingCtlByPassRouteTable + MIN-ACCESS read-only + DESCRIPTION + "This object is not required by implementations that + are not capable of its implementation. The function + represented by this object is implementable if the + setsockopt SOL_SOCKET SO_DONTROUTE option is + supported." + + OBJECT pingCtlSourceAddressType + SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) } + MIN-ACCESS read-only + DESCRIPTION + "This object is not required by implementations that + are not capable of binding the send socket with a + source address. An implementation is only required to + support IPv4 and IPv6 addresses." + + + + +White Standards Track [Page 33] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + OBJECT pingCtlSourceAddress + SYNTAX InetAddress (SIZE(0|4|16)) + MIN-ACCESS read-only + DESCRIPTION + "This object is not required by implementations that + are not capable of binding the send socket with a + source address. An implementation is only required to + support IPv4 and globally unique IPv6 addresses." + + OBJECT pingCtlIfIndex + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required. When write access is + not supported return a 0 as the value of this object. + A value of 0 means that the function represented by + this option is not supported." + + OBJECT pingCtlDSField + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required. When write access is + not supported return a 0 as the value of this object. + A value of 0 means that the function represented by + this option is not supported." + + OBJECT pingResultsIpTargetAddressType + SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) } + DESCRIPTION + "An implementation is only required to + support IPv4 and IPv6 addresses." + + OBJECT pingResultsIpTargetAddress + SYNTAX InetAddress (SIZE(0|4|16)) + DESCRIPTION + "An implementation is only required to + support IPv4 and globally unique IPv6 addresses." + + ::= { pingCompliances 1 } + + -- MIB groupings + + pingGroup OBJECT-GROUP + OBJECTS { + pingMaxConcurrentRequests, + pingCtlTargetAddressType, + pingCtlTargetAddress, + pingCtlDataSize, + pingCtlTimeOut, + + + +White Standards Track [Page 34] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + pingCtlProbeCount, + pingCtlAdminStatus, + pingCtlDataFill, + pingCtlFrequency, + pingCtlMaxRows, + pingCtlStorageType, + pingCtlTrapGeneration, + pingCtlTrapProbeFailureFilter, + pingCtlTrapTestFailureFilter, + pingCtlType, + pingCtlDescr, + pingCtlByPassRouteTable, + pingCtlSourceAddressType, + pingCtlSourceAddress, + pingCtlIfIndex, + pingCtlDSField, + pingCtlRowStatus, + pingResultsOperStatus, + pingResultsIpTargetAddressType, + pingResultsIpTargetAddress, + pingResultsMinRtt, + pingResultsMaxRtt, + pingResultsAverageRtt, + pingResultsProbeResponses, + pingResultsSentProbes, + pingResultsRttSumOfSquares, + pingProbeHistoryResponse, + pingProbeHistoryStatus, + pingProbeHistoryLastRC + } + STATUS current + DESCRIPTION + "The group of objects that comprise the remote ping + capability." + ::= { pingGroups 1 } + + pingTimeStampGroup OBJECT-GROUP + OBJECTS { + pingResultsLastGoodProbe, + pingProbeHistoryTime + } + STATUS current + DESCRIPTION + "The group of DateAndTime objects." + ::= { pingGroups 2 } + + pingNotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { + + + +White Standards Track [Page 35] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + pingProbeFailed, + pingTestFailed, + pingTestCompleted + } + STATUS current + DESCRIPTION + "The notification which are required to be supported by + implementations of this MIB." + ::= { pingGroups 3 } + +END + +4.2 DISMAN-TRACEROUTE-MIB + +DISMAN-TRACEROUTE-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Integer32, + Gauge32, Unsigned32, mib-2, + NOTIFICATION-TYPE, + OBJECT-IDENTITY + FROM SNMPv2-SMI -- RFC2578 + RowStatus, StorageType, + TruthValue, DateAndTime + FROM SNMPv2-TC -- RFC2579 + MODULE-COMPLIANCE, OBJECT-GROUP, + NOTIFICATION-GROUP + FROM SNMPv2-CONF -- RFC2580 + SnmpAdminString + FROM SNMP-FRAMEWORK-MIB -- RFC2571 + InterfaceIndexOrZero -- RFC2863 + FROM IF-MIB + InetAddressType, InetAddress + FROM INET-ADDRESS-MIB -- RFC2851 + OperationResponseStatus + FROM DISMAN-PING-MIB; -- RFC2925 + + traceRouteMIB MODULE-IDENTITY + LAST-UPDATED "200009210000Z" -- 21 September 2000 + + ORGANIZATION "IETF Distributed Management Working Group" + CONTACT-INFO + "Kenneth White + + International Business Machines Corporation + Network Computing Software Division + Research Triangle Park, NC, USA + + + + +White Standards Track [Page 36] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + E-mail: wkenneth@us.ibm.com" + DESCRIPTION + "The Traceroute MIB (DISMAN-TRACEROUTE-MIB) provides + access to the traceroute capability at a remote host." + + -- Revision history + + REVISION "200009210000Z" -- 21 September 2000 + DESCRIPTION + "Initial version, published as RFC 2925." + + ::= { mib-2 81 } + + -- Top level structure of the MIB + + traceRouteNotifications OBJECT IDENTIFIER ::= { traceRouteMIB 0 } + traceRouteObjects OBJECT IDENTIFIER ::= { traceRouteMIB 1 } + traceRouteConformance OBJECT IDENTIFIER ::= { traceRouteMIB 2 } + + -- The registration node (point) for traceroute implementation types + + traceRouteImplementationTypeDomains OBJECT IDENTIFIER + ::= { traceRouteMIB 3 } + + traceRouteUsingUdpProbes OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Indicates that an implementation is using UDP probes to + perform the traceroute operation." + ::= { traceRouteImplementationTypeDomains 1 } + + + -- Simple Object Definitions + + traceRouteMaxConcurrentRequests OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "requests" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum number of concurrent active traceroute requests + that are allowed within an agent implementation. A value + of 0 for this object implies that there is no limit for + the number of concurrent active requests in effect." + DEFVAL { 10 } + ::= { traceRouteObjects 1 } + + + + + +White Standards Track [Page 37] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + -- Traceroute Control Table + + traceRouteCtlTable OBJECT-TYPE + SYNTAX SEQUENCE OF TraceRouteCtlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines the Remote Operations Traceroute Control Table for + providing the capability of invoking traceroute from a remote + host. The results of traceroute operations can be stored in + the traceRouteResultsTable, traceRouteProbeHistoryTable, and + the traceRouteHopsTable." + ::= { traceRouteObjects 2 } + + traceRouteCtlEntry OBJECT-TYPE + SYNTAX TraceRouteCtlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines an entry in the traceRouteCtlTable. The first + index element, traceRouteCtlOwnerIndex, is of type + SnmpAdminString, a textual convention that allows for + use of the SNMPv3 View-Based Access Control Model + (RFC 2575 [11], VACM) and allows an management + application to identify its entries. The second index, + traceRouteCtlTestName (also an SnmpAdminString), + enables the same management application to have + multiple requests outstanding." + INDEX { + traceRouteCtlOwnerIndex, + traceRouteCtlTestName + } + ::= { traceRouteCtlTable 1 } + + TraceRouteCtlEntry ::= + SEQUENCE { + traceRouteCtlOwnerIndex SnmpAdminString, + traceRouteCtlTestName SnmpAdminString, + traceRouteCtlTargetAddressType InetAddressType, + traceRouteCtlTargetAddress InetAddress, + traceRouteCtlByPassRouteTable TruthValue, + traceRouteCtlDataSize Unsigned32, + traceRouteCtlTimeOut Unsigned32, + traceRouteCtlProbesPerHop Unsigned32, + traceRouteCtlPort Unsigned32, + traceRouteCtlMaxTtl Unsigned32, + traceRouteCtlDSField Unsigned32, + traceRouteCtlSourceAddressType InetAddressType, + + + +White Standards Track [Page 38] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + traceRouteCtlSourceAddress InetAddress, + traceRouteCtlIfIndex InterfaceIndexOrZero, + traceRouteCtlMiscOptions SnmpAdminString, + traceRouteCtlMaxFailures Unsigned32, + traceRouteCtlDontFragment TruthValue, + traceRouteCtlInitialTtl Unsigned32, + traceRouteCtlFrequency Unsigned32, + traceRouteCtlStorageType StorageType, + traceRouteCtlAdminStatus INTEGER, + traceRouteCtlMaxRows Unsigned32, + traceRouteCtlTrapGeneration BITS, + traceRouteCtlDescr SnmpAdminString, + traceRouteCtlCreateHopsEntries TruthValue, + traceRouteCtlType OBJECT IDENTIFIER, + traceRouteCtlRowStatus RowStatus + } + + traceRouteCtlOwnerIndex OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "To facilitate the provisioning of access control by a + security administrator using the View-Based Access + Control Model (RFC 2575, VACM) for tables in which + multiple users may need to independently create or + modify entries, the initial index is used as an 'owner + index'. Such an initial index has a syntax of + SnmpAdminString, and can thus be trivially mapped to a + securityName or groupName as defined in VACM, in + accordance with a security policy. + + When used in conjunction with such a security policy + all entries in the table belonging to a particular user + (or group) will have the same value for this initial + index. For a given user's entries in a particular + table, the object identifiers for the information in + these entries will have the same subidentifiers (except + for the 'column' subidentifier) up to the end of the + encoded owner index. To configure VACM to permit access + to this portion of the table, one would create + vacmViewTreeFamilyTable entries with the value of + vacmViewTreeFamilySubtree including the owner index + portion, and vacmViewTreeFamilyMask 'wildcarding' the + column subidentifier. More elaborate configurations + are possible." + ::= { traceRouteCtlEntry 1 } + + + + +White Standards Track [Page 39] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + traceRouteCtlTestName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The name of a traceroute test. This is locally unique, + within the scope of an traceRouteCtlOwnerIndex." + ::= { traceRouteCtlEntry 2 } + + traceRouteCtlTargetAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the type of host address to be used on the + traceroute request at the remote host." + DEFVAL { ipv4 } + ::= { traceRouteCtlEntry 3 } + + traceRouteCtlTargetAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the host address used on the + traceroute request at the remote host. The + host address type can be determined by the + examining the value of the corresponding + traceRouteCtlTargetAddressType index element. + + A value for this object MUST be set prior to + transitioning its corresponding traceRouteCtlEntry to + active(1) via traceRouteCtlRowStatus." + ::= { traceRouteCtlEntry 4 } + + traceRouteCtlByPassRouteTable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The purpose of this object is to optionally enable + bypassing the route table. If enabled, the remote + host will bypass the normal routing tables and send + directly to a host on an attached network. If the + host is not on a directly-attached network, an + error is returned. This option can be used to perform + the traceroute operation to a local host through an + interface that has no route defined (e.g., after the + + + +White Standards Track [Page 40] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + interface was dropped by routed)." + DEFVAL { false } + ::= { traceRouteCtlEntry 5 } + + traceRouteCtlDataSize OBJECT-TYPE + SYNTAX Unsigned32 (0..65507) + UNITS "octets" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the size of the data portion of a traceroute + request in octets. A traceroute request is essentially + transmitted by encoding a UDP datagram into a + IP packet. So subtracting the size of a UDP header + (8 octets) and the size of a IP header (20 octets) + yields a maximum of 65507 octets." + DEFVAL { 0 } + ::= { traceRouteCtlEntry 6 } + + traceRouteCtlTimeOut OBJECT-TYPE + SYNTAX Unsigned32 (1..60) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the time-out value, in seconds, for + a traceroute request." + DEFVAL { 3 } + ::= { traceRouteCtlEntry 7 } + + traceRouteCtlProbesPerHop OBJECT-TYPE + SYNTAX Unsigned32 (1..10) + UNITS "probes" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the number of times to reissue a traceroute + request with the same time-to-live (TTL) value." + DEFVAL { 3 } + ::= { traceRouteCtlEntry 8 } + + traceRouteCtlPort OBJECT-TYPE + SYNTAX Unsigned32 (1..65535) + UNITS "UDP Port" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the UDP port to send the traceroute + + + +White Standards Track [Page 41] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + request to. Need to specify a port that is not in + use at the destination (target) host. The default + value for this object is the IANA assigned port, + 33434, for the traceroute function." + DEFVAL { 33434 } + ::= { traceRouteCtlEntry 9 } + + traceRouteCtlMaxTtl OBJECT-TYPE + SYNTAX Unsigned32 (1..255) + UNITS "time-to-live value" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the maximum time-to-live value." + DEFVAL { 30 } + ::= { traceRouteCtlEntry 10 } + + traceRouteCtlDSField OBJECT-TYPE + SYNTAX Unsigned32 (0..255) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the value to store in the Differentiated + Services (DS) Field in the IP packet used to + encapsulate the traceroute probe. The DS Field is + defined as the Type of Service (TOS) octet in a IPv4 + header or as the Traffic Class octet in a IPv6 header. + + The value of this object must be a decimal integer + in the range from 0 to 255. This option can be used + to determine what effect an explicit DS Field setting + has on a traceroute response. Not all values are legal + or meaningful. DS Field usage is often not supported + by IP implementations. A value of 0 means that the + function represented by this option is not supported. + Useful TOS octet values are probably '16' (low delay) + and '8' ( high throughput)." + REFERENCE + "Refer to RFC 2474 for the definition of the + Differentiated Services Field and to RFC 1812 + Section 5.3.2 for Type of Service (TOS)." + DEFVAL { 0 } + ::= { traceRouteCtlEntry 11 } + + traceRouteCtlSourceAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-create + STATUS current + + + +White Standards Track [Page 42] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + DESCRIPTION + "Specifies the type of the source address, + traceRouteCtlSourceAddress, to be used at a remote host + when performing a traceroute operation." + DEFVAL { unknown } + ::= { traceRouteCtlEntry 12 } + + traceRouteCtlSourceAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Use the specified IP address (which must be given + as an IP number, not a hostname) as the source + address in outgoing probe packets. On hosts with + more than one IP address, this option can be used + to force the source address to be something other + than the primary IP address of the interface the + probe packet is sent on. If the IP address is not + one of this machine's interface addresses, an error + is returned and nothing is sent. A zero length + octet string value for this object disables source + address specification. + + The address type (InetAddressType) that relates to + this object is specified by the corresponding value + of traceRouteCtlSourceAddressType." + DEFVAL { ''H } + ::= { traceRouteCtlEntry 13 } + + traceRouteCtlIfIndex OBJECT-TYPE + SYNTAX InterfaceIndexOrZero + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Setting this object to an interface's ifIndex prior + to starting a remote traceroute operation directs + the traceroute probes to be transmitted over the + specified interface. A value of zero for this object + implies that this option is not enabled." + DEFVAL { 0 } + ::= { traceRouteCtlEntry 14 } + + traceRouteCtlMiscOptions OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + + + +White Standards Track [Page 43] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + "Enables an application to specify implementation + dependent options." + DEFVAL { ''H } + ::= { traceRouteCtlEntry 15 } + + traceRouteCtlMaxFailures OBJECT-TYPE + SYNTAX Unsigned32 (0..255) + UNITS "timeouts" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object indicates the maximum number + of consecutive timeouts allowed before terminating + a remote traceroute request. A value of either 255 (maximum + hop count/possible TTL value) or a 0 indicates that the + function of terminating a remote traceroute request when a + specific number of successive timeouts are detected is + disabled." + DEFVAL { 5 } + ::= { traceRouteCtlEntry 16 } + + traceRouteCtlDontFragment OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object enables setting of the don't fragment flag (DF) + in the IP header for a probe. Use of this object enables + performing a manual PATH MTU test." + DEFVAL { false } + ::= { traceRouteCtlEntry 17 } + + traceRouteCtlInitialTtl OBJECT-TYPE + SYNTAX Unsigned32 (0..255) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object specifies the initial TTL value to + use. This enables bypassing the initial (often well known) + portion of a path." + DEFVAL { 1 } + ::= { traceRouteCtlEntry 18 } + + traceRouteCtlFrequency OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + + + +White Standards Track [Page 44] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + DESCRIPTION + "The number of seconds to wait before repeating a + traceroute test as defined by the value of the + various objects in the corresponding row. + + The number of hops in a single traceroute test + is determined by the value of the corresponding + traceRouteCtlProbesPerHop object. After a + single test completes the number of seconds as defined + by the value of traceRouteCtlFrequency MUST elapse + before the next traceroute test is started. + + A value of 0 for this object implies that the test + as defined by the corresponding entry will not be + repeated." + DEFVAL { 0 } + ::= { traceRouteCtlEntry 19 } + + traceRouteCtlStorageType OBJECT-TYPE + SYNTAX StorageType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The storage type for this conceptual row. + Conceptual rows having the value 'permanent' need not + allow write-access to any columnar objects in the row." + DEFVAL { nonVolatile } + ::= { traceRouteCtlEntry 20 } + + traceRouteCtlAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), -- operation should be started + disabled(2) -- operation should be stopped + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Reflects the desired state that an traceRouteCtlEntry + should be in: + + enabled(1) - Attempt to activate the test as defined by + this traceRouteCtlEntry. + disabled(2) - Deactivate the test as defined by this + traceRouteCtlEntry. + + Refer to the corresponding traceRouteResultsOperStatus to + determine the operational state of the test defined by + this entry." + + + +White Standards Track [Page 45] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + DEFVAL { disabled } + ::= { traceRouteCtlEntry 21 } + + traceRouteCtlDescr OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The purpose of this object is to provide a + descriptive name of the remote traceroute + test." + DEFVAL { '00'H } + ::= { traceRouteCtlEntry 22 } + + traceRouteCtlMaxRows OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "rows" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The maximum number of entries allowed in the + traceRouteProbeHistoryTable. An implementation of + this MIB will remove the oldest entry in the + traceRouteProbeHistoryTable to allow the addition + of an new entry once the number of rows in the + traceRouteProbeHistoryTable reaches this value. + + Old entries are not removed when a new test is + started. Entries are added to the + traceRouteProbeHistoryTable until traceRouteCtlMaxRows + is reached before entries begin to be removed. + + A value of 0 for this object disables creation of + traceRouteProbeHistoryTable entries." + DEFVAL { 50 } + ::= { traceRouteCtlEntry 23 } + + traceRouteCtlTrapGeneration OBJECT-TYPE + SYNTAX BITS { + pathChange(0), + testFailure(1), + testCompletion(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object determines when and if to + to generate a notification for this entry: + + + +White Standards Track [Page 46] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + pathChange(0) - Generate a traceRoutePathChange + notification when the current path varies from a + previously determined path. + testFailure(1) - Generate a traceRouteTestFailed + notification when the full path to a target + can't be determined. + testCompletion(2) - Generate a traceRouteTestCompleted + notification when the path to a target has been + determined. + + The value of this object defaults to zero, indicating + that none of the above options have been selected." + ::= { traceRouteCtlEntry 24 } + + traceRouteCtlCreateHopsEntries OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The current path for a traceroute test is kept in the + traceRouteHopsTable on a per hop basis when the value of + this object is true(1)." + DEFVAL { false } + ::= { traceRouteCtlEntry 25 } + + traceRouteCtlType OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object is used either to report or + select the implementation method to be used for + performing a traceroute operation. The value of this + object may be selected from + traceRouteImplementationTypeDomains. + + Additional implementation types should be allocated as + required by implementers of the DISMAN-TRACEROUTE-MIB + under their enterprise specific registration point and + not beneath traceRouteImplementationTypeDomains." + DEFVAL { traceRouteUsingUdpProbes } + ::= { traceRouteCtlEntry 26 } + + traceRouteCtlRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + + + +White Standards Track [Page 47] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + "This object allows entries to be created and deleted + in the traceRouteCtlTable. Deletion of an entry in + this table results in all corresponding (same + traceRouteCtlOwnerIndex and traceRouteCtlTestName + index values) traceRouteResultsTable, + traceRouteProbeHistoryTable, and traceRouteHopsTable + entries being deleted. + + A value MUST be specified for traceRouteCtlTargetAddress + prior to a transition to active(1) state being + accepted. + + Activation of a remote traceroute operation is + controlled via traceRouteCtlAdminStatus and not + by transitioning of this object's value to active(1). + + Transitions in and out of active(1) state are not + allowed while an entry's traceRouteResultsOperStatus + is active(1) with the exception that deletion of + an entry in this table by setting its RowStatus + object to destroy(6) will stop an active + traceroute operation. + + The operational state of an traceroute operation + can be determined by examination of the corresponding + traceRouteResultsOperStatus object." + REFERENCE + "See definition of RowStatus in RFC 2579, 'Textual + Conventions for SMIv2.'" + ::= { traceRouteCtlEntry 27 } + + + -- Traceroute Results Table + + traceRouteResultsTable OBJECT-TYPE + SYNTAX SEQUENCE OF TraceRouteResultsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines the Remote Operations Traceroute Results Table for + keeping track of the status of a traceRouteCtlEntry. + + An entry is added to the traceRouteResultsTable when an + traceRouteCtlEntry is started by successful transition + of its traceRouteCtlAdminStatus object to enabled(1). + An entry is removed from the traceRouteResultsTable when + its corresponding traceRouteCtlEntry is deleted." + ::= { traceRouteObjects 3 } + + + +White Standards Track [Page 48] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + traceRouteResultsEntry OBJECT-TYPE + SYNTAX TraceRouteResultsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines an entry in the traceRouteResultsTable. The + traceRouteResultsTable has the same indexing as the + traceRouteCtlTable in order for a traceRouteResultsEntry + to correspond to the traceRouteCtlEntry that caused it to + be created." + INDEX { + traceRouteCtlOwnerIndex, + traceRouteCtlTestName + } + ::= { traceRouteResultsTable 1 } + + TraceRouteResultsEntry ::= + SEQUENCE { + traceRouteResultsOperStatus INTEGER, + traceRouteResultsCurHopCount Gauge32, + traceRouteResultsCurProbeCount Gauge32, + traceRouteResultsIpTgtAddrType InetAddressType, + traceRouteResultsIpTgtAddr InetAddress, + traceRouteResultsTestAttempts Unsigned32, + traceRouteResultsTestSuccesses Unsigned32, + traceRouteResultsLastGoodPath DateAndTime + } + + traceRouteResultsOperStatus OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), -- test is in progress + disabled(2) -- test has stopped + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reflects the operational state of an traceRouteCtlEntry: + + enabled(1) - Test is active. + disabled(2) - Test has stopped." + ::= { traceRouteResultsEntry 1 } + + traceRouteResultsCurHopCount OBJECT-TYPE + SYNTAX Gauge32 + UNITS "hops" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + + +White Standards Track [Page 49] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + "Reflects the current TTL value (range from 1 to + 255) for a remote traceroute operation. + Maximum TTL value is determined by + traceRouteCtlMaxTtl." + ::= { traceRouteResultsEntry 2 } + + traceRouteResultsCurProbeCount OBJECT-TYPE + SYNTAX Gauge32 + UNITS "probes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reflects the current probe count (1..10) for + a remote traceroute operation. The maximum + probe count is determined by + traceRouteCtlProbesPerHop." + ::= { traceRouteResultsEntry 3 } + + traceRouteResultsIpTgtAddrType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This objects indicates the type of address stored + in the corresponding traceRouteResultsIpTgtAddr + object." + ::= { traceRouteResultsEntry 4 } + + traceRouteResultsIpTgtAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This objects reports the IP address associated + with a traceRouteCtlTargetAddress value when the + destination address is specified as a DNS name. + The value of this object should be a zero length + octet string when a DNS name is not specified or + when a specified DNS name fails to resolve." + ::= { traceRouteResultsEntry 5 } + + traceRouteResultsTestAttempts OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "tests" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of attempts to determine a path + + + +White Standards Track [Page 50] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + to a target. The value of this object MUST be started + at 0." + ::= { traceRouteResultsEntry 6 } + + traceRouteResultsTestSuccesses OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "tests" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of attempts to determine a path + to a target that have succeeded. The value of this + object MUST be reported as 0 when no attempts have + succeeded." + ::= { traceRouteResultsEntry 7 } + + traceRouteResultsLastGoodPath OBJECT-TYPE + SYNTAX DateAndTime + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The date and time when the last complete path + was determined." + ::= { traceRouteResultsEntry 8 } + + -- Trace Route Probe History Table + + traceRouteProbeHistoryTable OBJECT-TYPE + SYNTAX SEQUENCE OF TraceRouteProbeHistoryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines the Remote Operations Traceroute Results Table for + storing the results of a traceroute operation. + + An implementation of this MIB will remove the oldest + entry in the traceRouteProbeHistoryTable to allow the + addition of an new entry once the number of rows in + the traceRouteProbeHistoryTable reaches the value specified + by traceRouteCtlMaxRows." + ::= { traceRouteObjects 4 } + + traceRouteProbeHistoryEntry OBJECT-TYPE + SYNTAX TraceRouteProbeHistoryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines a table for storing the results of a traceroute + + + +White Standards Track [Page 51] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + operation. Entries in this table are limited by + the value of the corresponding traceRouteCtlMaxRows + object. + + The first two index elements identify the + traceRouteCtlEntry that a traceRouteProbeHistoryEntry + belongs to. The third index element selects a single + traceroute operation result. The fourth and fifth indexes + select the hop and the probe for a particular + traceroute operation." + INDEX { + traceRouteCtlOwnerIndex, + traceRouteCtlTestName, + traceRouteProbeHistoryIndex, + traceRouteProbeHistoryHopIndex, + traceRouteProbeHistoryProbeIndex + } + ::= { traceRouteProbeHistoryTable 1 } + + TraceRouteProbeHistoryEntry ::= + SEQUENCE { + traceRouteProbeHistoryIndex Unsigned32, + traceRouteProbeHistoryHopIndex Unsigned32, + traceRouteProbeHistoryProbeIndex Unsigned32, + traceRouteProbeHistoryHAddrType InetAddressType, + traceRouteProbeHistoryHAddr InetAddress, + traceRouteProbeHistoryResponse Unsigned32, + traceRouteProbeHistoryStatus OperationResponseStatus, + traceRouteProbeHistoryLastRC Integer32, + traceRouteProbeHistoryTime DateAndTime + } + + traceRouteProbeHistoryIndex OBJECT-TYPE + SYNTAX Unsigned32 (1..'ffffffff'h) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in this table is created when the result of + a traceroute probe is determined. The initial 2 instance + identifier index values identify the traceRouteCtlEntry + that a probe result (traceRouteProbeHistoryEntry) belongs + to. An entry is removed from this table when + its corresponding traceRouteCtlEntry is deleted. + + An implementation MUST start assigning + traceRouteProbeHistoryIndex values at 1 and wrap after + exceeding the maximum possible value as defined by the + limit of this object ('ffffffff'h)." + + + +White Standards Track [Page 52] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + ::= { traceRouteProbeHistoryEntry 1 } + + traceRouteProbeHistoryHopIndex OBJECT-TYPE + SYNTAX Unsigned32 (1..255) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Indicates which hop in a traceroute path that the probe's + results are for. The value of this object is initially + determined by the value of traceRouteCtlInitialTtl." + ::= { traceRouteProbeHistoryEntry 2 } + + traceRouteProbeHistoryProbeIndex OBJECT-TYPE + SYNTAX Unsigned32 (1..10) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Indicates the index of a probe for a particular + hop in a traceroute path. The number of probes per + hop is determined by the value of the corresponding + traceRouteCtlProbesPerHop object." + ::= { traceRouteProbeHistoryEntry 3 } + + traceRouteProbeHistoryHAddrType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This objects indicates the type of address stored + in the corresponding traceRouteProbeHistoryHAddr + object." + ::= { traceRouteProbeHistoryEntry 4 } + + traceRouteProbeHistoryHAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The address of a hop in a traceroute path. This object + is not allowed to be a DNS name. The value of the + corresponding object, traceRouteProbeHistoryHAddrType, + indicates this object's IP address type." + ::= { traceRouteProbeHistoryEntry 5 } + + traceRouteProbeHistoryResponse OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + + + +White Standards Track [Page 53] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + STATUS current + DESCRIPTION + "The amount of time measured in milliseconds from when + a probe was sent to when its response was received or + when it timed out. The value of this object is reported + as 0 when it is not possible to transmit a probe." + ::= { traceRouteProbeHistoryEntry 6 } + + traceRouteProbeHistoryStatus OBJECT-TYPE + SYNTAX OperationResponseStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The result of a traceroute operation made by a remote + host for a particular probe." + ::= { traceRouteProbeHistoryEntry 7 } + + traceRouteProbeHistoryLastRC OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The last implementation method specific reply code received. + + Traceroute is usually implemented by transmitting a series of + probe packets with increasing time-to-live values. A probe + packet is a UDP datagram encapsulated into an IP packet. + Each hop in a path to the target (destination) host rejects + the probe packets (probe's TTL too small, ICMP reply) until + either the maximum TTL is exceeded or the target host is + received." + ::= { traceRouteProbeHistoryEntry 8 } + + traceRouteProbeHistoryTime OBJECT-TYPE + SYNTAX DateAndTime + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Timestamp for when this probe results were determined." + ::= { traceRouteProbeHistoryEntry 9 } + + -- Traceroute Hop Results Table + + traceRouteHopsTable OBJECT-TYPE + SYNTAX SEQUENCE OF TraceRouteHopsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + + + +White Standards Track [Page 54] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + "Defines the Remote Operations Traceroute Hop Table for + keeping track of the results of traceroute tests on a + per hop basis." + ::= { traceRouteObjects 5 } + + traceRouteHopsEntry OBJECT-TYPE + SYNTAX TraceRouteHopsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines an entry in the traceRouteHopsTable. + + The first two index elements identify the + traceRouteCtlEntry that a traceRouteHopsEntry + belongs to. The third index element, + traceRouteHopsHopIndex, selects a + hop in a traceroute path." + INDEX { + traceRouteCtlOwnerIndex, + traceRouteCtlTestName, + traceRouteHopsHopIndex + } + ::= { traceRouteHopsTable 1 } + + TraceRouteHopsEntry ::= + SEQUENCE { + traceRouteHopsHopIndex Unsigned32, + traceRouteHopsIpTgtAddressType InetAddressType, + traceRouteHopsIpTgtAddress InetAddress, + traceRouteHopsMinRtt Unsigned32, + traceRouteHopsMaxRtt Unsigned32, + traceRouteHopsAverageRtt Unsigned32, + traceRouteHopsRttSumOfSquares Unsigned32, + traceRouteHopsSentProbes Unsigned32, + traceRouteHopsProbeResponses Unsigned32, + traceRouteHopsLastGoodProbe DateAndTime + } + + traceRouteHopsHopIndex OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Specifies the hop index for a traceroute hop. Values + for this object with respect to the same + traceRouteCtlOwnerIndex and traceRouteCtlTestName + MUST start at 1 and increase monotonically. + + + + +White Standards Track [Page 55] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + The traceRouteHopsTable keeps the current traceroute + path per traceRouteCtlEntry if enabled by + setting the corresponding traceRouteCtlCreateHopsEntries + to true(1). + + All hops (traceRouteHopsTable entries) in a traceroute + path MUST be updated at the same time when a traceroute + operation completes. Care needs to be applied when either + a path changes or can't be determined. The initial portion + of the path, up to the first hop change, MUST retain the + same traceRouteHopsHopIndex values. The remaining portion + of the path SHOULD be assigned new traceRouteHopsHopIndex + values." + ::= { traceRouteHopsEntry 1 } + + traceRouteHopsIpTgtAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This objects indicates the type of address stored + in the corresponding traceRouteHopsIpTargetAddress + object." + ::= { traceRouteHopsEntry 2 } + + traceRouteHopsIpTgtAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object reports the IP address associated with + the hop. A value for this object should be reported + as a numeric IP address and not as a DNS name." + ::= { traceRouteHopsEntry 3 } + + traceRouteHopsMinRtt OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum traceroute round-trip-time (RTT) received for + this hop. A value of 0 for this object implies that no + RTT has been received." + ::= { traceRouteHopsEntry 4 } + + traceRouteHopsMaxRtt OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + + + +White Standards Track [Page 56] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + STATUS current + DESCRIPTION + "The maximum traceroute round-trip-time (RTT) received for + this hop. A value of 0 for this object implies that no + RTT has been received." + ::= { traceRouteHopsEntry 5 } + + traceRouteHopsAverageRtt OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current average traceroute round-trip-time (RTT) for + this hop." + ::= { traceRouteHopsEntry 6 } + + traceRouteHopsRttSumOfSquares OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object contains the sum of all traceroute responses + received for this hop. Its purpose is to enable standard + deviation calculation." + ::= { traceRouteHopsEntry 7 } + + traceRouteHopsSentProbes OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object reflects the number of probes sent + for this hop during this traceroute test. The value of this + object should start at 0." + ::= { traceRouteHopsEntry 8 } + + traceRouteHopsProbeResponses OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of responses received for this hop during this + traceroute test. This value of this object should start + at 0." + ::= { traceRouteHopsEntry 9 } + + traceRouteHopsLastGoodProbe OBJECT-TYPE + SYNTAX DateAndTime + + + +White Standards Track [Page 57] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Date and time was the last response was received for a probe + for this hop during this traceroute test." + ::= { traceRouteHopsEntry 10 } + + -- Notification Definition section + + traceRoutePathChange NOTIFICATION-TYPE + OBJECTS { + traceRouteCtlTargetAddressType, + traceRouteCtlTargetAddress, + traceRouteResultsIpTgtAddrType, + traceRouteResultsIpTgtAddr + } + STATUS current + DESCRIPTION + "The path to a target has changed." + ::= { traceRouteNotifications 1 } + + traceRouteTestFailed NOTIFICATION-TYPE + OBJECTS { + traceRouteCtlTargetAddressType, + traceRouteCtlTargetAddress, + traceRouteResultsIpTgtAddrType, + traceRouteResultsIpTgtAddr + } + STATUS current + DESCRIPTION + "Could not determine the path to a target." + ::= { traceRouteNotifications 2 } + + traceRouteTestCompleted NOTIFICATION-TYPE + OBJECTS { + traceRouteCtlTargetAddressType, + traceRouteCtlTargetAddress, + traceRouteResultsIpTgtAddrType, + traceRouteResultsIpTgtAddr + } + STATUS current + DESCRIPTION + "The path to a target has just been determined." + ::= { traceRouteNotifications 3 } + + -- Conformance information + -- Compliance statements + + + + +White Standards Track [Page 58] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + traceRouteCompliances OBJECT IDENTIFIER ::= { traceRouteConformance 1 } + traceRouteGroups OBJECT IDENTIFIER ::= { traceRouteConformance 2 } + + -- Compliance statements + + traceRouteCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for the DISMAN-TRACEROUTE-MIB." + MODULE -- this module + MANDATORY-GROUPS { + traceRouteGroup + } + GROUP traceRouteTimeStampGroup + DESCRIPTION + "This group is mandatory for implementations that have + access to a system clock and are capable of setting + the values for DateAndTime objects." + + GROUP traceRouteNotificationsGroup + DESCRIPTION + "This group defines a collection of optional + notifications." + + GROUP traceRouteHopsTableGroup + DESCRIPTION + "This group lists the objects that make up a + traceRouteHopsEntry. Support of the traceRouteHopsTable + is optional." + + OBJECT traceRouteMaxConcurrentRequests + MIN-ACCESS read-only + DESCRIPTION + "The agent is not required to support SET + operations to this object." + + OBJECT traceRouteCtlByPassRouteTable + MIN-ACCESS read-only + DESCRIPTION + "This object is not required by implementations that + are not capable of its implementation. The function + represented by this object is implementable if the + setsockopt SOL_SOCKET SO_DONTROUTE option is + supported." + + OBJECT traceRouteCtlSourceAddressType + SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) } + MIN-ACCESS read-only + + + +White Standards Track [Page 59] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + DESCRIPTION + "This object is not required by implementations that + are not capable of binding the send socket with a + source address. An implementation is only required to + support IPv4 and IPv6 addresses." + + OBJECT traceRouteCtlSourceAddress + SYNTAX InetAddress (SIZE(0|4|16)) + MIN-ACCESS read-only + DESCRIPTION + "This object is not required by implementations that + are not capable of binding the send socket with a + source address. An implementation is only required to + support IPv4 and globally unique IPv6 addresses." + + OBJECT traceRouteCtlIfIndex + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required. When write access is + not supported return a 0 as the value of this object. + A value of 0 implies that the function represented by + this option is not supported." + + OBJECT traceRouteCtlMiscOptions + MIN-ACCESS read-only + DESCRIPTION + "Support of this object is optional. When not + supporting do not allow write access and return a + zero length octet string as the value of the object." + + OBJECT traceRouteCtlStorageType + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required. It is also allowed + for implementations to support only the volatile + StorageType enumeration." + + OBJECT traceRouteCtlDSField + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required. When write access is + not supported return a 0 as the value of this object. + A value of 0 implies that the function represented by + this option is not supported." + + OBJECT traceRouteCtlType + MIN-ACCESS read-only + DESCRIPTION + + + +White Standards Track [Page 60] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + "Write access is not required. In addition, the only + value that is RECOMMENDED to be supported by an + implementation is traceRouteUsingUdpProbes." + + OBJECT traceRouteResultsIpTgtAddrType + SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) } + DESCRIPTION + "An implementation should only support IPv4 and + globally unique IPv6 address values for this object." + + OBJECT traceRouteResultsIpTgtAddr + SYNTAX InetAddress (SIZE(0|4|16)) + DESCRIPTION + "An implementation should only support IPv4 and + globally unique IPv6 address values for this object." + + OBJECT traceRouteProbeHistoryHAddrType + SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) } + DESCRIPTION + "An implementation should only support IPv4 and + globally unique IPv6 address values for this object." + OBJECT traceRouteProbeHistoryHAddr + SYNTAX InetAddress (SIZE(0|4|16)) + DESCRIPTION + "An implementation should only support IPv4 and + globally unique IPv6 address values for this object." + + OBJECT traceRouteHopsIpTgtAddressType + SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) } + DESCRIPTION + "An implementation should only support IPv4 and + globally unique IPv6 address values for this object." + + OBJECT traceRouteHopsIpTgtAddress + SYNTAX InetAddress (SIZE(0|4|16)) + DESCRIPTION + "An implementation should only support IPv4 and + globally unique IPv6 address values for this object." + ::= { traceRouteCompliances 1 } + + -- MIB groupings + + traceRouteGroup OBJECT-GROUP + OBJECTS { + traceRouteMaxConcurrentRequests, + traceRouteCtlTargetAddressType, + traceRouteCtlTargetAddress, + traceRouteCtlByPassRouteTable, + + + +White Standards Track [Page 61] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + traceRouteCtlDataSize, + traceRouteCtlTimeOut, + traceRouteCtlProbesPerHop, + traceRouteCtlPort, + traceRouteCtlMaxTtl, + traceRouteCtlDSField, + traceRouteCtlSourceAddressType, + traceRouteCtlSourceAddress, + traceRouteCtlIfIndex, + traceRouteCtlMiscOptions, + traceRouteCtlMaxFailures, + traceRouteCtlDontFragment, + traceRouteCtlInitialTtl, + traceRouteCtlFrequency, + traceRouteCtlStorageType, + traceRouteCtlAdminStatus, + traceRouteCtlMaxRows, + traceRouteCtlTrapGeneration, + traceRouteCtlDescr, + traceRouteCtlCreateHopsEntries, + traceRouteCtlType, + traceRouteCtlRowStatus, + traceRouteResultsOperStatus, + traceRouteResultsCurHopCount, + traceRouteResultsCurProbeCount, + traceRouteResultsIpTgtAddrType, + traceRouteResultsIpTgtAddr, + traceRouteResultsTestAttempts, + traceRouteResultsTestSuccesses, + traceRouteProbeHistoryHAddrType, + traceRouteProbeHistoryHAddr, + traceRouteProbeHistoryResponse, + traceRouteProbeHistoryStatus, + traceRouteProbeHistoryLastRC + } + STATUS current + DESCRIPTION + "The group of objects that comprise the remote traceroute + operation." + ::= { traceRouteGroups 1 } + + traceRouteTimeStampGroup OBJECT-GROUP + OBJECTS { + traceRouteResultsLastGoodPath, + traceRouteProbeHistoryTime + } + STATUS current + DESCRIPTION + + + +White Standards Track [Page 62] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + "The group of DateAndTime objects." + ::= { traceRouteGroups 2 } + + traceRouteNotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { + traceRoutePathChange, + traceRouteTestFailed, + traceRouteTestCompleted + } + STATUS current + DESCRIPTION + "The notifications which are required to be supported by + implementations of this MIB." + ::= { traceRouteGroups 3 } + + traceRouteHopsTableGroup OBJECT-GROUP + OBJECTS { + traceRouteHopsIpTgtAddressType, + traceRouteHopsIpTgtAddress, + traceRouteHopsMinRtt, + traceRouteHopsMaxRtt, + traceRouteHopsAverageRtt, + traceRouteHopsRttSumOfSquares, + traceRouteHopsSentProbes, + traceRouteHopsProbeResponses, + traceRouteHopsLastGoodProbe + } + STATUS current + DESCRIPTION + "The group of objects that comprise the traceRouteHopsTable." + ::= { traceRouteGroups 4 } + +END + +4.3 DISMAN-NSLOOKUP-MIB + +DISMAN-NSLOOKUP-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, + Unsigned32, mib-2, Integer32 + FROM SNMPv2-SMI -- RFC2578 + RowStatus + FROM SNMPv2-TC -- RFC2579 + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF -- RFC2580 + SnmpAdminString + FROM SNMP-FRAMEWORK-MIB -- RFC2571 + + + +White Standards Track [Page 63] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + InetAddressType, InetAddress + FROM INET-ADDRESS-MIB; -- RFC2851 + + + lookupMIB MODULE-IDENTITY + LAST-UPDATED "200009210000Z" -- 21 September 2000 + ORGANIZATION "IETF Distributed Management Working Group" + CONTACT-INFO + "Kenneth White + + International Business Machines Corporation + Network Computing Software Division + Research Triangle Park, NC, USA + + E-mail: wkenneth@us.ibm.com" + DESCRIPTION + "The Lookup MIB (DISMAN-NSLOOKUP-MIB) enables determination + of either the name(s) corresponding to a host address or of + the address(es) associated with a host name at a remote host." + + -- Revision history + + REVISION "200009210000Z" -- 21 September 2000 + DESCRIPTION + "Initial version, published as RFC 2925." + + ::= { mib-2 82 } + + -- Top level structure of the MIB + + lookupObjects OBJECT IDENTIFIER ::= { lookupMIB 1 } + lookupConformance OBJECT IDENTIFIER ::= { lookupMIB 2 } + + -- Simple Object Definitions + + lookupMaxConcurrentRequests OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "requests" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum number of concurrent active lookup requests + that are allowed within an agent implementation. A value + of 0 for this object implies that there is no limit for + the number of concurrent active requests in effect." + DEFVAL { 10 } + ::= { lookupObjects 1 } + + + + +White Standards Track [Page 64] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + lookupPurgeTime OBJECT-TYPE + SYNTAX Unsigned32 (0..86400) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The amount of time to wait before automatically + deleting an entry in the lookupCtlTable and any + dependent lookupResultsTable entries + after the lookup operation represented by an + lookupCtlEntry has completed. + + An lookupCtEntry is considered complete + when its lookupCtlOperStatus object has a + value of completed(3)." + DEFVAL { 900 } -- 15 minutes as default + ::= { lookupObjects 2 } + + -- Lookup Control Table + + lookupCtlTable OBJECT-TYPE + SYNTAX SEQUENCE OF LookupCtlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines the Lookup Control Table for providing + the capability of performing a lookup operation, + gethostbyname or gethostbyaddr, from a remote host." + ::= { lookupObjects 3 } + + lookupCtlEntry OBJECT-TYPE + SYNTAX LookupCtlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines an entry in the lookupCtlTable. A + lookupCtlEntry is initially indexed by + lookupCtlOwnerIndex, which is of type SnmpAdminString, + a textual convention that allows for use of the SNMPv3 + View-Based Access Control Model (RFC 2575 [11], VACM) + and also allows an management application to identify + its entries. The second index element, + lookupCtlOperationName, enables the same + lookupCtlOwnerIndex entity to have multiple outstanding + requests. + + The value of lookupCtlTargetAddressType determines which + lookup function to perform. Specification of dns(16) + + + +White Standards Track [Page 65] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + as the value of this index implies that the gethostbyname + function should be performed to determine the numeric + addresses associated with a symbolic name via + lookupResultsTable entries. Use of a value of either + ipv4(1) or ipv6(2) implies that the gethostbyaddr function + should be performed to determine the symbolic name(s) + associated with a numeric address at a remote host." + INDEX { + lookupCtlOwnerIndex, + lookupCtlOperationName + } + ::= { lookupCtlTable 1 } + + LookupCtlEntry ::= + SEQUENCE { + lookupCtlOwnerIndex SnmpAdminString, + lookupCtlOperationName SnmpAdminString, + lookupCtlTargetAddressType InetAddressType, + lookupCtlTargetAddress InetAddress, + lookupCtlOperStatus INTEGER, + lookupCtlTime Unsigned32, + lookupCtlRc Integer32, + lookupCtlRowStatus RowStatus + } + + lookupCtlOwnerIndex OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "To facilitate the provisioning of access control by a + security administrator using the View-Based Access + Control Model (RFC 2575, VACM) for tables in which + multiple users may need to independently create or + modify entries, the initial index is used as an 'owner + index'. Such an initial index has a syntax of + SnmpAdminString, and can thus be trivially mapped to a + securityName or groupName as defined in VACM, in + accordance with a security policy. + + When used in conjunction with such a security policy all + entries in the table belonging to a particular user (or + group) will have the same value for this initial index. + For a given user's entries in a particular table, the + object identifiers for the information in these entries + will have the same subidentifiers (except for the + 'column' subidentifier) up to the end of the encoded + owner index. To configure VACM to permit access to this + + + +White Standards Track [Page 66] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + portion of the table, one would create + vacmViewTreeFamilyTable entries with the value of + vacmViewTreeFamilySubtree including the owner index + portion, and vacmViewTreeFamilyMask 'wildcarding' the + column subidentifier. More elaborate configurations + are possible." + ::= { lookupCtlEntry 1 } + + lookupCtlOperationName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The name of a lookup operation. This is locally unique, + within the scope of an lookupCtlOwnerIndex." + ::= { lookupCtlEntry 2 } + + lookupCtlTargetAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the type of address for either performing a + gethostbyname or a gethostbyaddr function at a remote host. + Specification of dns(16) as the value for this object + means that the gethostbyname function should be performed + to return one or more numeric addresses. Use of a value + of either ipv4(1) or ipv6(2) means that the gethostbyaddr + function should be used to return the symbolic names + associated with a remote host." + ::= { lookupCtlEntry 3 } + + lookupCtlTargetAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the address used for a resolver lookup at a + remote host. The corresponding lookupCtlAddressType + objects determines its type as well as the function + that can be requested. + + A value for this object MUST be set prior to + transitioning its corresponding lookupCtlEntry to + active(1) via lookupCtlRowStatus." + ::= { lookupCtlEntry 4 } + + lookupCtlOperStatus OBJECT-TYPE + + + +White Standards Track [Page 67] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + SYNTAX INTEGER { + notStarted(2), -- operation has not started + completed(3) -- operation is done + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reflects the operational state of an lookupCtlEntry: + + enabled(1) - Operation is active. + notStarted(2) - Operation has not been enabled. + completed(3) - Operation has completed. + + An operation is automatically enabled(1) when its + lookupCtlRowStatus object is transitioned to active(1) + status. Until this occurs lookupCtlOperStatus MUST + report a value of notStarted(2). After the lookup + operation completes (success or failure) the value + for lookupCtlOperStatus MUST be transitioned to + completed(3)." + ::= { lookupCtlEntry 5 } + + lookupCtlTime OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reports the number of milliseconds that a lookup + operation required to be completed at a remote host. + Completed means operation failure as well as + success." + ::= { lookupCtlEntry 6 } + + lookupCtlRc OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The system specific return code from a lookup + operation. All implementations MUST return a value + of 0 for this object when the remote lookup + operation succeeds. A non-zero value for this + objects indicates failure. It is recommended that + implementations that support errno use it as the + value of this object to aid a management + application in determining the cause of failure." + ::= { lookupCtlEntry 7 } + + + +White Standards Track [Page 68] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + lookupCtlRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object allows entries to be created and deleted + in the lookupCtlTable. + + A remote lookup operation is started when an + entry in this table is created via an SNMP SET + request and the entry is activated. This + occurs by setting the value of this object + to CreateAndGo(4) during row creation or + by setting this object to active(1) after + the row is created. + + A value MUST be specified for lookupCtlTargetAddress + prior to a transition to active(1) state being + accepted. + + A remote lookup operation starts when its entry + first becomes active(1). Transitions in and + out of active(1) state have no effect on the + operational behavior of a remote lookup + operation, with the exception that deletion of + an entry in this table by setting its RowStatus + object to destroy(6) will stop an active + remote lookup operation. + + The operational state of a remote lookup operation + can be determined by examination of its + lookupCtlOperStatus object." + REFERENCE + "See definition of RowStatus in RFC 2579, + 'Textual Conventions for SMIv2.'" + ::= { lookupCtlEntry 8 } + + +-- Lookup Results Table + + lookupResultsTable OBJECT-TYPE + SYNTAX SEQUENCE OF LookupResultsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines the Lookup Results Table for providing + the capability of determining the results of a + operation at a remote host. + + + +White Standards Track [Page 69] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + One or more entries are added to the + lookupResultsTable when a lookup operation, + as reflected by an lookupCtlEntry, completes + successfully. All entries related to a + successful lookup operation MUST be added + to the lookupResultsTable at the same time + that the associating lookupCtlOperStatus + object is transitioned to completed(2). + + The number of entries added depends on the + results determined for a particular lookup + operation. All entries associated with an + lookupCtlEntry are removed when the + lookupCtlEntry is deleted. + + A remote host can be multi-homed and have more + than one IP address associated with it + (gethostbyname results) and/or it can have more + than one symbolic name (gethostbyaddr results). + + The gethostbyaddr function is called with a + host address as its parameter and is used + primarily to determine a symbolic name to + associate with the host address. Entries in + the lookupResultsTable MUST be made for each + host name returned. The official host name MUST + be assigned a lookupResultsIndex of 1. + + The gethostbyname function is called with a + symbolic host name and is used primarily to + retrieve a host address. If possible the + primary host address SHOULD be assigned a + lookupResultsIndex of 1." + ::= { lookupObjects 4 } + + lookupResultsEntry OBJECT-TYPE + SYNTAX LookupResultsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Defines an entry in the lookupResultsTable. The + first two index elements identify the + lookupCtlEntry that a lookupResultsEntry belongs + to. The third index element selects a single + lookup operation result." + INDEX { + lookupCtlOwnerIndex, + lookupCtlOperationName, + + + +White Standards Track [Page 70] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + lookupResultsIndex + } + ::= { lookupResultsTable 1 } + + LookupResultsEntry ::= + SEQUENCE { + lookupResultsIndex Unsigned32, + lookupResultsAddressType InetAddressType, + lookupResultsAddress InetAddress + } + + lookupResultsIndex OBJECT-TYPE + SYNTAX Unsigned32 (1..'ffffffff'h) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entries in the lookupResultsTable are created when + the result of a lookup operation is determined. + + Entries MUST be stored in the lookupResultsTable in + the order that they are retrieved. Values assigned + to lookupResultsIndex MUST start at 1 and increase + in order." + ::= { lookupResultsEntry 1 } + + lookupResultsAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the type of result of a remote lookup + operation. A value of unknown(0) implies that + either the operation hasn't been started or that + it has failed." + ::= { lookupResultsEntry 2 } + + lookupResultsAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reflects a result for a remote lookup operation + as per the value of lookupResultsAddressType." + ::= { lookupResultsEntry 3 } + + + -- Conformance information + -- Compliance statements + + + +White Standards Track [Page 71] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + lookupCompliances OBJECT IDENTIFIER ::= { lookupConformance 1 } + lookupGroups OBJECT IDENTIFIER ::= { lookupConformance 2 } + + -- Compliance statements + + lookupCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for the DISMAN-NSLOOKUP-MIB." + MODULE -- this module + MANDATORY-GROUPS { + lookupGroup + } + + OBJECT lookupMaxConcurrentRequests + MIN-ACCESS read-only + DESCRIPTION + "The agent is not required to support SET + operations to this object." + + OBJECT lookupPurgeTime + MIN-ACCESS read-only + DESCRIPTION + "The agent is not required to support a SET + operation to this object." + ::= { lookupCompliances 1 } + + -- MIB groupings + + lookupGroup OBJECT-GROUP + OBJECTS { + lookupMaxConcurrentRequests, + lookupPurgeTime, + lookupCtlOperStatus, + lookupCtlTargetAddressType, + lookupCtlTargetAddress, + lookupCtlTime, + lookupCtlRc, + lookupCtlRowStatus, + lookupResultsAddressType, + lookupResultsAddress + } + STATUS current + DESCRIPTION + "The group of objects that comprise the remote + Lookup operation." + ::= { lookupGroups 1 } + + + + +White Standards Track [Page 72] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + +END + +5.0 Security Considerations + + Certain management information in the MIBs defined by this document + may be considered sensitive in some network environments. Therefore, + authentication of received SNMP requests and controlled access to + management information SHOULD be employed in such environments. The + method for this authentication is a function of the SNMP + Administrative Framework, and has not been expanded by this MIB. + + To facilitate the provisioning of access control by a security + administrator using the View-Based Access Control Model (VACM) + defined in RFC 2575 [11] for tables in which multiple users may need + to independently create or modify entries, the initial index is used + as an "owner index". Such an initial index has a syntax of + SnmpAdminString, and can thus be trivially mapped to a securityName + or groupName as defined in VACM, in accordance with a security + policy. + + All entries in related tables belonging to a particular user will + have the same value for this initial index. For a given user's + entries in a particular table, the object identifiers for the + information in these entries will have the same subidentifiers + (except for the "column" subidentifier) up to the end of the encoded + owner index. To configure VACM to permit access to this portion of + the table, one would create vacmViewTreeFamilyTable entries with the + value of vacmViewTreeFamilySubtree including the owner index portion, + and vacmViewTreeFamilyMask "wildcarding" the column subidentifier. + More elaborate configurations are possible. The VACM access control + mechanism described above provides control. + + In general, both the ping and traceroute functions when used + excessively are considered a form of system attack. In the case of + ping sending a system requests too often can negatively effect its + performance or attempting to connect to what is supposed to be an + unused port can be very unpredictable. Excessive use of the + + + + + + + + + + + + + + +White Standards Track [Page 73] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + traceroute capability can like ping negatively affect system + performance. In insecure environments it is RECOMMENDED that the + MIBs defined within this memo not be supported. + +6.0 Intellectual Property + + The IETF takes no position regarding the validity or scope of any + intellectual property or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; neither does it represent that it + has made any effort to identify any such rights. Information on the + IETF's procedures with respect to rights in standards-track and + standards-related documentation can be found in BCP-11. Copies of + claims of rights made available for publication and any assurances of + licenses to be made available, or the result of an attempt made to + obtain a general license or permission for the use of such + proprietary rights by implementers or users of this specification can + be obtained from the IETF Secretariat. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights which may cover technology that may be required to practice + this standard. Please address the information to the IETF Executive + Director. + +7.0 Acknowledgments + + This document is a product of the DISMAN Working Group. + +8.0 References + + [1] Case, J., Fedor, M., Schoffstall, M. and J. Davin, "Simple + Network Management Protocol", STD 15, RFC 1157, May 1990. + + [2] Postel, J., "Echo Protocol", STD 20, RFC 862, May 1983. + + [3] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, + M. and S. Waldbusser, "Structure of Management Information + Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. + + [4] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, + M. and S. Waldbusser, "Textual Conventions for SMIv2", STD 58, + RFC 2579, April 1999. + + [5] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, + M. and S. Waldbusser, "Conformance Statements for SMIv2", STD + 58, RFC 2580, April 1999. + + + +White Standards Track [Page 74] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + [6] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Protocol + Operations for Version 2 of the Simple Network Management + Protocol (SNMPv2)", RFC 1905, January 1996. + + [7] Harrington D., Presuhn, R. and B. Wijnen, "An Architecture for + Describing SNMP Management Frameworks", RFC 2571, April 1999. + + [8] Case, J., Harrington D., Presuhn, R. and B. Wijnen, "Message + Processing and Dispatching for the Simple Network Management + Protocol (SNMP)", RFC 2572, April 1999. + + [9] Levi D., Meyer, P. and B. Stewart, "SNMPv3 Applications", RFC + 2573, April 1999. + + [10] Blumenthal, U. and B. Wijnen, "User-based Security Model (USM) + for version 3 of the Simple Network Management Protocol + (SNMPv3)", RFC 2574, April 1999. + + [11] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based Access + Control Model (VACM) for the Simple Network Management Protocol + (SNMP)", RFC 2575, April 1999. + + [12] Hovey, R. and S. Bradner, "The Organizations Involved in the + IETF Standards Process", BCP 11, RFC 2028, October 1996. + + [13] Bradner, S., "Key words for use in RFCs to Indicate Requirement + Levels", BCP 14, RFC 2119, March 1997. + + [14] Rose, M. and K. McCloghrie, "Structure and Identification of + Management Information for TCP/IP-based Internets", RFC 1155, + May 1990. + + [15] Rose, M. and K. McCloghrie, "Concise MIB Definitions", RFC 1212, + March 1991. + + [16] Rose, M., "A Convention for Defining Traps for use with the + SNMP", RFC 1215, March 1991. + + [17] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, + "Introduction to Community-based SNMPv2", RFC 1901, January + 1996. + + [18] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Transport + Mappings for Version 2 of the Simple Network Management Protocol + (SNMPv2)", RFC 1906, January 1996. + + [19] Bradner, S., "The Internet Standards Process -- Revision 3", RFC + 2026, BCP 9, October 1996. + + + +White Standards Track [Page 75] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + + [20] Postel, J., "Internet Control Message Protocol", RFC 792, + September 1981. + + [21] Nichols, K., Blake, S., Baker, F. and D. Black, "Definition of + the Differentiated Services Field (DS Field) in the IPv4 and + IPv6 Headers", RFC 2474, December 1998. + + [22] Daniele, M., Haberman, B., Routhier, S. and J. Schoenwaelder, + "Textual Conventions for Internet Network Addresses", RFC 2851, + June 2000. + + [23] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB", + RFC 2863, June 2000. + +9.0 Author's Address + + Kenneth D. White + Dept. BRQA/Bldg. 501/G114 + IBM Corporation + P.O.Box 12195 + 3039 Cornwallis + Research Triangle Park, NC 27709, USA + + EMail: wkenneth@us.ibm.com + + + + + + + + + + + + + + + + + + + + + + + + + + + +White Standards Track [Page 76] + +RFC 2925 Ping, Traceroute, and Lookup MIBs September 2000 + + +10. Full Copyright Statement + + Copyright (C) The Internet Society (2000). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +White Standards Track [Page 77] + |