RFC 1389
RIP Version 2 MIB Extensions
RFC 1389: RIP Version 2 MIB Extension π
okay bestie, this is the RIP Version 2 MIB Extension, and it's giving main character energy π It was written by G. Malkin of Xylogics, Inc. and F. Baker of Advanced Computer Communications, and it's dated January 1993. It's an IAB standards track protocol document, and the header doesn't list any documents it obsoletes or updates β¨
Status of This Memo π
Okay so this is the official "here's what this is" part. It's an IAB standards track protocol for the Internet community, and the authors are asking for discussion and suggestions for improvements π¬ For the current standardization state and status, you check the current edition of the "IAB Official Protocol Standards" π Distribution of the memo is unlimited, so share it with everyone πΈ
Abstract π¦
This memo defines a piece of the Management Information Base (MIB) for network management protocols in TCP/IP-based internets. Specifically, it defines the objects you need to manage RIP Version 2 π§
Table of Contents
1. The Network Management Framework ...................... 1
2. Objects ............................................... 2
2.1 Format of Definitions ................................ 2
3. Overview .............................................. 3
3.1 Textual Conventions .................................. 3
3.2 Structure of MIB ..................................... 3
4. Definitions ........................................... 3
4.1 Global Counters ...................................... 4
4.2 RIP Interface Tables ................................. 4
4.3 Peer Table ........................................... 10
5. Acknowledgements ...................................... 12
6. References ............................................ 12
7. Security Considerations ............................... 13
8. Authors' Addresses .................................... 13
1. The Network Management Framework β¨
So the Internet-standard Network Management Framework is made of three pieces π§© Here they are:
- STD 16/RFC 1155 defines the SMI, which is the set of mechanisms for describing and naming objects so you can manage them. STD 16/RFC 1212 adds a more concise way to describe things, and it's totally consistent with the SMI π
- RFC 1156 defines MIB-I, the core set of managed objects for the Internet protocol suite. STD 17/RFC 1213 is MIB-II, which evolved from MIB-I based on what people learned from implementing it and new operational needs π
- STD 15/RFC 1157 defines SNMP, the protocol you use to reach managed objects over the network π‘
The Framework also lets you define new objects for experimentation and evaluation, which is honestly so useful π§ͺ
2. Objects π
Managed objects live in a virtual information store called the Management Information Base, or MIB ποΈ Objects in the MIB are defined with a subset of Abstract Syntax Notation One (ASN.1) [7], the subset that the SMI allows. Every object has a name, a syntax, and an encoding. The name is an object identifier, which is an administratively assigned name for an object type. The object type plus an object instance uniquely identifies one specific instance of the object. For human convenience, people often use a text string called the OBJECT DESCRIPTOR to refer to the object type too π«Ά
The syntax of an object type is the abstract data structure that goes with that type, and ASN.1 is used for it. The SMI [3] deliberately restricts which ASN.1 constructs you're allowed to use, and it does that for simplicity π
The encoding is how an object type gets represented using its syntax. Syntax and encoding are closely tied together, and they also decide how the object looks when it's sent across the network π¦
The SMI uses the basic encoding rules of ASN.1 [8], with the extra requirements that SNMP adds on top π
2.1 Format of Definitions π§
Section 4 has the specification for every object type in this MIB module. The object types use the conventions from the SMI, plus the extensions in [9] π
3. Overview π¦
3.1 Textual Conventions π
This document introduces a few new data types as textual conventions. They make the spec easier to read and easier to compare with other specs when that's useful. Here's the important bit: adding these textual conventions doesn't change the syntax or the semantics of any managed object at all. They're just a side effect of how the document explains things. Objects that are defined using them are always encoded using the rules for the primitive type underneath. So you don't need any changes to the SMI or SNMP to support them. They're there for readers and writers who want clear, concise, unambiguous MIB documents (the elusive goal, lol) π₯Ή
The new data types are Validation, which is the standard "set to invalid causes deletion" type, and RouteTag. RouteTag represents the contents of the Route Tag field in the packet header or route entry π·οΈ
3.2 Structure of MIB ποΈ
The RIP-2 MIB has three main parts πΈ First, there are global counters, which help you spot the nasty effects of RIP incompatibilities. Second, there's an "interfaces" table with statistics and configuration info for each interface. Third, there's an optional "neighbor" table with info that can help you debug neighbor relationships. Like the protocol itself, this MIB goes out of its way to stay compatible with RIP-1 systems, and it gives you controls for monitoring and controlling system interactions π
4. Definitions π
Here's the full MIB module. Everything in the block is verbatim, so grab it exactly as it's written π
RFC1389-MIB DEFINITIONS ::= BEGIN
IMPORTS
Counter, TimeTicks, IpAddress
FROM RFC1155-SMI
mib-2
FROM RFC1213-MIB
OBJECT-TYPE
FROM RFC-1212;
-- RIP-2 Management Information Base
rip2 OBJECT IDENTIFIER ::= { mib-2 23 }
-- the RouteTag type represents the contents of the
-- Route Tag field in the packet header or route entry.
RouteTag ::= OCTET STRING (SIZE (2))
-- the Validation type is used for the variable that deletes
-- an entry from a table, and ALWAYS takes at least these values:
Validation ::= INTEGER { valid (1), invalid (2) }
-- The RIP-2 Globals Group.
-- Implementation of this group is mandatory for systems that
-- implement RIP-2.
-- These counters are intended to facilitate debugging quickly
-- changing routes or failing neighbors
rip2GlobalGroup OBJECT IDENTIFIER ::= { rip2 1 }
rip2GlobalRouteChanges OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of changes made to the IP Route Da-
tabase by RIP."
::= { rip2GlobalGroup 1 }
rip2GlobalQueries OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of responses sent to RIP queries
from other systems."
::= { rip2GlobalGroup 2 }
-- RIP Interfaces Groups
-- Implementation of these Groups is mandatory for systems that
-- implement RIP-2.
-- Since RIP versions 1 and 2 do not deal with addressless links,
-- it is assumed that RIP "interfaces" are subnets within a
-- routing domain.
-- The RIP Interface Status Table.
rip2IfStatTable OBJECT-TYPE
SYNTAX SEQUENCE OF Rip2IfStatEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of subnets which require separate
status monitoring in RIP."
::= { rip2 2 }
rip2IfStatEntry OBJECT-TYPE
SYNTAX Rip2IfStatEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A Single Routing Domain in a single Subnet."
INDEX { rip2IfStatAddress }
::= { rip2IfStatTable 1 }
Rip2IfStatEntry ::=
SEQUENCE {
rip2IfStatAddress
IpAddress,
rip2IfStatRcvBadPackets
Counter,
rip2IfStatRcvBadRoutes
Counter,
rip2IfStatSentUpdates
Counter,
rip2IfStatStatus
Validation
}
rip2IfStatAddress OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The IP Address of this system on the indicated
subnet."
::= { rip2IfStatEntry 1 }
rip2IfStatRcvBadPackets OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of RIP response packets received by
the RIP process which were subsequently dis-
carded for any reason (e.g. a version 0 packet,
or an unknown command type)."
::= { rip2IfStatEntry 2 }
rip2IfStatRcvBadRoutes OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
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 Counter
ACCESS read-only
STATUS mandatory
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 Validation
ACCESS read-write
STATUS mandatory
DESCRIPTION
"Writing invalid has the effect of deleting
this interface."
DEFVAL { valid }
::= { rip2IfStatEntry 5 }
-- The RIP Interface Configuration Table.
rip2IfConfTable OBJECT-TYPE
SYNTAX SEQUENCE OF Rip2IfConfEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of subnets which require separate con-
figuration in RIP."
::= { rip2 3 }
rip2IfConfEntry OBJECT-TYPE
SYNTAX Rip2IfConfEntry
ACCESS not-accessible
STATUS mandatory
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
Validation
}
part 1 wrapped π«Ά part 2 is coming next, so stay tuned πβ¨
rip2IfConfAddress OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The IP Address of this system on the indicated
subnet."
::= { rip2IfConfEntry 1 }
rip2IfConfDomain OBJECT-TYPE
SYNTAX RouteTag
ACCESS read-write
STATUS mandatory
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)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The type of Authentication used on this inter-
face."
DEFVAL { noAuthentication }
::= { rip2IfConfEntry 3 }
rip2IfConfAuthKey OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(0..16))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The value to be used as the Authentication Key
whenever the corresponding instance of
rip2IfConfAuthType has the value simplePass-
word. A modification of the corresponding in-
stance 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 oc-
tets, 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)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"What the router sends on this interface.
ripVersion1 implies sending RIP updates compli-
ant with RFC 1058. rip1Compatible implies
broadcasting RIP-2 updates using RFC 1058 route
subsumption rules. ripVersion2 implies multi-
casting RIP-2 updates."
DEFVAL { rip1Compatible }
::= { rip2IfConfEntry 5 }
rip2IfConfReceive OBJECT-TYPE
SYNTAX INTEGER {
rip1 (1),
rip2 (2),
rip1OrRip2 (3)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This indicates which version of RIP updates
are to be accepted. Note that rip2 and
rip1OrRip2 implies reception of multicast pack-
ets."
DEFVAL { rip1OrRip2 }
::= { rip2IfConfEntry 6 }
rip2IfConfDefaultMetric OBJECT-TYPE
SYNTAX INTEGER ( 0..15 )
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This variable indicates what metric is to be
used as a default route in RIP updates ori-
ginated on this interface. A value of zero in-
dicates that no default route should be ori-
ginated; in this case, a default route via
another router may be propagated."
::= { rip2IfConfEntry 7 }
rip2IfConfStatus OBJECT-TYPE
SYNTAX Validation
ACCESS read-write
STATUS mandatory
DESCRIPTION
"Writing invalid has the effect of deleting
this interface."
DEFVAL { valid }
::= { rip2IfConfEntry 8 }
okay so the interface config table is giving full control π every field has its own vibe, from the IP address to the auth key (which, bestie, reading it always gives you back an empty string π so nobody can just peek at your password π). The auth key gets left-justified and null-padded to 16 octets, and changing the auth type doesn't wipe the key, which is kinda iconic β¨
Next up is the peer table, which is OPTIONAL to implement π¦ It's basically a debugging helper that tracks who your active routing buddies are, so you can see what's going on in the group chat π«Ά
-- 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.
rip2PeerTable OBJECT-TYPE
SYNTAX SEQUENCE OF Rip2PeerEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of RIP Peers."
::= { rip2 4 }
rip2PeerEntry OBJECT-TYPE
SYNTAX Rip2PeerEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"Information regarding a single routing peer."
INDEX { rip2PeerAddress, rip2PeerDomain }
::= { rip2PeerTable 1 }
Rip2PeerEntry ::=
SEQUENCE {
rip2PeerAddress
IpAddress,
rip2PeerDomain
RouteTag,
rip2PeerLastUpdate
TimeTicks,
rip2PeerVersion
INTEGER,
rip2PeerRcvBadPackets
Counter,
rip2PeerRcvBadRoutes
Counter
}
rip2PeerAddress OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The IP Address of the Peer System."
::= { rip2PeerEntry 1 }
rip2PeerDomain OBJECT-TYPE
SYNTAX RouteTag
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value in the Routing Domain field in RIP
packets received from the peer."
::= { rip2PeerEntry 2 }
rip2PeerLastUpdate OBJECT-TYPE
SYNTAX TimeTicks
ACCESS read-only
STATUS mandatory
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 )
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The RIP version number in the header of the
last RIP packet received."
::= { rip2PeerEntry 4 }
rip2PeerRcvBadPackets OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of RIP response packets from this
peer discarded as invalid."
::= { rip2PeerEntry 5 }
rip2PeerRcvBadRoutes OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of routes from this peer that were
ignored because the entry format was invalid."
::= { rip2PeerEntry 6 }
END
5. Acknowledgements β¨
This document was produced by the RIP-2 Working Group of the Internet Engineering Task Force (IETF) π
Extra shoutouts to Keith McCloghrie and Frank Kastenholz, whose comments are acknowledged too π«Άπ
8. 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 1388, Xylogics, Inc., January 1993.
- [11] Malkin, G., "RIP Version 2 Protocol Analysis", RFC 1387, Xylogics, Inc., January 1993.
7. Security Considerations π
Security issues are not discussed in this memo. π Plot twist, but that's what the document says, so no spicy security drama here, periodt π
8. Authors' Addresses π¦
Gary Malkin Xylogics, Inc. 53 Third Avenue Burlington, MA 01803
Phone: (617) 272-8140 EMail: gmalkin@Xylogics.COM
Fred Baker Advanced Computer Communications 315 Bollay Drive Santa Barbara, California 93117-6014
Phone: (805) 685-4455 EMail: fbaker@acc.com
π¦ where this page comes from
- ietf: rfc1389 1993-01
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms