RFC 1657
Definitions of Managed Objects for the Fourth Version of the Border Gateway Protocol (BGP-4) using SMIv2
RFC 1657 π Definitions of Managed Objects for the Fourth Version of the Border Gateway Protocol (BGP-4) using SMIv2
okay bestie, the title block is giving main character energy π. This one is a Standards Track doc from July 1994, so it's an actual Internet standard and not just a vibe. It was written by S. Willis and J. Burruss from Wellfleet Communications Inc., and J. Chu, who is the editor, from IBM Corp. β¨ The header doesn't list any RFCs it obsoletes or updates, so it's standing on its own π¦
Status of This Memo π
this doc specifies an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements π«Ά for the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). distribution of this memo is unlimited, so share it with everyone πΈ
1. Introduction β¨
this memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. specifically, it describes managed objects used for managing the Border Gateway Protocol Version 4 or lower [1, 2] π
2. The SNMPv2 Network Management Framework π§
okay so the SNMPv2 Network Management Framework is built from four major components π here they are:
- RFC 1442, which defines the SMI, the mechanisms used for describing and naming objects for the purpose of management.
- STD 17, RFC 1213, which defines MIB-II, the core set of managed objects for the Internet suite of protocols.
- RFC 1445, which defines the administrative and other architectural aspects of the framework.
- RFC 1448, which defines the protocol used for network access to managed objects.
the Framework also lets new objects be defined for experimentation and evaluation, which is so iconic of it π₯
3. Object Definitions π
managed objects are accessed through a virtual information store called the Management Information Base, or MIB ποΈ objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) that's defined in the SMI. each object type gets named by an OBJECT IDENTIFIER, which is an administratively assigned name. the object type plus an object instance together uniquely identify one specific instantiation of the object π and since humans like short names, we often use a textual string called the descriptor to refer to the object type π
4. Overview π¦
these objects are used to control and manage a BGP-4 implementation, bestie π
apart from a few system-wide scalar objects, this MIB is broken into three tables β¨
- the BGP Peer Table, which has information about the state and current activity of connections with BGP peers π€
- the BGP Received Path Attribute Table, which has path attributes received from all peers running BGP version 3 or less π¦
- the BGP-4 Received Path Attribute Table, which has path attributes received from all BGP-4 peers πΈ
the attributes actually used when determining a route are a subset of the received attribute tables, but only after local routing policy has been applied. so the policy is the final filter, periodt π
5. Definitions π
okay, here's the actual MIB module, copied exactly because implementers are counting on every character π
BGP4-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
IpAddress, Integer32, Counter32, Gauge32
FROM SNMPv2-SMI
mib-2
FROM RFC1213-MIB;
bgp MODULE-IDENTITY
LAST-UPDATED "9405050000Z"
ORGANIZATION "IETF BGP Working Group"
CONTACT-INFO
" John Chu (Editor)
Postal: IBM Corp.
P.O.Box 218
Yorktown Heights, NY 10598
US
Tel: +1 914 945 3156
Fax: +1 914 945 2141
E-mail: jychu@watson.ibm.com"
DESCRIPTION
"The MIB module for BGP-4."
::= { mib-2 15 }
bgpVersion OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (1..255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Vector of supported BGP protocol version
numbers. Each peer negotiates the version
from this vector. Versions are identified
via the string of bits contained within this
object. The first octet contains bits 0 to
7, the second octet contains bits 8 to 15,
and so on, with the most significant bit
referring to the lowest bit number in the
octet (e.g., the MSB of the first octet
refers to bit 0). If a bit, i, is present
and set, then the version (i+1) of the BGP
is supported."
::= { bgp 1 }
bgpLocalAs OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The local autonomous system number."
::= { bgp 2 }
-- BGP Peer table. This table contains, one entry per
-- BGP peer, information about the BGP peer.
bgpPeerTable OBJECT-TYPE
SYNTAX SEQUENCE OF BgpPeerEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"BGP peer table. This table contains,
one entry per BGP peer, information about
the connections with BGP peers."
::= { bgp 3 }
bgpPeerEntry OBJECT-TYPE
SYNTAX BgpPeerEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Entry containing information about the
connection with a BGP peer."
INDEX { bgpPeerRemoteAddr }
::= { bgpPeerTable 1 }
BgpPeerEntry ::= SEQUENCE {
bgpPeerIdentifier
IpAddress,
bgpPeerState
INTEGER,
bgpPeerAdminStatus
INTEGER,
bgpPeerNegotiatedVersion
Integer32,
bgpPeerLocalAddr
IpAddress,
bgpPeerLocalPort
INTEGER,
bgpPeerRemoteAddr
IpAddress,
bgpPeerRemotePort
INTEGER,
bgpPeerRemoteAs
INTEGER,
bgpPeerInUpdates
Counter32,
bgpPeerOutUpdates
Counter32,
bgpPeerInTotalMessages
Counter32,
bgpPeerOutTotalMessages
Counter32,
bgpPeerLastError
OCTET STRING,
bgpPeerFsmEstablishedTransitions
Counter32,
bgpPeerFsmEstablishedTime
Gauge32,
bgpPeerConnectRetryInterval
INTEGER,
bgpPeerHoldTime
INTEGER,
bgpPeerKeepAlive
INTEGER,
bgpPeerHoldTimeConfigured
INTEGER,
bgpPeerKeepAliveConfigured
INTEGER,
bgpPeerMinASOriginationInterval
INTEGER,
bgpPeerMinRouteAdvertisementInterval
INTEGER,
bgpPeerInUpdateElapsedTime
Gauge32
}
bgpPeerIdentifier OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The BGP Identifier of this entry's BGP
peer."
::= { bgpPeerEntry 1 }
bgpPeerState OBJECT-TYPE
SYNTAX INTEGER {
idle(1),
connect(2),
active(3),
opensent(4),
openconfirm(5),
established(6)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The BGP peer connection state."
::= { bgpPeerEntry 2 }
bgpPeerAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
stop(1),
start(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The desired state of the BGP connection.
A transition from 'stop' to 'start' will
cause the BGP Start Event to be generated.
A transition from 'start' to 'stop' will
cause the BGP Stop Event to be generated.
This parameter can be used to restart BGP
peer connections. Care should be used in
providing write access to this object
without adequate authentication."
::= { bgpPeerEntry 3 }
bgpPeerNegotiatedVersion OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The negotiated version of BGP running
between the two peers."
::= { bgpPeerEntry 4 }
bgpPeerLocalAddr OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The local IP address of this entry's BGP
connection."
::= { bgpPeerEntry 5 }
bgpPeerLocalPort OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The local port for the TCP connection
between the BGP peers."
::= { bgpPeerEntry 6 }
part 1 of 4 is done π part 2 picks up the rest of the MIB definitions from here π
Okay, bestie, picking up right where we left off with the bgpPeerRemoteAddr object π Here's the BGP peer table's next batch of fields, and honestly the TCP-connection stuff is so clean π¦
Every object below gets its own little code block, copied exactly from the original so nothing gets lost in translation β¨
The remote IP address of this entry's BGP peer, the far end of the connection πΈ
bgpPeerRemoteAddr OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The remote IP address of this entry's BGP
peer."
::= { bgpPeerEntry 7 }
Now the remote port π This one is linked to the standard TCP connection table, so the four address and port objects work together as a set π«Ά
bgpPeerRemotePort OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The remote port for the TCP connection
between the BGP peers. Note that the
objects bgpPeerLocalAddr,
bgpPeerLocalPort, bgpPeerRemoteAddr and
bgpPeerRemotePort provide the appropriate
reference to the standard MIB TCP
connection table."
::= { bgpPeerEntry 8 }
The remote autonomous system number, aka who the peer is in AS terms π§
bgpPeerRemoteAs OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The remote autonomous system number."
::= { bgpPeerEntry 9 }
Next up are the message counters π Inbound UPDATE messages come first. These start at zero once the connection is established π¬
bgpPeerInUpdates OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of BGP UPDATE messages
received on this connection. This object
should be initialized to zero (0) when the
connection is established."
::= { bgpPeerEntry 10 }
Outbound UPDATE messages, the sent-side twin of the one above π Same deal: zeroed when the connection is established π
bgpPeerOutUpdates OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of BGP UPDATE messages
transmitted on this connection. This
object should be initialized to zero (0)
when the connection is established."
::= { bgpPeerEntry 11 }
Total messages received from the peer, not just UPDATEs. Also zeroed on connection setup β¨
bgpPeerInTotalMessages OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of messages received
from the remote peer on this connection.
This object should be initialized to zero
when the connection is established."
::= { bgpPeerEntry 12 }
And the outbound total, same energy but for messages sent to the peer π
bgpPeerOutTotalMessages OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of messages transmitted to
the remote peer on this connection. This
object should be initialized to zero when
the connection is established."
::= { bgpPeerEntry 13 }
Now the error log π This is a two-byte OCTET STRING. The first byte is the error code and the second byte is the subcode. If nothing has gone wrong, it's just zero π
bgpPeerLastError OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (2))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The last error code and subcode seen by this
peer on this connection. If no error has
occurred, this field is zero. Otherwise, the
first byte of this two byte OCTET STRING
contains the error code, and the second byte
contains the subcode."
::= { bgpPeerEntry 14 }
How many times the BGP FSM has moved into the established state, which is a whole vibe π₯
bgpPeerFsmEstablishedTransitions OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of times the BGP FSM
transitioned into the established state."
::= { bgpPeerEntry 15 }
The established timer π°οΈ It counts seconds that the peer has been in Established, or how long it's been since the peer was last there. It gets reset to zero when a new peer is configured or the router boots π
bgpPeerFsmEstablishedTime OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This timer indicates how long (in
seconds) this peer has been in the
Established state or how long
since this peer was last in the
Established state. It is set to zero when
a new peer is configured or the router is
booted."
::= { bgpPeerEntry 16 }
Time interval for the ConnectRetry timer, which is writable. The suggested value is 120 seconds πΈ
bgpPeerConnectRetryInterval OBJECT-TYPE
SYNTAX INTEGER (1..65535)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Time interval in seconds for the
ConnectRetry timer. The suggested value
for this timer is 120 seconds."
::= { bgpPeerEntry 17 }
The Hold Time that was agreed with the peer. This one's calculated, not configured. It uses the smaller of the configured value and the Hold Time received in the OPEN message. There are rules here about when it's zero and when it has to be at least three seconds π§
bgpPeerHoldTime OBJECT-TYPE
SYNTAX INTEGER ( 0 | 3..65535 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Time interval in seconds for the Hold
Timer established with the peer. The
value of this object is calculated by this
BGP speaker by using the smaller of the
value in bgpPeerHoldTimeConfigured and the
Hold Time received in the OPEN message.
This value must be at lease three seconds
if it is not zero (0) in which case the
Hold Timer has not been established with
the peer, or, the value of
bgpPeerHoldTimeConfigured is zero (0)."
::= { bgpPeerEntry 18 }
The KeepAlive timer that was agreed with the peer. It's calculated so it keeps the same proportion to the Hold Time as the configured KeepAlive does to the configured Hold Time π«§ A zero value means the KeepAlive timer isn't established, or the configured value is zero π
bgpPeerKeepAlive OBJECT-TYPE
SYNTAX INTEGER ( 0 | 1..21845 )
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Time interval in seconds for the KeepAlive
timer established with the peer. The value
of this object is calculated by this BGP
speaker such that, when compared with
bgpPeerHoldTime, it has the same
proportion as what
bgpPeerKeepAliveConfigured has when
compared with bgpPeerHoldTimeConfigured.
If the value of this object is zero (0),
it indicates that the KeepAlive timer has
not been established with the peer, or,
the value of bgpPeerKeepAliveConfigured is
zero (0)."
::= { bgpPeerEntry 19 }
The Hold Time you configure for this peer, which is writable. It gets sent in your OPEN message and gets compared with the peer's Hold Time to work out the real one. It can't be less than three seconds unless it's zero, and zero means the Hold Time doesn't get established with the peer. Suggested value is 90 seconds β°
bgpPeerHoldTimeConfigured OBJECT-TYPE
SYNTAX INTEGER ( 0 | 3..65535 )
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Time interval in seconds for the Hold Time
configured for this BGP speaker with this
peer. This value is placed in an OPEN
message sent to this peer by this BGP
speaker, and is compared with the Hold
Time field in an OPEN message received
from the peer when determining the Hold
Time (bgpPeerHoldTime) with the peer.
This value must not be less than three
seconds if it is not zero (0) in which
case the Hold Time is NOT to be
established with the peer. The suggested
value for this timer is 90 seconds."
::= { bgpPeerEntry 20 }
The configured KeepAlive value. This one doesn't set how often KEEPALIVE messages actually go out. It only sets their frequency relative to the configured Hold Time. The real interval is in bgpPeerKeepAlive. There's a reasonable max, which is one third of the configured Hold Time. Zero means no periodic KEEPALIVE messages get sent after the connection is up. The suggested value is 30 seconds πΌ
bgpPeerKeepAliveConfigured OBJECT-TYPE
SYNTAX INTEGER ( 0 | 1..21845 )
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Time interval in seconds for the
KeepAlive timer configured for this BGP
speaker with this peer. The value of this
object will only determine the
KEEPALIVE messages' frequency relative to
the value specified in
bgpPeerHoldTimeConfigured; the actual
time interval for the KEEPALIVE messages
is indicated by bgpPeerKeepAlive. A
reasonable maximum value for this timer
would be configured to be one
third of that of
bgpPeerHoldTimeConfigured.
If the value of this object is zero (0),
no periodical KEEPALIVE messages are sent
to the peer after the BGP connection has
been established. The suggested value for
this timer is 30 seconds."
::= { bgpPeerEntry 21 }
The MinASOriginationInterval timer, writable, with a suggested value of 15 seconds π«
bgpPeerMinASOriginationInterval OBJECT-TYPE
SYNTAX INTEGER (1..65535)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Time interval in seconds for the
MinASOriginationInterval timer.
The suggested value for this timer is 15
seconds."
::= { bgpPeerEntry 22 }
The MinRouteAdvertisementInterval timer, also writable, suggested at 30 seconds π£
bgpPeerMinRouteAdvertisementInterval OBJECT-TYPE
SYNTAX INTEGER (1..65535)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Time interval in seconds for the
MinRouteAdvertisementInterval timer.
The suggested value for this timer is 30
seconds."
::= { bgpPeerEntry 23 }
Last one in this batch, and it's a good one β³ It's how many seconds have passed since the last UPDATE came in from the peer. Every time bgpPeerInUpdates goes up, this resets to zero π
bgpPeerInUpdateElapsedTime OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Elapsed time in seconds since the last BGP
UPDATE message was received from the peer.
Each time bgpPeerInUpdates is incremented,
the value of this object is set to zero
(0)."
::= { bgpPeerEntry 24 }
Part 3 is coming up next, so stay tuned! ππ
okay so this is where the MIB gets really fun π the BGP identifier is up first, and then we get the old-school received path attribute table (deprecated, bye π₯) and the newer BGP-4 one that's giving main character π
bgpIdentifier OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The BGP Identifier of local system."
::= { bgp 4 }
-- Received Path Attribute Table. This table contains,
-- one entry per path to a network, path attributes
-- received from all peers running BGP version 3 or
-- less. This table is deprecated.
bgpRcvdPathAttrTable OBJECT-TYPE
SYNTAX SEQUENCE OF BgpPathAttrEntry
MAX-ACCESS not-accessible
STATUS obsolete
DESCRIPTION
"The BGP Received Path Attribute Table
contains information about paths to
destination networks received from all
peers running BGP version 3 or less."
::= { bgp 5 }
bgpPathAttrEntry OBJECT-TYPE
SYNTAX BgpPathAttrEntry
MAX-ACCESS not-accessible
STATUS obsolete
DESCRIPTION
"Information about a path to a network."
INDEX { bgpPathAttrDestNetwork,
bgpPathAttrPeer }
::= { bgpRcvdPathAttrTable 1 }
BgpPathAttrEntry ::= SEQUENCE {
bgpPathAttrPeer
IpAddress,
bgpPathAttrDestNetwork
IpAddress,
bgpPathAttrOrigin
INTEGER,
bgpPathAttrASPath
OCTET STRING,
bgpPathAttrNextHop
IpAddress,
bgpPathAttrInterASMetric
Integer32
}
bgpPathAttrPeer OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS obsolete
DESCRIPTION
"The IP address of the peer where the path
information was learned."
::= { bgpPathAttrEntry 1 }
bgpPathAttrDestNetwork OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS obsolete
DESCRIPTION
"The address of the destination network."
::= { bgpPathAttrEntry 2 }
bgpPathAttrOrigin OBJECT-TYPE
SYNTAX INTEGER {
igp(1),-- networks are interior
egp(2),-- networks learned via EGP
incomplete(3) -- undetermined
}
MAX-ACCESS read-only
STATUS obsolete
DESCRIPTION
"The ultimate origin of the path information."
::= { bgpPathAttrEntry 3 }
bgpPathAttrASPath OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (2..255))
MAX-ACCESS read-only
STATUS obsolete
DESCRIPTION
"The set of ASs that must be traversed to
reach the network. This object is
probably best represented as SEQUENCE OF
INTEGER. For SMI compatibility, though,
it is represented as OCTET STRING. Each
AS is represented as a pair of octets
according to the following algorithm:
first-byte-of-pair = ASNumber / 256;
second-byte-of-pair = ASNumber & 255;"
::= { bgpPathAttrEntry 4 }
bgpPathAttrNextHop OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS obsolete
DESCRIPTION
"The address of the border router that
should be used for the destination
network."
::= { bgpPathAttrEntry 5 }
bgpPathAttrInterASMetric OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS obsolete
DESCRIPTION
"The optional inter-AS metric. If this
attribute has not been provided for this
route, the value for this object is 0."
::= { bgpPathAttrEntry 6 }
-- BGP-4 Received Path Attribute Table. This table
-- contains, one entry per path to a network, path
-- attributes received from all peers running BGP-4.
bgp4PathAttrTable OBJECT-TYPE
SYNTAX SEQUENCE OF Bgp4PathAttrEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The BGP-4 Received Path Attribute Table
contains information about paths to
destination networks received from all
BGP4 peers."
::= { bgp 6 }
bgp4PathAttrEntry OBJECT-TYPE
SYNTAX Bgp4PathAttrEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information about a path to a network."
INDEX { bgp4PathAttrIpAddrPrefix,
bgp4PathAttrIpAddrPrefixLen,
bgp4PathAttrPeer }
::= { bgp4PathAttrTable 1 }
Bgp4PathAttrEntry ::= SEQUENCE {
bgp4PathAttrPeer
IpAddress,
bgp4PathAttrIpAddrPrefixLen
INTEGER,
bgp4PathAttrIpAddrPrefix
IpAddress,
bgp4PathAttrOrigin
INTEGER,
bgp4PathAttrASPathSegment
OCTET STRING,
bgp4PathAttrNextHop
IpAddress,
bgp4PathAttrMultiExitDisc
INTEGER,
bgp4PathAttrLocalPref
INTEGER,
bgp4PathAttrAtomicAggregate
INTEGER,
bgp4PathAttrAggregatorAS
INTEGER,
bgp4PathAttrAggregatorAddr
IpAddress,
bgp4PathAttrCalcLocalPref
INTEGER,
bgp4PathAttrBest
INTEGER,
bgp4PathAttrUnknown
OCTET STRING
}
bgp4PathAttrPeer OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The IP address of the peer where the path
information was learned."
::= { bgp4PathAttrEntry 1 }
bgp4PathAttrIpAddrPrefixLen OBJECT-TYPE
SYNTAX INTEGER (0..32)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Length in bits of the IP address prefix
in the Network Layer Reachability
Information field."
::= { bgp4PathAttrEntry 2 }
bgp4PathAttrIpAddrPrefix OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"An IP address prefix in the Network Layer
Reachability Information field. This object
is an IP address containing the prefix with
length specified by
bgp4PathAttrIpAddrPrefixLen.
Any bits beyond the length specified by
bgp4PathAttrIpAddrPrefixLen are zeroed."
::= { bgp4PathAttrEntry 3 }
bgp4PathAttrOrigin OBJECT-TYPE
SYNTAX INTEGER {
igp(1),-- networks are interior
egp(2),-- networks learned
-- via EGP
incomplete(3) -- undetermined
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The ultimate origin of the path
information."
::= { bgp4PathAttrEntry 4 }
bgp4PathAttrASPathSegment OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (2..255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The sequence of AS path segments. Each AS
path segment is represented by a triple
<type, length, value>.
The type is a 1-octet field which has two
possible values:
1 AS_SET: unordered set of ASs a
route in the UPDATE
message has traversed
2 AS_SEQUENCE: ordered set of ASs
a route in the UPDATE
message has traversed.
The length is a 1-octet field containing the
number of ASs in the value field.
The value field contains one or more AS
numbers, each AS is represented in the octet
string as a pair of octets according to the
following algorithm:
first-byte-of-pair = ASNumber / 256;
second-byte-of-pair = ASNumber & 255;"
::= { bgp4PathAttrEntry 5 }
bgp4PathAttrNextHop OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The address of the border router that
should be used for the destination
network."
::= { bgp4PathAttrEntry 6 }
bgp4PathAttrMultiExitDisc OBJECT-TYPE
SYNTAX INTEGER (-1..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This metric is used to discriminate
between multiple exit points to an
adjacent autonomous system. A value of -1
indicates the absence of this attribute."
::= { bgp4PathAttrEntry 7 }
bgp4PathAttrLocalPref OBJECT-TYPE
SYNTAX INTEGER (-1..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The originating BGP4 speaker's degree of
preference for an advertised route. A
value of -1 indicates the absence of this
attribute."
::= { bgp4PathAttrEntry 8 }
bgp4PathAttrAtomicAggregate OBJECT-TYPE
SYNTAX INTEGER {
lessSpecificRrouteNotSelected(1),
lessSpecificRouteSelected(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Whether or not the local system has
selected a less specific route without
selecting a more specific route."
::= { bgp4PathAttrEntry 9 }
bgp4PathAttrAggregatorAS OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The AS number of the last BGP4 speaker that
performed route aggregation. A value of
zero (0) indicates the absence of this
attribute."
::= { bgp4PathAttrEntry 10 }
bgp4PathAttrAggregatorAddr OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The IP address of the last BGP4 speaker
that performed route aggregation. A value
of 0.0.0.0 indicates the absence of this
attribute."
::= { bgp4PathAttrEntry 11 }
bgp4PathAttrCalcLocalPref OBJECT-TYPE
SYNTAX INTEGER (-1..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The degree of preference calculated by the
receiving BGP4 speaker for an advertised
route. A value of -1 indicates the
absence of this attribute."
::= { bgp4PathAttrEntry 12 }
bgp4PathAttrBest OBJECT-TYPE
SYNTAX INTEGER {
false(1),-- not chosen as best route
true(2) -- chosen as best route
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"An indication of whether or not this route
was chosen as the best BGP4 route."
::= { bgp4PathAttrEntry 13 }
bgp4PathAttrUnknown OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(0..255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"One or more path attributes not understood
by this BGP4 speaker. Size zero (0)
indicates the absence of such
attribute(s). Octets beyond the maximum
size, if any, are not recorded by this
object."
::= { bgp4PathAttrEntry 14 }
-- Traps.
bgpTraps OBJECT IDENTIFIER ::= { bgp 7 }
bgpEstablished NOTIFICATION-TYPE
OBJECTS { bgpPeerLastError,
bgpPeerState }
STATUS current
DESCRIPTION
"The BGP Established event is generated when
the BGP FSM enters the ESTABLISHED state."
::= { bgpTraps 1 }
bgpBackwardTransition NOTIFICATION-TYPE
OBJECTS { bgpPeerLastError,
bgpPeerState }
STATUS current
DESCRIPTION
"The BGPBackwardTransition Event is generated
when the BGP FSM moves from a higher numbered
state to a lower numbered state."
::= { bgpTraps 2 }
END
6. Acknowledgements π
Huge shoutout to everyone in the Interconnectivity Working Group for helping out, and especially these legends:
Yakov Rekhter, IBM
Rob Coltun, University of Maryland
Guy Almes, ANS
Jeff Honig, Cornell Theory Center
Marshall T. Rose, Dover Beach Consulting, Inc.
Dennis Ferguson, ANS
Mike Mathis, PSC
John Krawczyk, Wellfleet Communications Inc.
Curtis Villamizar, ANS
Dave LeRoy, Pencom Systems
Paul Traina, cisco Systems
Andrew Partan, UUNET
Robert Snyder, cisco Systems
Dimitry Haskin, Wellfleet Communications Inc.
Peder Chr Norgaard, Telebit Communications A/S
Joel Halpern, Network Systems Corporation
7. References π
These are the two RFCs this one leans on, and yes, you need to read them π€
[1] Rekhter, Y., and T. Li, "A Border Gateway Protocol 4 (BGP-4)",
RFC 1654, T.J. Watson Research Center, IBM Corp., cisco Systems,
July 1994.
[2] Rekhter, Y., and P. Gross, Editors, "Application of the Border
Gateway Protocol in the Internet", RFC 1655 T.J. Watson Research
Center, IBM Corp., MCI, July 1994.
8. Security Considerations π
Security issues are not discussed in this memo. Zero. None. Nada. π This one is a no-go zone for security talk, so don't go looking for it here π«£
9. Authors' Addresses π
Here are the brains behind it, with their addresses and contact info so you can slide into their inbox π
Steven Willis
Wellfleet Communications Inc.
15 Crosby Drive
Bedford, MA 01730
Phone: (617) 275-2400
EMail: swillis@wellfleet.com
John Burruss
Wellfleet Communications Inc.
15 Crosby Drive
Bedford, MA 01730
Phone: (617) 275-2400
EMail: jburruss@wellfleet.com
John Chu
IBM Corp.
P.O.Box 218
Yorktown Heights, NY 10598
Phone: (914) 945-3156
EMail: jychu@watson.ibm.com
That's the whole MIB, bestie! πβ¨ You made it through every single bit π
π¦ where this page comes from
- ietf: rfc1657 1994-07
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms