BGP Support for Four-Octet Autonomous System (AS) Number Space
obsoletes
- rfc-4893 — BGP Support for Four-octet AS Number Space
updates
- rfc-4271 — A Border Gateway Protocol 4 (BGP-4)
Extracted elements (28)
Representing non-mappable four-octet AS numbers as AS_TRANS in the two-octet AS_PATH preserves the path length property of AS path information, which is critical for routing policy evaluation and AS path loop detection across mixed OLD/NEW speaker environments.
The 'attribute discard' approach was chosen for malformed AS4_PATH and AS4_AGGREGATOR attributes rather than treating them as hard errors, because two-octet AS numbers dominate during the transition period and the AS_PATH attribute carried by OLD speakers remains the authoritative path source.
The extensions are designed to allow a gradual, piecemeal transition: an AS using a two-octet AS number can upgrade its BGP speakers incrementally without coordination. However, an AS wishing to adopt a four-octet AS number as its own must first upgrade all BGP speakers within the AS.
In environments where an AS with OLD BGP speakers peers with multiple ASes using AS_TRANS, the MULTI_EXIT_DISC attribute may influence route selection among routes received from different neighboring ASes in unintended ways, since the source AS identity is obscured by AS_TRANS.
Peering between a NEW BGP speaker and an OLD BGP speaker is possible only if the NEW BGP speaker has a two-octet AS number. When no globally unique two-octet AS number is available, AS_TRANS MUST be used, even if multiple Autonomous Systems would share it.
The BGP Communities attribute [RFC1997] encodes AS numbers in the high-order two octets and will not function correctly for NEW BGP speakers with non-mappable four-octet AS numbers. Such speakers should use four-octet AS specific extended communities [RFC5668] instead.
When routes with AS4_PATH are aggregated by an OLD BGP speaker, the AS4_PATH may be lost or result in valid but partial information that cannot be seamlessly combined, yielding incomplete AS path information. This incompleteness can create a routing loop risk in cases where the aggregated route is not less specific than all component routes.
A BGP speaker that supports four-octet AS numbers SHALL advertise this to its peers using BGP Capabilities Advertisements, and the speaker's AS number MUST be carried in the Capability Value field of the capability.
A NEW BGP speaker receiving a malformed AS4_PATH or AS4_AGGREGATOR attribute in an UPDATE message from an OLD BGP speaker MUST discard the attribute and continue processing the UPDATE message. The error SHOULD be logged locally for analysis.
AS_CONFED_SEQUENCE and AS_CONFED_SET path segments MUST NOT be included in the AS4_PATH attribute of an UPDATE message. A NEW BGP speaker receiving these types in the AS4_PATH attribute MUST discard those segments, adjust the relevant attribute fields, and continue processing.
Between two NEW BGP speakers, AS numbers MUST be encoded as four-octet entities in both AS_PATH and AGGREGATOR. AS4_PATH and AS4_AGGREGATOR MUST NOT be carried in UPDATE messages between NEW BGP speakers; if received, they MUST be discarded and UPDATE processing must continue.
If the AS number in the AGGREGATOR attribute is a non-mappable four-octet value, the NEW BGP speaker MUST use AS4_AGGREGATOR and set the AS number in AGGREGATOR to AS_TRANS. If the AS number is mappable, AS4_AGGREGATOR MUST NOT be sent.
To reconstruct AS path information when both AS_PATH and AS4_PATH are present: if AS_PATH has fewer AS numbers than AS4_PATH, AS4_PATH SHALL be ignored. Otherwise, construct the path by prepending leading segments from AS_PATH to AS4_PATH until the total AS number count equals that of AS_PATH.
When a NEW BGP speaker processes an OPEN message from another NEW BGP speaker, it MUST use the AS number encoded in the Capability Value field of the four-octet AS number capability in lieu of the 'My Autonomous System' field of the OPEN message.
When a NEW BGP speaker receives an AS4_PATH or AS4_AGGREGATOR attribute in an UPDATE from another NEW BGP speaker, it MUST discard the path attribute and continue processing. This case SHOULD be logged locally for analysis.
When a NEW BGP speaker receives both AS4_AGGREGATOR and AGGREGATOR from an OLD speaker: if AGGREGATOR's AS number is not AS_TRANS, then AS4_AGGREGATOR and AS4_PATH SHALL be ignored and AGGREGATOR/AS_PATH are authoritative. If AGGREGATOR's AS number is AS_TRANS, then AGGREGATOR SHALL be ignored and AS4_AGGREGATOR taken as the aggregating node.
When communicating with an OLD BGP speaker, a NEW BGP speaker MUST send AS path information in AS_PATH encoded with two-octet AS numbers (using AS_TRANS for non-mappable four-octet AS numbers), and MUST also send AS4_PATH unless all AS path information is composed solely of mappable four-octet AS numbers, in which case AS4_PATH MUST NOT be sent.
A new BGP capability, 'support for four-octet AS number capability' (Capability Code 65), is defined. The Capability Value field carries the speaker's AS number encoded as a four-octet entity, and the Capability Length field is set to 4.
AS_TRANS (23456) is a reserved two-octet AS number used to represent non-mappable four-octet AS numbers in AS path information encoded with two-octet AS numbers. It is also placed in the 'My Autonomous System' field of the OPEN message by a NEW BGP speaker that lacks a globally unique two-octet AS number.
AS4_AGGREGATOR is a new optional transitive BGP path attribute (type code 18) with the same semantics and encoding as the AGGREGATOR attribute, but carrying a four-octet AS number instead of a two-octet one.
AS4_PATH is a new optional transitive BGP path attribute (type code 17) with the same semantics and encoding as AS_PATH, but carrying four-octet AS numbers. It is used to propagate four-octet AS path information across OLD BGP speakers that do not support the extension.
IANA assigned BGP path attribute type code 17 to AS4_PATH and type code 18 to AS4_AGGREGATOR. IANA also updated the reference for reserved two-octet AS number AS_TRANS (23456) and the '32-bit Autonomous System Numbers' registry from RFC 4893 to RFC 6793.
IANA assigned Capability Code 65 to the 'support for four-octet AS number capability' per RFC 5492. The Autonomous System Numbers pool is expanded from 0-65535 to 0-4294967295 under the existing 'Autonomous System Numbers' registry.
Assigning a non-mappable four-octet AS number as a 'Member AS Number' in a BGP Confederation before all speakers in the Confederation have transitioned to four-octet support is a misconfiguration that weakens AS path loop detection within the Confederation.
Inconsistency between the AS_PATH attribute and the AS4_PATH attribute can cause loss of AS path information and potential routing loops, particularly when routes carrying AS4_PATH are aggregated by an OLD BGP speaker. This inconsistency could be exploited by an attacker to induce routing loops.
The AS4_AGGREGATOR attribute SHALL be considered malformed if its attribute length is not 8 (four-octet AS number plus four-octet IP address). A malformed AS4_AGGREGATOR MUST be discarded and the UPDATE message processing must continue.
The AS4_PATH attribute is malformed if: the attribute length is not a multiple of two or is less than 6; the path segment length is zero or inconsistent with the attribute length; or the path segment type is not one of AS_SEQUENCE, AS_SET, AS_CONFED_SEQUENCE, or AS_CONFED_SET.
The four-octet AS number capability carries the BGP speaker's AS number as a 4-octet entity in the Capability Value field; the Capability Length is set to 4. Between NEW BGP speakers, each AS number in AS_PATH and AGGREGATOR is encoded as a four-octet entity rather than the legacy two-octet encoding.