IP Forwarding Table MIB
obsoletes
- rfc-2096 — IP Forwarding Table MIB
Extracted elements (23)
A read-only compliance statement (ipForwardReadOnlyCompliance) was added to support implementations that only retrieve forwarding data and do not need write access. This addresses deployment scenarios where route table management is handled outside SNMP.
RFC 4292 replaces the IPv4-only ipCidrRouteTable (RFC 2096) with inetCidrRouteTable, using the InetAddress textual convention to achieve a single IP version-independent forwarding MIB covering both IPv4 and IPv6. The logical structure of ipCidrRouteTable was intentionally retained to allow easy upgrade of existing IPv4 implementations.
If the combined total of octets or sub-identifiers in inetCidrRouteDest, inetCidrRoutePolicy, and inetCidrRouteNextHop exceeds 111, column instance OIDs will have more than 128 sub-identifiers and cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3.
ipRoutingDiscards (RFC 2011) and ipv6DiscardedRoutes (RFC 2465) are deprecated in favor of the version-independent inetCidrRouteDiscards object defined in this MIB.
The ipCidrRouteTable and all its objects (ipCidrRouteNumber, ipCidrRouteDest, ipCidrRouteMask, ipCidrRouteTos, etc.) are deprecated in RFC 4292 in favor of the version-independent inetCidrRouteTable. The older ipForwardTable and related objects are marked obsolete.
Deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Implementers SHOULD deploy SNMPv3 with cryptographic security (authentication and privacy) to protect access to this MIB.
Dynamically created rows in inetCidrRouteTable will survive an agent reboot, meaning persistent storage of route entries is required for conforming implementations.
The values of inetCidrRouteDest and inetCidrRoutePfxLen MUST be consistent: the bitwise AND of inetCidrRouteDest with the mask derived from inetCidrRoutePfxLen MUST equal inetCidrRouteDest. If not, an inconsistentName error MUST be returned on SET or CREATE requests.
inetCidrRouteDestType (InetAddressType) specifies the address family of inetCidrRouteDest. Only address types that can appear in an actual routing table are permitted; this enables a single MIB to manage both IPv4 and IPv6 forwarding entries.
inetCidrRouteDiscards (Counter32, read-only) counts valid route entries discarded from inetCidrRouteTable for any reason (e.g., buffer space reclamation). It replaces the deprecated ipRoutingDiscards and ipv6DiscardedRoutes objects.
inetCidrRouteMetric1 through inetCidrRouteMetric5 (Integer32, read-create) provide up to five routing metrics whose semantics are determined by inetCidrRouteProto. Unused metrics MUST be set to -1; default value is -1.
inetCidrRouteNextHopAS (InetAutonomousSystemNumber, read-create) records the AS number of the next hop. When unknown or not relevant, its value should be set to zero; default is 0.
inetCidrRouteNextHopType should be set to unknown(0) for non-remote routes. Only address types valid in an actual routing table are allowed.
inetCidrRouteNumber (Gauge32, read-only) counts the number of current valid (non-invalid) entries in inetCidrRouteTable, providing a fast count without requiring a full table read.
inetCidrRoutePfxLen (InetAddressPrefixLength) indicates the number of leading one bits in the subnet mask applied to inetCidrRouteDest before route matching, implementing CIDR prefix-length notation in version-independent form.
inetCidrRoutePolicy (OBJECT IDENTIFIER) is an opaque additional index to distinguish multiple routes to the same destination under different policies. The default value is { 0 0 }.
inetCidrRouteProto (IANAipRouteProtocol) identifies the routing mechanism by which the route was learned. Inclusion of gateway routing protocol values does not imply hosts must support those protocols.
inetCidrRouteStatus (RowStatus, read-create) controls row installation and removal. A row entry cannot be modified when its status is active(1). The full compliance statement restricts write syntax to active(1), notInService(2), createAndGo(4), and destroy(6); createAndWait is not required.
inetCidrRouteTable is the primary IP routing table providing IP version-independent multipath CIDR route management. It replaces the deprecated ipCidrRouteTable and supports both IPv4 and IPv6 via InetAddress types.
inetCidrRouteType enumerates route types: other(1), reject(2) — discards traffic and returns ICMP notification, local(3) — next hop is the final destination, remote(4) — next hop is not the final destination, blackhole(5) — silently discards traffic. Routes not resulting in forwarding or rejection should not be displayed.
The MIB module IP-FORWARD-MIB is registered under { ip 24 } (ipForward). It defines object groups inetForwardCidrRouteGroup (current), ipForwardCidrRouteGroup (deprecated), and ipForwardMultiPathGroup (obsolete), and compliance statements ipForwardFullCompliance and ipForwardReadOnlyCompliance (both current).
Unauthenticated write access to inetCidrRouteTable can compromise the validity of forwarding information critical to router operation. Even read access is sensitive because the table can be used to map the network topology for denial-of-service attack planning, and inetCidrRouteProto reveals which routing protocols are in use.
inetCidrRouteEntry is indexed by {inetCidrRouteDestType, inetCidrRouteDest, inetCidrRoutePfxLen, inetCidrRoutePolicy, inetCidrRouteNextHopType, inetCidrRouteNextHop}. The combined OID for column instances may exceed 128 sub-identifiers if the total octets in Dest, Policy, and NextHop exceeds 111, making the row inaccessible via SNMPv1/v2c/v3.