RIPv2 MIB: RIP Version 2 MIB Extension
The SNMP objects that let a manager see and steer a router's RIP-2 interfaces, and watch its neighbours.
Malkin, G. and F. Baker, "RIP Version 2 MIB Extension", RFC 1724, DOI 10.17487/RFC1724, November 1994, <https://www.rfc-editor.org/info/rfc1724>.
@misc{rfc1724,
series = {Request for Comments},
number = 1724,
howpublished = {RFC 1724},
publisher = {RFC Editor},
doi = {10.17487/RFC1724},
url = {https://www.rfc-editor.org/info/rfc1724},
author = {G. Malkin and F. Baker},
title = {{RIP Version 2 MIB Extension}},
pagetotal = 18,
year = 1994,
month = nov,
} RFC text
Contents
Network Working Group G. Malkin
Request for Comments: 1724 Xylogics, Inc.
Obsoletes: 1389 F. Baker
Category: Standards Track Cisco Systems
November 1994
RIP Version 2 MIB Extension
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.
Abstract
This memo defines a portion of the Management Information Base (MIB)
for use with network management protocols in TCP/IP-based internets.
In particular, it defines objects for managing RIP Version 2.
Acknowledgements
The authors would like to thank the IETF ripv2 Working Group for
their help in improving the RIP-2 MIB extension.
Table of Contents
1. The Network Management Framework ...................... 2
2. Objects ............................................... 2
2.1 Format of Definitions ................................ 3
3. Overview .............................................. 3
3.1 Textual Conventions .................................. 3
3.2 Structure of MIB ..................................... 3
3.3 Modifications from RFC 1389 .......................... 3
4. Definitions ........................................... 5
4.1 Global Counters ...................................... 6
4.2 RIP Interface Tables ................................. 6
4.3 Peer Table ........................................... 12
5. References ............................................ 17
6. Security Considerations ............................... 18
7. Authors' Addresses .................................... 18
1. The Network Management Framework
The Internet-standard Network Management Framework consists of three
components. They are:
STD 16/RFC 1155 which defines the SMI, the mechanisms used for
describing and naming objects for the purpose of management.
STD 16/RFC 1212 defines a more concise description mechanism,
which is wholly consistent with the SMI.
RFC 1156 which defines MIB-I, the core set of managed objects for
the Internet suite of protocols. STD 17/RFC 1213 defines MIB-
II, an evolution of MIB-I based on implementation experience
and new operational requirements.
STD 15/RFC 1157 which defines the SNMP, the protocol used for
network access to managed objects.
The Framework permits new objects to be defined for the purpose of
experimentation and evaluation.
2. Objects
Managed objects are accessed via a virtual information store, termed
the Management Information Base or MIB. Objects in the MIB are
defined using the subset of Abstract Syntax Notation One (ASN.1) [7]
defined in the SMI. In particular, each object has a name, a syntax,
and an encoding. The name is an object identifier, an
administratively assigned name, which specifies an object type. The
object type together with an object instance serves to uniquely
identify a specific instantiation of the object. For human
convenience, we often use a textual string, termed the OBJECT
DESCRIPTOR, to also refer to the object type.
The syntax of an object type defines the abstract data structure
corresponding to that object type. The ASN.1 language is used for
this purpose. However, the SMI [3] purposely restricts the ASN.1
constructs which may be used. These restrictions are explicitly made
for simplicity.
The encoding of an object type is simply how that object type is
represented using the object type's syntax. Implicitly tied to the
notion of an object type's syntax and encoding is how the object type
is represented when being transmitted on the network.
The SMI specifies the use of the basic encoding rules of ASN.1 [8],
subject to the additional requirements imposed by the SNMP.
2.1 Format of Definitions
Section 4 contains the specification of all object types contained in
this MIB module. The object types are defined using the conventions
defined in the SMI, as amended by the extensions specified in [9].
3. Overview
3.1 Textual Conventions
Several new data types are introduced as a textual convention in this
MIB document. These textual conventions enhance the readability of
the specification and can ease comparison with other specifications
if appropriate. It should be noted that the introduction of the
these textual conventions has no effect on either the syntax nor the
semantics of any managed objects. The use of these is merely an
artifact of the explanatory method used. Objects defined in terms of
one of these methods are always encoded by means of the rules that
define the primitive type. Hence, no changes to the SMI or the SNMP
are necessary to accommodate these textual conventions which are
adopted merely for the convenience of readers and writers in pursuit
of the elusive goal of clear, concise, and unambiguous MIB documents.
The new data type is RouteTag. The RouteTag type represents the
contents of the Route Domain field in the packet header or route
entry.
3.2 Structure of MIB
The RIP-2 MIB contains global counters, useful for detecting the
deleterious effects of RIP incompatibilities; two "interfaces"
tables, which contains interface-specific statistics and
configuration information; and an optional "peer" table, containing
information that may be helpful in debugging neighbor relationships.
Like the protocol itself, this MIB takes great care to preserve
compatibility with RIP-1 systems and controls for monitoring and
controlling system interactions.
3.3 Modifications from RFC 1389
The RIP-2 MIB was originally published in RFC 1389. It encoded the
concept of a Routing Domain, and did not address unnumbered
interfaces.
In the current version of the protocol, Route Domains are deprecated;
therefore, they are deprecated in the MIB as well. This means that
the object rip2IfConfDomain is deprecated, and the object
rip2PeerDomain (which cannot be deprecated, being an instance object)
must always be zero.
Unnumbered interfaces are supported in this version. Since the IP
Address that the neighbor uses may be unknown to the system, a
pseudo-address is used to identify these interfaces. The pseudo-
address is in the class A network 0.0.0.0, and the host number (the
least significant 24 bits of the address) are the ifIndex value of
the relevant IP Interface. This is an additional new meaning of the
objects rip2IfStatAddress and rip2IfConfAddress, backward compatible
with the RFC 1389 usage. The object rip2IfConfSrcAddress is added,
to permit the configuration of the source address on an unnumbered
interface, and the meaning of the object rip2PeerAddress is broadened
to remain relevant on unnumbered interfaces.
rip2IfConfSend is augmented with two values for the use of Demand RIP
under RIP-I and RIP-II rules. This avoids the necessity of a Demand
RIP MIB.
MD5 Authentication is supported.
4. Definitions
RIPv2-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Counter32,
TimeTicks, IpAddress FROM SNMPv2-SMI
TEXTUAL-CONVENTION, RowStatus FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
mib-2 FROM RFC1213-MIB;
-- This MIB module uses the extended OBJECT-TYPE macro as
-- defined in [9].
rip2 MODULE-IDENTITY
LAST-UPDATED "9407272253Z" -- Wed Jul 27 22:53:04 PDT 1994
ORGANIZATION "IETF RIP-II Working Group"
CONTACT-INFO
" Fred Baker
Postal: Cisco Systems
519 Lado Drive
Santa Barbara, California 93111
Tel: +1 805 681 0115
E-Mail: fbaker@cisco.com
Postal: Gary Malkin
Xylogics, Inc.
53 Third Avenue
Burlington, MA 01803
Phone: (617) 272-8140
EMail: gmalkin@Xylogics.COM"
DESCRIPTION
"The MIB module to describe the RIP2 Version 2 Protocol"
::= { mib-2 23 }
-- RIP-2 Management Information Base
-- the RouteTag type represents the contents of the
-- Route Domain field in the packet header or route entry.
-- The use of the Route Domain is deprecated.
RouteTag ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"the RouteTag type represents the contents of the Route Domain
field in the packet header or route entry"
SYNTAX OCTET STRING (SIZE (2))
--4.1 Global Counters
-- The RIP-2 Globals Group.
-- Implementation of this group is mandatory for systems
-- which implement RIP-2.
-- These counters are intended to facilitate debugging quickly
-- changing routes or failing neighbors
rip2Globals OBJECT IDENTIFIER ::= { rip2 1 }
rip2GlobalRouteChanges OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of route changes made to the IP Route
Database by RIP. This does not include the refresh
of a route's age."
::= { rip2Globals 1 }
rip2GlobalQueries OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of responses sent to RIP queries
from other systems."
::= { rip2Globals 2 }
--4.2 RIP Interface Tables
-- RIP Interfaces Groups
-- Implementation of these Groups is mandatory for systems
-- which implement RIP-2.
-- The RIP Interface Status Table.
rip2IfStatTable OBJECT-TYPE
SYNTAX SEQUENCE OF Rip2IfStatEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of subnets which require separate
status monitoring in RIP."
::= { rip2 2 }
rip2IfStatEntry OBJECT-TYPE
SYNTAX Rip2IfStatEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A Single Routing Domain in a single Subnet."
INDEX { rip2IfStatAddress }
::= { rip2IfStatTable 1 }
Rip2IfStatEntry ::=
SEQUENCE {
rip2IfStatAddress
IpAddress,
rip2IfStatRcvBadPackets
Counter32,
rip2IfStatRcvBadRoutes
Counter32,
rip2IfStatSentUpdates
Counter32,
rip2IfStatStatus
RowStatus
}
rip2IfStatAddress OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The IP Address of this system on the indicated
subnet. For unnumbered interfaces, the value 0.0.0.N,
where the least significant 24 bits (N) is the ifIndex
for the IP Interface in network byte order."
::= { rip2IfStatEntry 1 }
rip2IfStatRcvBadPackets OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RIP response packets received by
the RIP process which were subsequently discarded
for any reason (e.g. a version 0 packet, or an
unknown command type)."
::= { rip2IfStatEntry 2 }
rip2IfStatRcvBadRoutes OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of routes, in valid RIP packets,
which were ignored for any reason (e.g. unknown
address family, or invalid metric)."
::= { rip2IfStatEntry 3 }
rip2IfStatSentUpdates OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of triggered RIP updates actually
sent on this interface. This explicitly does
NOT include full updates sent containing new
information."
::= { rip2IfStatEntry 4 }
rip2IfStatStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Writing invalid has the effect of deleting
this interface."
::= { rip2IfStatEntry 5 }
-- The RIP Interface Configuration Table.
rip2IfConfTable OBJECT-TYPE
SYNTAX SEQUENCE OF Rip2IfConfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of subnets which require separate
configuration in RIP."
::= { rip2 3 }
rip2IfConfEntry OBJECT-TYPE
SYNTAX Rip2IfConfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A Single Routing Domain in a single Subnet."
INDEX { rip2IfConfAddress }
::= { rip2IfConfTable 1 }
Rip2IfConfEntry ::=
SEQUENCE {
rip2IfConfAddress
IpAddress,
rip2IfConfDomain
RouteTag,
rip2IfConfAuthType
INTEGER,
rip2IfConfAuthKey
OCTET STRING (SIZE(0..16)),
rip2IfConfSend
INTEGER,
rip2IfConfReceive
INTEGER,
rip2IfConfDefaultMetric
INTEGER,
rip2IfConfStatus
RowStatus,
rip2IfConfSrcAddress
IpAddress
}
rip2IfConfAddress OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The IP Address of this system on the indicated
subnet. For unnumbered interfaces, the value 0.0.0.N,
where the least significant 24 bits (N) is the ifIndex
for the IP Interface in network byte order."
::= { rip2IfConfEntry 1 }
rip2IfConfDomain OBJECT-TYPE
SYNTAX RouteTag
MAX-ACCESS read-create
STATUS obsolete
DESCRIPTION
"Value inserted into the Routing Domain field
of all RIP packets sent on this interface."
DEFVAL { '0000'h }
::= { rip2IfConfEntry 2 }
rip2IfConfAuthType OBJECT-TYPE
SYNTAX INTEGER {
noAuthentication (1),
simplePassword (2),
md5 (3)
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The type of Authentication used on this
interface."
DEFVAL { noAuthentication }
::= { rip2IfConfEntry 3 }
rip2IfConfAuthKey OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(0..16))
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The value to be used as the Authentication Key
whenever the corresponding instance of
rip2IfConfAuthType has a value other than
noAuthentication. A modification of the corresponding
instance of rip2IfConfAuthType does not modify
the rip2IfConfAuthKey value. If a string shorter
than 16 octets is supplied, it will be left-
justified and padded to 16 octets, on the right,
with nulls (0x00).
Reading this object always results in an OCTET
STRING of length zero; authentication may not
be bypassed by reading the MIB object."
DEFVAL { ''h }
::= { rip2IfConfEntry 4 }
rip2IfConfSend OBJECT-TYPE
SYNTAX INTEGER {
doNotSend (1),
ripVersion1 (2),
rip1Compatible (3),
ripVersion2 (4),
ripV1Demand (5),
ripV2Demand (6)
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"What the router sends on this interface.
ripVersion1 implies sending RIP updates compliant
with RFC 1058. rip1Compatible implies
broadcasting RIP-2 updates using RFC 1058 route
subsumption rules. ripVersion2 implies
multicasting RIP-2 updates. ripV1Demand indicates
the use of Demand RIP on a WAN interface under RIP
Version 1 rules. ripV2Demand indicates the use of
Demand RIP on a WAN interface under Version 2 rules."
DEFVAL { rip1Compatible }
::= { rip2IfConfEntry 5 }
rip2IfConfReceive OBJECT-TYPE
SYNTAX INTEGER {
rip1 (1),
rip2 (2),
rip1OrRip2 (3),
doNotRecieve (4)
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This indicates which version of RIP updates
are to be accepted. Note that rip2 and
rip1OrRip2 implies reception of multicast
packets."
DEFVAL { rip1OrRip2 }
::= { rip2IfConfEntry 6 }
rip2IfConfDefaultMetric OBJECT-TYPE
SYNTAX INTEGER ( 0..15 )
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This variable indicates the metric that is to
be used for the default route entry in RIP updates
originated on this interface. A value of zero
indicates that no default route should be
originated; in this case, a default route via
another router may be propagated."
::= { rip2IfConfEntry 7 }
rip2IfConfStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Writing invalid has the effect of deleting
this interface."
::= { rip2IfConfEntry 8 }
rip2IfConfSrcAddress OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The IP Address this system will use as a source
address on this interface. If it is a numbered
interface, this MUST be the same value as
rip2IfConfAddress. On unnumbered interfaces,
it must be the value of rip2IfConfAddress for
some interface on the system."
::= { rip2IfConfEntry 9 }
--4.3 Peer Table
-- Peer Table
-- The RIP Peer Group
-- Implementation of this Group is Optional
-- This group provides information about active peer
-- relationships intended to assist in debugging. An
-- active peer is a router from which a valid RIP
-- updated has been heard in the last 180 seconds.
rip2PeerTable OBJECT-TYPE
SYNTAX SEQUENCE OF Rip2PeerEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of RIP Peers."
::= { rip2 4 }
rip2PeerEntry OBJECT-TYPE
SYNTAX Rip2PeerEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information regarding a single routing peer."
INDEX { rip2PeerAddress, rip2PeerDomain }
::= { rip2PeerTable 1 }
Rip2PeerEntry ::=
SEQUENCE {
rip2PeerAddress
IpAddress,
rip2PeerDomain
RouteTag,
rip2PeerLastUpdate
TimeTicks,
rip2PeerVersion
INTEGER,
rip2PeerRcvBadPackets
Counter32,
rip2PeerRcvBadRoutes
Counter32
}
rip2PeerAddress OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The IP Address that the peer is using as its source
address. Note that on an unnumbered link, this may
not be a member of any subnet on the system."
::= { rip2PeerEntry 1 }
rip2PeerDomain OBJECT-TYPE
SYNTAX RouteTag
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value in the Routing Domain field in RIP
packets received from the peer. As domain suuport
is deprecated, this must be zero."
::= { rip2PeerEntry 2 }
rip2PeerLastUpdate OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of sysUpTime when the most recent
RIP update was received from this system."
::= { rip2PeerEntry 3 }
rip2PeerVersion OBJECT-TYPE
SYNTAX INTEGER ( 0..255 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The RIP version number in the header of the
last RIP packet received."
::= { rip2PeerEntry 4 }
rip2PeerRcvBadPackets OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RIP response packets from this
peer discarded as invalid."
::= { rip2PeerEntry 5 }
rip2PeerRcvBadRoutes OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of routes from this peer that were
ignored because the entry format was invalid."
::= { rip2PeerEntry 6 }
-- conformance information
rip2Conformance OBJECT IDENTIFIER ::= { rip2 5 }
rip2Groups OBJECT IDENTIFIER ::= { rip2Conformance 1 }
rip2Compliances OBJECT IDENTIFIER ::= { rip2Conformance 2 }
-- compliance statements
rip2Compliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement "
MODULE -- this module
MANDATORY-GROUPS {
rip2GlobalGroup,
rip2IfStatGroup,
rip2IfConfGroup,
rip2PeerGroup
}
GROUP rip2GlobalGroup
DESCRIPTION
"This group defines global controls for RIP-II systems."
GROUP rip2IfStatGroup
DESCRIPTION
"This group defines interface statistics for RIP-II systems."
GROUP rip2IfConfGroup
DESCRIPTION
"This group defines interface configuration for RIP-II systems."
GROUP rip2PeerGroup
DESCRIPTION
"This group defines peer information for RIP-II systems."
::= { rip2Compliances 1 }
-- units of conformance
rip2GlobalGroup OBJECT-GROUP
OBJECTS {
rip2GlobalRouteChanges,
rip2GlobalQueries
}
STATUS current
DESCRIPTION
"This group defines global controls for RIP-II systems."
::= { rip2Groups 1 }
rip2IfStatGroup OBJECT-GROUP
OBJECTS {
rip2IfStatAddress,
rip2IfStatRcvBadPackets,
rip2IfStatRcvBadRoutes,
rip2IfStatSentUpdates,
rip2IfStatStatus
}
STATUS current
DESCRIPTION
"This group defines interface statistics for RIP-II systems."
::= { rip2Groups 2 }
rip2IfConfGroup OBJECT-GROUP
OBJECTS {
rip2IfConfAddress,
rip2IfConfAuthType,
rip2IfConfAuthKey,
rip2IfConfSend,
rip2IfConfReceive,
rip2IfConfDefaultMetric,
rip2IfConfStatus,
rip2IfConfSrcAddress
}
STATUS current
DESCRIPTION
"This group defines interface configuration for RIP-II systems."
::= { rip2Groups 3 }
rip2PeerGroup OBJECT-GROUP
OBJECTS {
rip2PeerAddress,
rip2PeerDomain,
rip2PeerLastUpdate,
rip2PeerVersion,
rip2PeerRcvBadPackets,
rip2PeerRcvBadRoutes
}
STATUS current
DESCRIPTION
"This group defines peer information for RIP-II systems."
::= { rip2Groups 4 }
END
5. References
[1] Cerf, V., "IAB Recommendations for the Development of Internet
Network Management Standards", RFC 1052, IAB, April 1988.
[2] Cerf, V., "Report of the Second Ad Hoc Network Management Review
Group", RFC 1109, IAB, August 1989.
[3] Rose M., and K. McCloghrie, "Structure and Identification of
Management Information for TCP/IP-based internets", STD 16, RFC
1155, Performance Systems International, Hughes LAN Systems, May
1990.
[4] McCloghrie K., and M. Rose, "Management Information Base for
Network Management of TCP/IP-based internets", RFC 1156, Hughes
LAN Systems, Performance Systems International, May 1990.
[5] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple
Network Management Protocol", STD 15, RFC 1157, SNMP Research,
Performance Systems International, Performance Systems
International, MIT Laboratory for Computer Science, May 1990.
[6] Rose, M., Editor, "Management Information Base for Network
Management of TCP/IP-based internets: MIB-II", RFC 1158,
Performance Systems International, May 1990.
[7] Information processing systems - Open Systems Interconnection -
Specification of Abstract Syntax Notation One (ASN.1),
International Organization for Standardization, International
Standard 8824, December 1987.
[8] Information processing systems - Open Systems Interconnection -
Specification of Basic Encoding Rules for Abstract Notation One
(ASN.1), International Organization for Standardization,
International Standard 8825, December 1987.
[9] Rose, M., and K. McCloghrie, Editors, "Concise MIB Definitions",
STD 16, RFC 1212, Performance Systems International, Hughes LAN
Systems, March 1991.
[10] Malkin, G., "RIP Version 2 - Carrying Additional Information",
RFC 1723, Xylogics, Inc., November 1994.
[11] Malkin, G., "RIP Version 2 Protocol Analysis", RFC 1721,
Xylogics, Inc., November 1994.
[12] Malkin, G., "RIP Version 2 Protocol Applicability Statement", RFC
1722, Xylogics, Inc., November 1994.
6. Security Considerations
Security issues are not discussed in this memo.
7. Authors' Addresses
Gary Malkin
Xylogics, Inc.
53 Third Avenue
Burlington, MA 01803
Phone: (617) 272-8140
EMail: gmalkin@Xylogics.COM
Fred Baker
Cisco Systems
519 Lado Drive
Santa Barbara, California 93111
Phone: 805-681-0115
EMail: fred@cisco.com
ISO Plain Language
On this page
§1The Network Management Framework
The Internet-standard Network Management Framework has three components. The SMI, in STD 16, defines the mechanisms used for describing and naming objects for the purpose of management. STD 16 defines a more concise description mechanism that is wholly consistent with the SMI. RFC 1156 defines MIB-I, the core set of managed objects for the Internet suite of protocols, and STD 17 defines MIB-II, an evolution of MIB-I based on implementation experience and new operational requirements. The SNMP, in STD 15, is the protocol used for network access to managed objects. The framework permits new objects to be defined for the purpose of experimentation and evaluation.
Managed objects are accessed through a virtual information store, the Management Information Base, and are defined using the subset of ASN.1 defined in the SMI. Each object has a name, a syntax and an encoding. The name is an object identifier, an administratively assigned name that specifies an object type; the object type together with an object instance identifies one instantiation of the object. For human convenience a textual string, the OBJECT DESCRIPTOR, is often used as well. The syntax defines the abstract data structure for the object type, and the encoding is how that structure is represented, which is also how it is transmitted on the network. The SMI restricts the ASN.1 constructs that may be used, explicitly for simplicity.
Section 4 of the document contains the specification of all the object types, written with the conventions of the SMI as amended by an earlier extension. The module introduces one new data type as a textual convention, RouteTag, which represents the contents of the route domain field in the packet header or route entry. The textual conventions are an artifact of the explanatory method used: they change neither the syntax nor the semantics of any managed object, and an object defined in terms of one is still encoded by the rules that define the primitive type.
SNMP is the protocol a manager uses to read and change values on a device, and the MIB is the catalogue that names those values. Each object has a name, a type and a way of encoding it. This document adds a catalogue for RIP: counters, per-interface statistics, per-interface configuration and neighbours.
§3.2Structure of the RIP-2 MIB
The RIP-2 MIB contains global counters, which are useful for detecting the deleterious effects of RIP incompatibilities; two interface tables, which hold interface-specific statistics and configuration information; and an optional peer table, containing information that may help in debugging neighbour relationships. Like the protocol itself, the MIB takes great care to preserve compatibility with RIP-1 systems and to control the monitoring and controlling of system interactions.
The global group holds two counters, the number of route changes made to the IP route database by RIP, which does not include the ageing of a route, and the number of responses sent to RIP queries from other systems. Implementing this group is mandatory for systems that implement RIP-2. The counters are meant to help when routes are changing quickly or when a neighbour is failing.
The module has four parts. Two global counters say how much RIP is doing. Two interface tables, one for statistics and one for configuration, say what RIP is doing on each interface. An optional peer table lists the neighbouring routers that have been heard from, which is mostly useful when something is going wrong.
- mib-2
- rip2, at { mib-2 23 }
- rip2Globals, at { rip2 1 }
- rip2IfStatTable, at { rip2 2 }
- rip2IfConfTable, at { rip2 3 }
- rip2PeerTable, at { rip2 4 }
- rip2Conformance, at { rip2 5 }
- rip2, at { mib-2 23 }
- rip2GlobalsRoute changes made by RIP and the number of responses sent to RIP queries.
- rip2IfStatTablePer-interface counters: bad packets received, bad routes ignored and triggered updates sent.
- rip2IfConfTablePer-interface configuration: version sent and accepted, authentication, default metric and source address.
- rip2PeerTableOptional. The neighbours, the last update from each, and the RIP version they speak.
§3.3What Changed from RFC 1389
The RIP-2 MIB was originally published in RFC 1389. It encoded the concept of a routing domain and did not address unnumbered interfaces. In the current version of the protocol, route domains are deprecated, and so they are deprecated in the MIB as well: the object rip2IfConfDomain is deprecated, and the object rip2PeerDomain, which cannot be deprecated because it is an instance object, must always be zero.
Unnumbered interfaces are supported in this version. Because the IP address that the neighbour uses may be unknown to the system, a pseudo-address identifies these interfaces: the pseudo-address is in the class A network 0.0.0.0, and the host number, the least significant 24 bits of the address, is the ifIndex value of the relevant IP interface. This is an additional new meaning for the objects rip2IfStatAddress and rip2IfConfAddress, and it is backward compatible with the RFC 1389 usage.
The object rip2IfConfSrcAddress is added, so that the source address on an unnumbered interface can be configured, and the meaning of rip2PeerAddress is broadened so that it stays relevant on unnumbered interfaces. The object rip2IfConfSend is augmented with two values for the use of Demand RIP under RIP-I and RIP-II rules, which avoids the necessity of a separate Demand RIP MIB. MD5 authentication is supported.
The earlier version of this MIB was tied to an idea the protocol has since dropped, the routing domain, so those objects are now deprecated and always zero. The new version handles interfaces that have no address of their own by using a made-up address whose last part is the interface number, and it adds a way to set the source address on such an interface, plus the two settings for Demand RIP.
§4The Objects: Counters, Interfaces and Peers
The statistics table holds one row per interface that runs RIP, indexed by the interface address. Its counters are the number of RIP response packets received and then discarded for any reason, such as a version 0 packet or an unknown command type; the number of routes in otherwise valid RIP packets that were ignored, for example because of an unknown address family or an invalid metric; and the number of triggered RIP updates actually sent on the interface, which explicitly does not include full updates sent with new information. The row status object is read-create, and writing invalid to it deletes the interface.
The configuration table holds one row per subnet that needs separate RIP configuration, and it is where a manager steers the protocol. rip2IfConfAuthType chooses the authentication used on the interface: no authentication, a simple password or MD5. rip2IfConfAuthKey holds the key itself, up to 16 octets; a shorter value is left-justified and padded on the right with nulls, and reading the object always returns a zero-length string, so that authentication cannot be bypassed by reading the key out of the MIB. rip2IfConfSend says what the router sends on the interface: nothing, RIP-1 updates compliant with RFC 1058, RIP-2 updates broadcast using the RFC 1058 route subsumption rules, RIP-2 updates multicast, or Demand RIP on a WAN interface under version 1 or version 2 rules. rip2IfConfReceive says which versions are accepted. rip2IfConfDefaultMetric is the metric used for the default route advertised on the interface, and a value of zero means no default route is originated. rip2IfConfSrcAddress is the source address the system uses on the interface, which on a numbered interface must be the same as the interface address, and on an unnumbered interface must be the address of some interface on the system.
The optional peer table holds one row per routing peer, indexed by the peer address and the peer domain. It reports the source address the peer is using, the value of the routing domain field in the packets received from it, which must now be zero, the value of sysUpTime when the most recent RIP update was received from that peer, the RIP version number in the header of the last packet received, and the number of response packets from that peer discarded as invalid. An active peer is a router from which a valid RIP update has been heard in the last 180 seconds. The module's conformance statement lists the global, interface statistics, interface configuration and peer groups as mandatory groups, even though the peer group is described as optional to implement.
The statistics table counts the bad packets and the triggered updates per interface. The configuration table is where the manager decides what each interface sends and accepts, which authentication it uses and what metric it advertises by default. The peer table records the neighbours, when each was last heard from and which RIP version they speak. The authentication key can be set but never read back, so a manager cannot learn it by asking.
- 1rip2IfConfSend — doNotSend: send nothing on this interface.
- 2rip2IfConfSend — ripVersion1: send RIP updates compliant with RFC 1058.
- 3rip2IfConfSend — rip1Compatible: broadcast RIP-2 updates using RFC 1058 route subsumption rules.
- 4rip2IfConfSend — ripVersion2: multicast RIP-2 updates.
- 5rip2IfConfSend — ripV1Demand: use Demand RIP on a WAN interface under version 1 rules.
- 6rip2IfConfSend — ripV2Demand: use Demand RIP on a WAN interface under version 2 rules.
- 1rip2IfConfReceive — rip1: accept only version 1 updates.
- 2rip2IfConfReceive — rip2: accept version 2 updates, including multicast packets.
- 3rip2IfConfReceive — rip1OrRip2: accept either, including multicast packets.
- 4rip2IfConfReceive — doNotRecieve: accept nothing.
- 1rip2IfConfAuthType — noAuthentication.
- 2rip2IfConfAuthType — simplePassword.
- 3rip2IfConfAuthType — md5.
Rip2IfConfEntry ::= SEQUENCE {
rip2IfConfAddress IpAddress,
rip2IfConfDomain RouteTag,
rip2IfConfAuthType INTEGER,
rip2IfConfAuthKey OCTET STRING (SIZE(0..16)),
rip2IfConfSend INTEGER,
rip2IfConfReceive INTEGER,
rip2IfConfDefaultMetric INTEGER,
rip2IfConfStatus RowStatus,
rip2IfConfSrcAddress IpAddress
}§6Security Considerations
The document is brief on this point: security issues are not discussed in this memo. The relevant material is therefore in the RIP-2 protocol specification itself, and in the MIB definitions, where the authentication key is the one object that is treated carefully: reading it always returns an empty string, and a modification of the authentication type does not modify the key that is stored.
The document says nothing about security. The one thing it does do is make sure the authentication key cannot be read back out of the MIB, and that changing the authentication type does not change the key.