Definitions of Managed Objects for the Fourth Version of the Border Gateway Protocol (BGP-4) using SMIv2
obsoleted by
- rfc-4273 — Definitions of Managed Objects for BGP-4
Extracted elements (26)
bgpPathAttrASPath in the obsolete BGP v3 table uses an OCTET STRING rather than SEQUENCE OF INTEGER for SMI compatibility, with each AS number encoded as a pair of octets. This compromise was made because SMIv1 did not support variable-length sequences of integers directly.
The bgpRcvdPathAttrTable (STATUS obsolete) was designed for peers running BGP version 3 or lower and is superseded by bgp4PathAttrTable for BGP-4 peers. Implementations should use bgp4PathAttrTable for all BGP-4 peer path attribute information.
The bgpPeerAdminStatus object description warns that care should be used in providing write access to this object without adequate authentication, due to its ability to restart BGP peer connections.
bgp4PathAttrAggregatorAS (INTEGER 0..65535, zero = absent) and bgp4PathAttrAggregatorAddr (IpAddress, 0.0.0.0 = absent) identify the last BGP-4 speaker that performed route aggregation.
bgp4PathAttrAtomicAggregate indicates whether a less-specific route was selected without a more-specific route: lessSpecificRouteNotSelected(1) or lessSpecificRouteSelected(2).
bgp4PathAttrCalcLocalPref (INTEGER -1..2147483647) is the locally calculated degree of preference for an advertised route as determined by the receiving BGP-4 speaker; -1 indicates absence. bgp4PathAttrBest indicates whether this route was chosen as the best BGP-4 route: false(1) or true(2).
bgp4PathAttrMultiExitDisc (INTEGER -1..2147483647) and bgp4PathAttrLocalPref (INTEGER -1..2147483647) represent the MED and LOCAL_PREF BGP path attributes respectively; a value of -1 indicates absence of the attribute.
bgp4PathAttrUnknown is a read-only OCTET STRING (0..255 octets) storing path attributes not understood by the BGP-4 speaker. Size zero indicates no unknown attributes; octets beyond the maximum size are not recorded.
bgpIdentifier ({ bgp 4 }) is a read-only IpAddress object representing the BGP Identifier of the local BGP system.
bgpLocalAs ({ bgp 2 }) is a read-only INTEGER (0..65535) representing the local autonomous system number of the BGP speaker.
bgpPeerAdminStatus is a read-write INTEGER with values stop(1) and start(2). Transitioning from stop to start generates a BGP Start Event; transitioning from start to stop generates a BGP Stop Event, enabling restart of peer connections via SNMP.
bgpPeerConnectRetryInterval is a read-write INTEGER (1..65535 seconds) for the ConnectRetry timer, with a suggested value of 120 seconds.
bgpPeerFsmEstablishedTransitions (Counter32) counts the total number of times the BGP FSM transitioned into the Established state for a peer. bgpPeerFsmEstablishedTime (Gauge32) records how long (in seconds) the peer has been in or since last was in Established state, reset to zero on new peer configuration or router boot.
bgpPeerHoldTime (read-only) is the negotiated Hold Time in seconds, computed as the minimum of bgpPeerHoldTimeConfigured and the Hold Time received in the peer's OPEN message; must be at least 3 seconds if non-zero. bgpPeerHoldTimeConfigured (read-write, suggested 90 seconds) is the locally configured value placed in OPEN messages.
bgpPeerInUpdateElapsedTime (Gauge32) records elapsed seconds since the last BGP UPDATE was received from a peer; reset to zero each time bgpPeerInUpdates increments.
bgpPeerKeepAlive (read-only) is the operational KeepAlive interval in seconds, scaled proportionally from bgpPeerKeepAliveConfigured relative to bgpPeerHoldTimeConfigured. bgpPeerKeepAliveConfigured (read-write, suggested 30 seconds, recommended ≤ 1/3 of HoldTime) controls KeepAlive frequency; zero disables periodic KEEPALIVEs.
bgpPeerLastError is a 2-octet read-only OCTET STRING where the first byte contains the BGP error code and the second byte contains the subcode of the last error seen on this peer connection. A value of zero indicates no error has occurred.
bgpPeerMinASOriginationInterval (suggested 15 seconds) and bgpPeerMinRouteAdvertisementInterval (suggested 30 seconds) are read-write INTEGER timers controlling the minimum intervals between AS origination and route advertisement to a peer.
bgpVersion ({ bgp 1 }) is a read-only OCTET STRING (1..255 octets) encoding a bit vector of supported BGP protocol versions. Bit i set means version i+1 is supported; the MSB of the first octet refers to bit 0.
The BGP-4 Received Path Attribute Table (bgp4PathAttrTable, { bgp 6 }) contains one entry per path to a network received from BGP-4 peers, indexed by { bgp4PathAttrIpAddrPrefix, bgp4PathAttrIpAddrPrefixLen, bgp4PathAttrPeer }.
The BGP Peer Table (bgpPeerTable, { bgp 3 }) contains one entry per BGP peer, indexed by bgpPeerRemoteAddr, tracking connection state, administrative status, negotiated version, local/remote address and port, AS number, message counters, error codes, FSM transition counts, and timer values.
The BGP4-MIB module is rooted at { mib-2 15 } and defines managed objects for controlling and monitoring BGP-4 implementations. It comprises scalar objects, the BGP Peer Table, the deprecated BGP Received Path Attribute Table (for BGP v3 or less), and the BGP-4 Received Path Attribute Table.
Two SNMP notifications are defined: bgpEstablished (sent when the BGP FSM enters ESTABLISHED state) and bgpBackwardTransition (sent when the FSM moves from a higher-numbered to a lower-numbered state). Both carry bgpPeerLastError and bgpPeerState as varbinds.
The RFC explicitly states that security issues are not discussed in this memo. However, the bgpPeerAdminStatus object (which can restart BGP peer connections) is noted as requiring care when providing write access without adequate authentication.
bgpPeerState models the BGP FSM with six states: idle(1), connect(2), active(3), opensent(4), openconfirm(5), established(6). The object is read-only and reflects the current connection state for each peer.
bgp4PathAttrASPathSegment is an OCTET STRING (2..255 octets) encoding AS path segments as triples: a 1-octet type (1=AS_SET, 2=AS_SEQUENCE), a 1-octet length (number of ASes), and value octets where each AS number is encoded as two octets (first-byte = ASNumber/256, second-byte = ASNumber & 255).