Request for Comments: 4292 Johns Hopkins University
Obsoletes: 2096 April 2006
Category: Standards Track
IP Forwarding Table MIB
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 (2006).
Abstract
This document defines a portion of the Management Information Base
(MIB) for use with network management protocols in the Internet
community. In particular, it describes managed objects related to
the forwarding of Internet Protocol (IP) packets in an IP version-
independent manner. This document obsoletes RFC 2096.
Table of Contents
1. Introduction ....................................................2
2. Conventions Used In This Document ...............................2
3. The Internet-Standard Management Framework ......................2
4. Overview ........................................................2
4.1. Relationship to Other MIBs .................................3
4.1.1. RFC 1213 ............................................3
4.1.2. RFC 1354 ............................................3
4.1.3. RFC 2096 ............................................3
4.1.4. RFC 2011 and 2465 ...................................3
5. Definitions .....................................................3
6. Security Considerations ........................................30
7. Changes from RFC 2096 ..........................................31
8. Normative References ...........................................32
9. Informative References .........................................32
10. Authors and Acknowledgements ..................................33
1. Introduction
This document defines a portion of the Management Information Base
(MIB) for use in managing objects related to the forwarding of
Internet Protocol (IP) packets in an IP version-independent manner.
It should be noted that the MIB definition described herein does not
support multiple instances based on the same address family type.
However, it does support an instance of the MIB per address family.
2. Conventions Used In This Document
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 [RFC2119].
3. The Internet-Standard Management Framework
For a detailed overview of the documents that describe the current
Internet-Standard Management Framework, please refer to section 7 of
RFC 3410 [RFC3410].
Managed objects are accessed via a virtual information store, termed
the Management Information Base or MIB. MIB objects are generally
accessed through the Simple Network Management Protocol (SNMP).
Objects in the MIB are defined using the mechanisms defined in the
Structure of Management Information (SMI). This memo specifies a MIB
module that is compliant to the SMIv2, which is described in STD 58,
RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
[RFC2580].
4. Overview
The MIB consists of one current table and two current global objects.
1. The object inetCidrRouteNumber indicates the number of current
routes. This is primarily to avoid having to read the table in
order to determine this number.
2. The object inetCidrRouteDiscards counts the number of valid
routes that were discarded from inetCidrRouteTable for any
reason. This object replaces the ipRoutingDiscards and
ipv6DiscardedRoutes objects.
3. The inetCidrRouteTable provides the ability to display IP
version-independent multipath CIDR routes.
4.1. Relationship to Other MIBs
This MIB definition contains several deprecated and obsolete tables
and objects. The following subsections describe the relationship
between these objects and other MIB modules.
4.1.1. RFC 1213
The ipRouteTable object was originally defined in RFC 1213 [RFC1213].
It was updated by ipForwardTable in RFC 1354 [RFC1354].
4.1.2. RFC 1354
The ipForwardTable object replaced the ipRouteTable object from RFC
1213. It was in turn obsoleted by the ipCidrRouteTable defined in
RFC 2096 [RFC2096].
In addition, RFC 1354 introduced ipForwardNumber. This object
reflects the number of entries found in ipForwardTable. It was
obsoleted by ipCidrRouteNumber, defined in RFC 2096.
4.1.3. RFC 2096
In RFC 2096, the ipCidrRouteTable and ipCidrRouteNumber were
introduced. The ipCidrRouteTable object supports multipath IP routes
having the same network number but differing network masks. The
number of entries in that table is reflected in ipCidrRouteNumber.
These objects are deprecated by the definitions contained in this MIB
definition.
4.1.4. RFC 2011 and 2465
RFC 2011 [RFC2011] contains the ipRoutingDiscards object, which
counts the number of valid routes that have been removed from the
ipCidrRouteTable object. The corresponding ipv6DiscardedRoutes
object is defined in RFC 2465 [RFC2465]. These objects are
deprecated in favor of the version-independent object
inetCidrRouteDiscards defined in this MIB.
5. Definitions
IP-FORWARD-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE,
IpAddress, Integer32, Gauge32,
Counter32 FROM SNMPv2-SMI
RowStatus FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
InterfaceIndexOrZero FROM IF-MIB
ip FROM IP-MIB
IANAipRouteProtocol FROM IANA-RTPROTO-MIB
InetAddress, InetAddressType,
InetAddressPrefixLength,
InetAutonomousSystemNumber FROM INET-ADDRESS-MIB;
ipForward MODULE-IDENTITY
LAST-UPDATED "200602010000Z"
ORGANIZATION
"IETF IPv6 Working Group
http://www.ietf.org/html.charters/ipv6-charter.html"
CONTACT-INFO
"Editor:
Brian Haberman
Johns Hopkins University - Applied Physics Laboratory
Mailstop 17-S442
11100 Johns Hopkins Road
Laurel MD, 20723-6099 USA
Phone: +1-443-778-1319
Email: brian@innovationslab.net
Send comments to <ipv6@ietf.org>"
DESCRIPTION
"The MIB module for the management of CIDR multipath IP
Routes.
Copyright (C) The Internet Society (2006). This version
of this MIB module is a part of RFC 4292; see the RFC
itself for full legal notices."
REVISION "200602010000Z"
DESCRIPTION
"IPv4/v6 version-independent revision. Minimal changes
were made to the original RFC 2096 MIB to allow easy
upgrade of existing IPv4 implementations to the
version-independent MIB. These changes include:
Adding inetCidrRouteDiscards as a replacement for the
deprecated ipRoutingDiscards and ipv6DiscardedRoutes
objects.
Adding a new conformance statement to support the
implementation of the IP Forwarding MIB in a
read-only mode.
The inetCidrRouteTable replaces the IPv4-specific
ipCidrRouteTable, its related objects, and related
conformance statements.
Published as RFC 4292."
REVISION "199609190000Z"
DESCRIPTION
"Revised to support CIDR routes.
Published as RFC 2096."
REVISION "199207022156Z"
DESCRIPTION
"Initial version, published as RFC 1354."
::= { ip 24 }
inetCidrRouteNumber OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of current inetCidrRouteTable entries that
are not invalid."
::= { ipForward 6 }
inetCidrRouteDiscards OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of valid route entries discarded from the
inetCidrRouteTable. Discarded route entries do not
appear in the inetCidrRouteTable. One possible reason
for discarding an entry would be to free-up buffer space
for other route table entries."
::= { ipForward 8 }
-- Inet CIDR Route Table
-- The Inet CIDR Route Table deprecates and replaces the
-- ipCidrRoute Table currently in the IP Forwarding Table MIB.
-- It adds IP protocol independence.
inetCidrRouteTable OBJECT-TYPE
SYNTAX SEQUENCE OF InetCidrRouteEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This entity’s IP Routing table."
REFERENCE
"RFC 1213 Section 6.6, The IP Group"
::= { ipForward 7 }
inetCidrRouteEntry OBJECT-TYPE
SYNTAX InetCidrRouteEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A particular route to a particular destination, under a
particular policy (as reflected in the
inetCidrRoutePolicy object).
Dynamically created rows will survive an agent reboot.
Implementers need to be aware that if the total number
of elements (octets or sub-identifiers) in
inetCidrRouteDest, inetCidrRoutePolicy, and
inetCidrRouteNextHop exceeds 111, then OIDs of column
instances in this table will have more than 128 sub-
identifiers and cannot be accessed using SNMPv1,
SNMPv2c, or SNMPv3."
INDEX {
inetCidrRouteDestType,
inetCidrRouteDest,
inetCidrRoutePfxLen,
inetCidrRoutePolicy,
inetCidrRouteNextHopType,
inetCidrRouteNextHop
}
::= { inetCidrRouteTable 1 }
InetCidrRouteEntry ::= SEQUENCE {
inetCidrRouteDestType InetAddressType,
inetCidrRouteDest InetAddress,
inetCidrRoutePfxLen InetAddressPrefixLength,
inetCidrRoutePolicy OBJECT IDENTIFIER,
inetCidrRouteNextHopType InetAddressType,
inetCidrRouteNextHop InetAddress,
inetCidrRouteIfIndex InterfaceIndexOrZero,
inetCidrRouteType INTEGER,
inetCidrRouteProto IANAipRouteProtocol,
inetCidrRouteAge Gauge32,
inetCidrRouteNextHopAS InetAutonomousSystemNumber,
inetCidrRouteMetric1 Integer32,
inetCidrRouteMetric2 Integer32,
inetCidrRouteMetric3 Integer32,
inetCidrRouteMetric4 Integer32,
inetCidrRouteMetric5 Integer32,
inetCidrRouteStatus RowStatus
}
inetCidrRouteDestType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The type of the inetCidrRouteDest address, as defined
in the InetAddress MIB.
Only those address types that may appear in an actual
routing table are allowed as values of this object."
REFERENCE "RFC 4001"
::= { inetCidrRouteEntry 1 }
inetCidrRouteDest OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The destination IP address of this route.
The type of this address is determined by the value of
the inetCidrRouteDestType object.
The values for the index objects inetCidrRouteDest and
inetCidrRoutePfxLen must be consistent. When the value
of inetCidrRouteDest (excluding the zone index, if one
is present) is x, then the bitwise logical-AND
of x with the value of the mask formed from the
corresponding index object inetCidrRoutePfxLen MUST be
equal to x. If not, then the index pair is not
consistent and an inconsistentName error must be
returned on SET or CREATE requests."
::= { inetCidrRouteEntry 2 }
inetCidrRoutePfxLen OBJECT-TYPE
SYNTAX InetAddressPrefixLength
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Indicates the number of leading one bits that form the
mask to be logical-ANDed with the destination address
before being compared to the value in the
inetCidrRouteDest field.
The values for the index objects inetCidrRouteDest and
inetCidrRoutePfxLen must be consistent. When the value
of inetCidrRouteDest (excluding the zone index, if one
is present) is x, then the bitwise logical-AND
of x with the value of the mask formed from the
corresponding index object inetCidrRoutePfxLen MUST be
equal to x. If not, then the index pair is not
consistent and an inconsistentName error must be
returned on SET or CREATE requests."
::= { inetCidrRouteEntry 3 }
inetCidrRoutePolicy OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This object is an opaque object without any defined
semantics. Its purpose is to serve as an additional
index that may delineate between multiple entries to
the same destination. The value { 0 0 } shall be used
as the default value for this object."
::= { inetCidrRouteEntry 4 }
inetCidrRouteNextHopType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The type of the inetCidrRouteNextHop address, as
defined in the InetAddress MIB.
Value should be set to unknown(0) for non-remote
routes.
Only those address types that may appear in an actual
routing table are allowed as values of this object."
REFERENCE "RFC 4001"
::= { inetCidrRouteEntry 5 }
inetCidrRouteNextHop OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"On remote routes, the address of the next system en
route. For non-remote routes, a zero length string.
The type of this address is determined by the value of
the inetCidrRouteNextHopType object."
::= { inetCidrRouteEntry 6 }
inetCidrRouteIfIndex OBJECT-TYPE
SYNTAX InterfaceIndexOrZero
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The ifIndex value that identifies the local interface
through which the next hop of this route should be
reached. A value of 0 is valid and represents the
scenario where no interface is specified."
::= { inetCidrRouteEntry 7 }
inetCidrRouteType OBJECT-TYPE
SYNTAX INTEGER {
other (1), -- not specified by this MIB
reject (2), -- route that discards traffic and
-- returns ICMP notification
local (3), -- local interface
remote (4), -- remote destination
blackhole(5) -- route that discards traffic
-- silently
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The type of route. Note that local(3) refers to a
route for which the next hop is the final destination;
remote(4) refers to a route for which the next hop is
not the final destination.
Routes that do not result in traffic forwarding or
rejection should not be displayed, even if the
implementation keeps them stored internally.
reject(2) refers to a route that, if matched, discards
the message as unreachable and returns a notification
(e.g., ICMP error) to the message sender. This is used
in some protocols as a means of correctly aggregating
routes.
blackhole(5) refers to a route that, if matched,
discards the message silently."
::= { inetCidrRouteEntry 8 }
inetCidrRouteProto OBJECT-TYPE
SYNTAX IANAipRouteProtocol
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The routing mechanism via which this route was learned.
Inclusion of values for gateway routing protocols is
not intended to imply that hosts should support those
protocols."
::= { inetCidrRouteEntry 9 }
inetCidrRouteAge OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of seconds since this route was last updated
or otherwise determined to be correct. Note that no
semantics of ’too old’ can be implied, except through
knowledge of the routing protocol by which the route
was learned."
::= { inetCidrRouteEntry 10 }
inetCidrRouteNextHopAS OBJECT-TYPE
SYNTAX InetAutonomousSystemNumber
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The Autonomous System Number of the Next Hop. The
semantics of this object are determined by the routing-
protocol specified in the route’s inetCidrRouteProto
value. When this object is unknown or not relevant, its
value should be set to zero."
DEFVAL { 0 }
::= { inetCidrRouteEntry 11 }
inetCidrRouteMetric1 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The primary routing metric for this route. The
semantics of this metric are determined by the routing-
protocol specified in the route’s inetCidrRouteProto
value. If this metric is not used, its value should be
set to -1."
DEFVAL { -1 }
::= { inetCidrRouteEntry 12 }
inetCidrRouteMetric2 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"An alternate routing metric for this route. The
semantics of this metric are determined by the routing-
protocol specified in the route’s inetCidrRouteProto
value. If this metric is not used, its value should be