Definitions of Managed Objects for Virtual Router Redundancy Protocol Version 3 (VRRPv3)
obsoletes
- rfc-2787 — Definitions of Managed Objects for the Virtual Router Redundancy Protocol
Extracted elements (25)
IPv4 and IPv6 virtual routers are treated as two separate logical entities, each represented as a separate row in vrrpv3OperationsTable. This choice was made because RFC 5798 behavior in a multi-stack scenario is undefined, and no consensus could be reached on an alternative interpretation.
This MIB obsoletes RFC 2787 (VRRP-MIB for VRRPv2/RFC 2338). The major changes reflect protocol differences between RFC 2338 and RFC 5798, including unified IPv4/IPv6 support, updated table indexing, and alignment with current MIB conventions.
A newly created row in vrrpv3OperationsTable cannot be made active(1) until vrrpv3OperationsInetAddrType, vrrpv3OperationsVrId, and vrrpv3OperationsPrimaryIpAddr have been set, and at least one active row exists in vrrpv3AssociatedIpAddrTable for the virtual router.
Agents implementing this MIB MUST reject SET operations that attempt to write priority values of 0 or 255 to vrrpv3OperationsPriority. For example, an SNMP agent would return 'badValue(3)' for such attempts.
Deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. It is RECOMMENDED to deploy SNMPv3 and enable cryptographic security to control access to read-create objects in this MIB.
Implementations MUST provide the security features described by the SNMPv3 framework, including full support for authentication and privacy via the User-based Security Model (USM) with the AES cipher algorithm. Implementations MAY also support the Transport Security Model (TSM) combined with SSH or TLS/DTLS.
The information in vrrpv3OperationsTable and vrrpv3AssociatedIpAddrTable is persistent; when written, the entity SHOULD save the change to non-volatile storage.
The vrrpv3OperationsRowStatus row-creation lifecycle requires: (1) create row with createAndWait(5), (2) create associated rows in vrrpv3AssociatedIpAddrTable, (3) populate the entry, (4) set RowStatus to active(1). Deletion requires setting RowStatus to notInService(2), destroying associated address rows, then setting RowStatus to destroy(6).
Global statistics counters (vrrpv3RouterChecksumErrors, vrrpv3RouterVersionErrors, vrrpv3RouterVrIdErrors) are Counter64 objects tracking router-wide packet reception errors. Counter discontinuities are tracked via vrrpv3GlobalStatisticsDiscontinuityTime (sysUpTime at last discontinuity).
Per-virtual-router statistics include vrrpv3StatisticsIpTtlErrors (packets received with IPv4 TTL or IPv6 Hop Limit not equal to 255), vrrpv3StatisticsAdvIntervalErrors (advertisement interval mismatch), and vrrpv3StatisticsAddressListErrors (address list mismatch), all Counter64.
The VRRPv3 MIB module contains three tables: vrrpv3OperationsTable (operational characteristics of each virtual router instance), vrrpv3StatisticsTable (per-virtual-router statistics), and vrrpv3AssociatedIpAddrTable (IP addresses backed up by each virtual router). Tables are indexed on ifIndex, VRID, and IP address type.
Two compliance levels are defined: vrrpv3FullCompliance (requires all four conformance groups including read-create access, with settable priority restricted to 1–254) and vrrpv3ReadOnlyCompliance (all groups with read-only access to all writable objects, suitable for monitoring-only implementations).
Two SNMP notifications are defined: vrrpv3NewMaster (sent when a router transitions to master state, carrying vrrpv3OperationsMasterIpAddr and vrrpv3StatisticsNewMasterReason) and vrrpv3ProtoError (sent on protocol error, carrying vrrpv3StatisticsProtoErrReason).
vrrpv3AssociatedIpAddrTable stores the IP addresses (IPv4 4-byte or IPv6 16-byte) that each virtual router backs up, indexed by ifIndex, VRID, InetAddressType, and address. Rows cannot be modified unless the corresponding vrrpv3OperationsStatus is initialize(1). Implementations should not allow deletion of the last row corresponding to an active operations entry.
vrrpv3OperationsAcceptMode (TruthValue, default false) controls whether a master router in IPv6 mode accepts packets addressed to the address owner's IPv6 address when it is not the owner. This object is not relevant for VRRP over IPv4 and SHOULD be set to false(2) in that case.
vrrpv3OperationsAdvInterval specifies the interval between VRRP advertisement messages in centiseconds, range 1–4095, default 100 (1 second). Only the master router sends VRRP advertisements.
vrrpv3OperationsPreemptMode (TruthValue, default true) controls whether a higher-priority virtual router will preempt a lower-priority master. It is read-create and configurable per virtual router instance.
vrrpv3OperationsPriority is an Unsigned32 in range 0–255 with default 100. Priority 255 indicates the router owns the associated IP address(es); priority 0 (not settable via SNMP) signals the current master is ceasing participation. Agents MUST reject SET operations with value 0 or 255, returning badValue(3).
vrrpv3OperationsTable rows are indexed by ifIndex, vrrpv3OperationsVrId (1–255), and vrrpv3OperationsInetAddrType (ipv4(1) or ipv6(2)), uniquely identifying each virtual router instance on a multi-stack VRRP router.
vrrpv3StatisticsNewMasterReason records why the virtual router last transitioned to master: notMaster(0), priority(1), preempted(2), or masterNoResponse(3). This value is included in vrrpv3NewMaster notifications.
vrrpv3StatisticsProtoErrReason records the last protocol error encountered: noError(0), ipTtlError(1), versionError(2), checksumError(3), or vrIdError(4). This value is included in vrrpv3ProtoError notifications.
vrrpv3StatisticsRefreshRate (Unsigned32, in milliseconds) indicates the minimum reasonable polling interval for statistics counters in a given virtual router entry, providing guidance to management applications on how frequently to poll.
IANA assigned OBJECT IDENTIFIER { mib-2 207 } to vrrpv3MIB in the SMI Numbers registry. The prior VRRP-MIB assignment (mib-2 68, from RFC 2787) has been deprecated as this document obsoletes RFC 2787.
The read-create objects vrrpv3OperationsPriority, vrrpv3OperationsPrimaryIpAddr, vrrpv3OperationsAdvInterval, vrrpv3OperationsPreemptMode, vrrpv3OperationsAcceptMode, vrrpv3OperationsRowStatus, and vrrpv3AssociatedIpAddrRowStatus can adversely affect virtual router operation if manipulated by unauthorized parties, e.g., causing incorrect master elections, IP address misassignment, advertisement flooding, or disabling virtual routers entirely.
A virtual router cycles through three states tracked by vrrpv3OperationsStatus: initialize(1) — awaiting startup event; backup(2) — monitoring master availability; master(3) — forwarding packets for associated IP addresses. A row must start in initialize(1) and cannot transition to backup(2) or master(3) until vrrpv3OperationsRowStatus becomes active(1).