RFC 1354
IP Forwarding Table MIB
IP Forwarding Table MIB π¦
okay bestie, let's do the vibe check first π this is RFC 1354, and it's called IP Forwarding Table MIB. It was written by F. Baker from ACC and dated July 1992 πΈ The big glow-up here is that it's the IP Forwarding Table, which obsoletes and replaces the ipRoute Table from MIB-I and MIB-II π
Status of This Memo β¨
ok so this RFC specifies an IAB standards track protocol for the Internet community, and it's asking everyone to talk about it and suggest improvements π¬ for the official standardization state, check the current edition of the "IAB Official Protocol Standards" π and distribution of this memo is unlimited π
Abstract π
this memo defines a chunk of the Management Information Base (MIB) for network management protocols in TCP/IP-based internets π§ specifically, it's all about managing routes in the IP Internet π£οΈ
it's also proposing that the ipRouteTable from MIB-II (RFC 1213) get deprecated and replaced by this table π₯ the upgrade adds the ability to set or display multi-path routes, and to vary routes by network management policy π
Table of Contents π
1. The Network Management Framework ............................ 1
2. Objects ..................................................... 2
2.1 Format of Definitions ...................................... 2
3. Overview .................................................... 3
3.1 Structure of MIB ........................................... 3
4. Definitions ................................................. 4
4.1 IP Forwarding Table ........................................ 4
5. Acknowledgements ............................................ 11
6. References .................................................. 11
7. Security Considerations........................................ 12
8. Author's Address............................................... 12
1. The Network Management Framework β¨
so the Internet-standard Network Management Framework has three components π§© here they are:
- RFC 1155 defines the SMI, which is the mechanisms for describing and naming objects for management purposes. RFC 1212 adds a more concise description mechanism that's totally consistent with the SMI π
- RFC 1156 defines MIB-I, the core set of managed objects for the Internet suite of protocols. RFC 1213 defines MIB-II, which is basically MIB-I glowed up using implementation experience and new operational requirements π
- RFC 1157 defines the SNMP, the protocol used for network access to managed objects π‘
and the Framework lets new objects get defined for experimentation and evaluation π§ͺ very experimental, very cute π
2. Objects π§
managed objects are accessed through a virtual information store called the Management Information Base, or MIB ποΈ objects in the MIB are defined using a subset of Abstract Syntax Notation One (ASN.1) [7] that's defined in the SMI π
each object has a name, a syntax, and an encoding π the name is an object identifier, which is an administratively assigned name that specifies an object type. The object type together with an object instance uniquely identifies one specific instantiation of the object β¨ and for human convenience, we often use a textual string called the OBJECT DESCRIPTOR to refer to the object type too π«Ά
the syntax of an object type defines the abstract data structure for that object type, and ASN.1 is the language used for this π the SMI [3] purposely restricts which ASN.1 constructs can be used, and that's on purpose, for simplicity π
the encoding is basically how an object type is represented using its syntax π¦ and tied right in with syntax and encoding is how the object type gets represented when it's being sent over the network π¦
the SMI says to use the basic encoding rules of ASN.1 [8], with the extra requirements the SNMP adds on top π₯
2.1. Format of Definitions π
Section 4 has the specification for every object type in this MIB module πΈ they're defined using the conventions from the SMI, as amended by the extensions in [9] π
3. Overview π
3.1. Structure of MIB π§
the IP Forwarding Table is pretty much analogous to the older ipRoute Table π― the main differences are:
- It's somewhat re-organized, for aesthetic reasons π
- It has the Next Hop Autonomous System Number, which is mostly useful to administrators of regional networks π
- It's instanced by Policy and Next Hop as well as by ultimate destination π₯ so multiple multipath routes can be managed, not just a single route, along with the circumstances under which any given route might be chosen π
4. Definitions π
4.1. IP Forwarding Table π¦
here's the actual MIB module, copied exactly so nothing gets lost in translation π«Ά the descriptions and syntax are the spec, so don't touch a single character π
RFC1354-MIB DEFINITIONS ::= BEGIN
IMPORTS
Gauge, IpAddress
FROM RFC1155-SMI
mib-2, ip
FROM RFC1213-MIB
OBJECT-TYPE
FROM RFC-1212;
-- This MIB module uses the extended OBJECT-TYPE macro as
-- defined in [9].
ipForward OBJECT IDENTIFIER ::= { ip 24 }
ipForwardNumber OBJECT-TYPE
SYNTAX Gauge
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of current ipForwardTable entries
that are not invalid."
::= { ipForward 1 }
-- IP Forwarding Table
-- The IP Forwarding Table obsoletes and replaces the ipRoute
-- Table current in MIB-I and MIB-II. It adds knowledge of
-- the autonomous system of the next hop, multiple next hop
-- support, and policy routing support.
ipForwardTable OBJECT-TYPE
SYNTAX SEQUENCE OF IpForwardEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"This entity's IP Routing table."
REFERENCE
"RFC 1213 Section 6.6, The IP Group"
::= { ipForward 2 }
ipForwardEntry OBJECT-TYPE
SYNTAX IpForwardEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A particular route to a particular destina-
tion, under a particular policy."
INDEX {
ipForwardDest,
ipForwardProto,
ipForwardPolicy,
ipForwardNextHop
}
::= { ipForwardTable 1 }
IpForwardEntry ::=
SEQUENCE {
ipForwardDest
IpAddress,
ipForwardMask
IpAddress,
ipForwardPolicy
INTEGER,
ipForwardNextHop
IpAddress,
ipForwardIfIndex
INTEGER,
ipForwardType
INTEGER,
ipForwardProto
INTEGER,
ipForwardAge
INTEGER,
ipForwardInfo
OBJECT IDENTIFIER,
ipForwardNextHopAS
INTEGER,
ipForwardMetric1
INTEGER,
ipForwardMetric2
INTEGER,
ipForwardMetric3
INTEGER,
ipForwardMetric4
INTEGER,
ipForwardMetric5
INTEGER
}
ipForwardDest OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The destination IP address of this route. An
entry with a value of 0.0.0.0 is considered a
default route.
This object may not take a Multicast (Class D)
address value.
Any assignment (implicit or otherwise) of an
instance of this object to a value x must be
rejected if the bitwise logical-AND of x with
the value of the corresponding instance of the
ipForwardMask object is not equal to x."
::= { ipForwardEntry 1 }
ipForwardMask OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-write
STATUS mandatory
DESCRIPTION
"Indicate the mask to be logical-ANDed with the
destination address before being compared to
the value in the ipForwardDest field. For
those systems that do not support arbitrary
subnet masks, an agent constructs the value of
the ipForwardMask by reference to the IP Ad-
dress Class.
Any assignment (implicit or otherwise) of an
instance of this object to a value x must be
rejected if the bitwise logical-AND of x with
the value of the corresponding instance of the
ipForwardDest object is not equal to ipForward-
Dest."
DEFVAL { '00000000'h } -- 0.0.0.0
::= { ipForwardEntry 2 }
-- The following convention is included for specification
-- of TOS Field contents. At this time, the Host Requirements
-- and the Router Requirements documents disagree on the width
-- of the TOS field. This mapping describes the Router
-- Requirements mapping, and leaves room to widen the TOS field
-- without impact to fielded systems.
ipForwardPolicy OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The general set of conditions that would cause
the selection of one multipath route (set of
next hops for a given destination) is referred
to as 'policy'.
Unless the mechanism indicated by ipForwardPro-
to specifies otherwise, the policy specifier is
the IP TOS Field. The encoding of IP TOS is as
specified by the following convention. Zero
indicates the default path if no more specific
policy applies.
+-----+-----+-----+-----+-----+-----+-----+-----+
| | | |
| PRECEDENCE | TYPE OF SERVICE | 0 |
| | | |
+-----+-----+-----+-----+-----+-----+-----+-----+
IP TOS IP TOS
Field Policy Field Policy
Contents Code Contents Code
0 0 0 0 ==> 0 0 0 0 1 ==> 2
0 0 1 0 ==> 4 0 0 1 1 ==> 6
0 1 0 0 ==> 8 0 1 0 1 ==> 10
0 1 1 0 ==> 12 0 1 1 1 ==> 14
1 0 0 0 ==> 16 1 0 0 1 ==> 18
1 0 1 0 ==> 20 1 0 1 1 ==> 22
1 1 0 0 ==> 24 1 1 0 1 ==> 26
1 1 1 0 ==> 28 1 1 1 1 ==> 30
Protocols defining 'policy' otherwise must ei-
ther define a set of values which are valid for
this object or must implement an integer-
instanced policy table for which this object's
value acts as an index."
::= { ipForwardEntry 3 }
okay so the policy column is kinda the wild card of the table π whatever protocol is in charge gets to decide what the values mean, and it's either giving a list of valid values or an actual little policy table that this column uses as its index ποΈ no cap, it's a whole vibe π
ipForwardNextHop OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
STATUS mandatory
DESCRIPTION
"On remote routes, the address of the next sys-
tem en route; Otherwise, 0.0.0.0."
::= { ipForwardEntry 4 }
the next hop is literally the next stop on the route π on remote routes it's the address of that next system, and on everything else it's just 0.0.0.0 (the main character of zero addresses πΈ)
ipForwardIfIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The ifIndex value which identifies the local
interface through which the next hop of this
route should be reached."
DEFVAL { 0 }
::= { ipForwardEntry 5 }
this one is the local door πͺ it's the ifIndex for the interface the next hop is reached through, and the default is 0 π§
ipForwardType OBJECT-TYPE
SYNTAX INTEGER {
other (1), -- not specified by this MIB
invalid (2), -- logically deleted
local (3), -- local interface
remote (4) -- remote destination
}
ACCESS read-write
STATUS mandatory
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 destina-
tion.
Setting this object to the value invalid(2) has
the effect of invalidating the corresponding
entry in the ipForwardTable object. That is,
it effectively disassociates the destination
identified with said entry from the route iden-
tified with said entry. It is an
implementation-specific matter as to whether
the agent removes an invalidated entry from the
table. Accordingly, management stations must
be prepared to receive tabular information from
agents that corresponds to entries not current-
ly in use. Proper interpretation of such en-
tries requires examination of the relevant ip-
ForwardType object."
DEFVAL { invalid }
::= { ipForwardEntry 6 }
ipForwardType is the route's personality quiz π local(3) means the next hop is the final destination, remote(4) means it isn't, and invalid(2) is the soft delete π setting it to invalid kind of unhooks the destination from that route, but whether the agent actually deletes the row is up to the implementation π€·ββοΈ so anyone reading the table has to be ready for stale rows and check this column before trusting them π
ipForwardProto OBJECT-TYPE
SYNTAX INTEGER {
other (1), -- not specified
local (2), -- local interface
netmgmt (3), -- static route
icmp (4), -- result of ICMP Redirect
-- the following are all dynamic
-- routing protocols
egp (5), -- Exterior Gateway Protocol
ggp (6), -- Gateway-Gateway Protocol
hello (7), -- FuzzBall HelloSpeak
rip (8), -- Berkeley RIP or RIP-II
is-is (9), -- Dual IS-IS
es-is (10), -- ISO 9542
ciscoIgrp (11), -- Cisco IGRP
bbnSpfIgp (12), -- BBN SPF IGP
ospf (13), -- Open Shortest Path First
bgp (14), -- Border Gateway Protocol
idpr (15) -- InterDomain Policy Routing
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The routing mechanism via which this route was
learned. Inclusion of values for gateway rout-
ing protocols is not intended to imply that
hosts should support those protocols."
::= { ipForwardEntry 7 }
ipForwardProto is the "where did you hear that?" column π£ it lists how the route was learned, from other all the way to idpr, and the list includes gateway routing protocols just for completeness π the text is clear that including them doesn't mean hosts are expected to run any of them, so don't come for the hosts π
ββοΈ
ipForwardAge OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
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."
DEFVAL { 0 }
::= { ipForwardEntry 8 }
ipForwardAge counts the seconds since the route was last updated or confirmed β±οΈ and the big tea β is that "too old" can't be decided from the number alone. You'd need to know the routing protocol the route came from first π«Ά
ipForwardInfo OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
ACCESS read-write
STATUS mandatory
DESCRIPTION
"A reference to MIB definitions specific to the
particular routing protocol which is responsi-
ble for this route, as determined by the value
specified in the route's ipForwardProto value.
If this information is not present, its value
should be set to the OBJECT IDENTIFIER { 0 0 },
which is a syntactically valid object identif-
ier, and any implementation conforming to ASN.1
and the Basic Encoding Rules must be able to
generate and recognize this value."
DEFVAL { { 0 0 } } -- 0.0
::= { ipForwardEntry 9 }
ipForwardInfo is the pointer to extra MIB definitions for whichever routing protocol owns the route πΊοΈ if there's nothing to point at, the value is { 0 0 }, which is a totally valid OBJECT IDENTIFIER, and ASN.1 plus the Basic Encoding Rules have to be able to make and recognize it π§ iconic placeholder energy π
ipForwardNextHopAS OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The Autonomous System Number of the Next Hop.
When this is unknown or not relevant to the
protocol indicated by ipForwardProto, zero."
DEFVAL { 0 }
::= { ipForwardEntry 10 }
ipForwardNextHopAS is the Autonomous System Number of the next hop π if it's unknown, or it just doesn't matter for the protocol in ipForwardProto, it's zero 0οΈβ£ simple and slay π
ipForwardMetric1 OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The primary routing metric for this route.
The semantics of this metric are determined by
the routing-protocol specified in the route's
ipForwardProto value. If this metric is not
used, its value should be set to -1."
DEFVAL { -1 }
::= { ipForwardEntry 11 }
ipForwardMetric1 is the main metric π what it actually means depends on the protocol named in ipForwardProto, and if this metric isn't being used, the value is -1 β¨
ipForwardMetric2 OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
DESCRIPTION
"An alternate routing metric for this route.
The semantics of this metric are determined by
the routing-protocol specified in the route's
ipForwardProto value. If this metric is not
used, its value should be set to -1."
DEFVAL { -1 }
::= { ipForwardEntry 12 }
ipForwardMetric2 is an alternate metric, same deal as the first one: the protocol decides what it means, and unused means -1 π¦
ipForwardMetric3 OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
DESCRIPTION
"An alternate routing metric for this route.
The semantics of this metric are determined by
the routing-protocol specified in the route's
ipForwardProto value. If this metric is not
used, its value should be set to -1."
DEFVAL { -1 }
::= { ipForwardEntry 13 }
ipForwardMetric3 is another alternate metric, same rules, same -1 πΈ
ipForwardMetric4 OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
DESCRIPTION
"An alternate routing metric for this route.
The semantics of this metric are determined by
the routing-protocol specified in the route's
ipForwardProto value. If this metric is not
used, its value should be set to -1."
DEFVAL { -1 }
::= { ipForwardEntry 14 }
ipForwardMetric4 is also an alternate metric, identical in spirit to the others π«§
ipForwardMetric5 OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
DESCRIPTION
"An alternate routing metric for this route.
The semantics of this metric are determined by
the routing-protocol specified in the route's
ipForwardProto value. If this metric is not
used, its value should be set to -1."
DEFVAL { -1 }
::= { ipForwardEntry 15 }
END
and that's the last metric π ipForwardMetric5 is the final alternate one, and the module wraps up with END π¬
5. Acknowledgements β¨
okay so this doc was made by the Router Requirements Working Group π«Ά Phil Almquist chairs that group, and he gets a big shoutout π£
Chris Gunner from DEC and Keith McCloghrie from Hughes LAN Systems gave really significant comments, and the spec is so much better because of their input π
6. References π
- [1] Cerf, V., "IAB Recommendations for the Development of Internet Network Management Standards", RFC 1052, NRI, April 1988.
- [2] Cerf, V., "Report of the Second Ad Hoc Network Management Review Group", RFC 1109, NRI, August 1989.
- [3] Rose M., and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based internets", 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", RFC 1157, SNMP Research, Performance Systems International, Performance Systems International, MIT Laboratory for Computer Science, May 1990.
- [6] McCloghrie K., and M. Rose, Editors, "Management Information Base for Network Management of TCP/IP-based internets", RFC 1213, Performance Systems International, March 1991.
- [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", RFC 1212, Performance Systems International, Hughes LAN Systems, March 1991.
- [10] McCloghrie K., and M. Rose, Editors, "Management Information Base for Network Management of TCP/IP-based internets", RFC 1213, Performance Systems International, March 1991.
- [11] Baker, F., and R. Coltun, "OSPF Version 2 Management Information Base", RFC 1253, ACC, Computer Science Center, August 1991.
7. Security Considerations π
Security issues are not discussed in this memo. π Full stop, no notes, so keep your guard up and treat that as the whole story π
8. Author's Address π
Fred Baker
Advanced Computer Communications
315 Bollay Drive
Santa Barbara, CA 93117-6014
Phone: (805) 685-4455
EMail: fbaker@acc.com
and that's the whole spec, bestie π¦ Fred Baker wrote it at Advanced Computer Communications in Santa Barbara π΄ you can reach him at the phone number and email above π«Ά slay the whole MIB β¨π
π¦ where this page comes from
- ietf: rfc1354 1992-07
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms