rfc9774.original   rfc9774.txt 
Network Working Group W. Kumari Internet Engineering Task Force (IETF) W. Kumari
Internet-Draft Google, Inc. Request for Comments: 9774 Google, Inc.
Obsoletes: 6472 (if approved) K. Sriram Obsoletes: 6472 K. Sriram
Updates: 4271 5065 (if approved) L. Hannachi Updates: 4271, 5065 L. Hannachi
Intended status: Standards Track USA NIST Category: Standards Track USA NIST
Expires: 8 September 2025 J. Haas ISSN: 2070-1721 J. Haas
Juniper Networks, Inc. Juniper Networks, Inc.
7 March 2025 May 2025
Deprecation of AS_SET and AS_CONFED_SET in BGP Deprecation of AS_SET and AS_CONFED_SET in BGP
draft-ietf-idr-deprecate-as-set-confed-set-18
Abstract Abstract
BCP 172 (i.e., RFC 6472) recommends not using AS_SET and BCP 172 (i.e., RFC 6472) recommends not using AS_SET and
AS_CONFED_SET AS_PATH segment types in the Border Gateway Protocol AS_CONFED_SET AS_PATH segment types in the Border Gateway Protocol
(BGP). This document advances that recommendation to a standards (BGP). This document advances that recommendation to a standards
requirement in BGP; it prohibits the use of the AS_SET and requirement in BGP; it prohibits the use of the AS_SET and
AS_CONFED_SET path segment types in the AS_PATH. This is done to AS_CONFED_SET path segment types in the AS_PATH. This is done to
simplify the design and implementation of BGP and to make the simplify the design and implementation of BGP and to make the
semantics of the originator of a BGP route clearer. This will also semantics of the originator of a BGP route clearer. This will also
simplify the design, implementation, and deployment of various BGP simplify the design, implementation, and deployment of various BGP
security mechanisms. This document updates RFC 4271 by deprecating security mechanisms. This document updates RFC 4271 by deprecating
the origination of BGP routes with AS_SET (Type 1 AS_PATH segment) the origination of BGP routes with AS_SET (Type 1 AS_PATH segment)
and updates RFC 5065 by deprecating the origination of BGP routes and updates RFC 5065 by deprecating the origination of BGP routes
with AS_CONFED_SET (Type 4 AS_PATH segment). Finally, it obsoletes with AS_CONFED_SET (Type 4 AS_PATH segment). Finally, it obsoletes
RFC 6472. RFC 6472.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on 8 September 2025. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9774.
Copyright Notice Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 2. Requirements Language
3. Updates to the Requirements of RFC 4271 and RFC 5065 . . . . 4 3. Updates to the Requirements of RFCs 4271 and 5065
4. Treatment of Routes with AS_SET in RPKI-based BGP Security . 4 4. Treatment of Routes with AS_SET in RPKI-Based BGP Security
5. BGP AS_PATH "Brief" Aggregation . . . . . . . . . . . . . . . 4 5. BGP AS_PATH "Brief" Aggregation
5.1. Issues with "Brief" AS_PATH Aggregation and RPKI-ROV . . 5 5.1. Issues with "Brief" AS_PATH Aggregation and RPKI-ROV
5.2. Recommendations to Mitigate Unpredictable AS_PATH Origins 5.2. Recommendations to Mitigate Unpredictable AS_PATH Origins
for RPKI-ROV Purposes . . . . . . . . . . . . . . . . . . 6 for RPKI-ROV Purposes
6. Operational Considerations . . . . . . . . . . . . . . . . . 6 6. Operational Considerations
6.1. Implementing Consistent Brief Aggregation . . . . . . . . 6 6.1. Implementing Consistent Brief Aggregation
6.2. Not Advertising Aggregate Routes to Contributing ASes . . 6 6.2. Not Advertising Aggregate Routes to Contributing ASes
6.3. Mitigating Forwarding Loops . . . . . . . . . . . . . . . 6 6.3. Mitigating Forwarding Loops
7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 7. Security Considerations
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 8. IANA Considerations
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 9. References
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 9.1. Normative References
10.1. Normative References . . . . . . . . . . . . . . . . . . 7 9.2. Informative References
10.2. Informative References . . . . . . . . . . . . . . . . . 8
Appendix A. Example of Route Filtering for Aggregate Routes and Appendix A. Example of Route Filtering for Aggregate Routes and
their Contributors . . . . . . . . . . . . . . . . . . . 10 Their Contributors
Appendix B. Examples of Consistent and Inconsistent BGP Origin-AS Appendix B. Examples of Consistent and Inconsistent BGP Origin AS
Generated by Traditional Brief Aggregation . . . . . . . 11 Generated by Traditional Brief Aggregation
B.1. Scenario 1: First one route, then another, each with a B.1. Scenario 1: First one route, then another, each with a
fully disjoint AS_PATH . . . . . . . . . . . . . . . . . 12 fully disjoint AS_PATH
B.2. Scenario 2: First one route, then another, the AS_PATHs B.2. Scenario 2: First one route, then another, and the AS_PATHs
overlap at the origin AS. . . . . . . . . . . . . . . . . 13 overlap at the origin AS
B.3. Scenario 3: First one route, then another, the AS_PATHs B.3. Scenario 3: First one route, then another, and the AS_PATHs
overlap at the neighbor AS . . . . . . . . . . . . . . . 13 overlap at the neighbor AS
B.4. Achieving Consistent Origin-AS During Aggregation . . . . 13 B.4. Achieving Consistent Origin AS During Aggregation
Appendix C. Discussion on Forwarding Loops and AS_SETs . . . . . 14 Appendix C. Discussion on Forwarding Loops and AS_SETs
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 Acknowledgements
Authors' Addresses
1. Introduction 1. Introduction
BCP 172 [RFC6472] makes a recommendation for not using AS_SET (see BCP 172 [RFC6472] recommends not using AS_SET [RFC4271] and
[RFC4271]) and AS_CONFED_SET (see [RFC5065]) AS_PATH path segment AS_CONFED_SET [RFC5065] AS_PATH path segment types in the Border
types in the Border Gateway Protocol (BGP). This document advances Gateway Protocol (BGP). This document advances the BCP
the BCP recommendation to a standards requirement in BGP; it recommendation to a standards requirement in BGP; it prohibits the
prohibits the use of the AS_SET and AS_CONFED_SET types of path use of the AS_SET and AS_CONFED_SET types of path segments in the
segments in the AS_PATH. The purpose is to simplify the design and AS_PATH. The purpose is to simplify the design and implementation of
implementation of BGP and to make the semantics of the originator of BGP and to make the semantics of the originator of a BGP route
a BGP route clearer. This will also simplify the design, clearer. This will also simplify the design, implementation, and
implementation, and deployment of various BGP security mechanisms. deployment of various BGP security mechanisms. In particular, the
In particular, the prohibition of AS_SETs and AS_CONFED_SETs removes prohibition of AS_SETs and AS_CONFED_SETs removes any ambiguity about
the possibility of ambiguity about origin AS in RPKI-based route the origin AS in RPKI-based Route Origin Validation (RPKI-ROV)
origin validation (RPKI-ROV) [RFC6811] [RFC6907] [RFC9319]. [RFC6811] [RFC6907] [RFC9319].
The AS_SET path segment in the AS_PATH attribute (Sections 4.3 and The AS_SET path segment in the AS_PATH attribute (Sections 4.3 and
5.1.2 of [RFC4271]) is created by a router that is performing route 5.1.2 of [RFC4271]) is created by a router that is performing route
aggregation and contains an unordered set of Autonomous Systems aggregation and contains an unordered set of Autonomous Systems
(ASes) that contributing prefixes in the aggregate have traversed. (ASes) that contributing prefixes in the aggregate have traversed.
The AS_CONFED_SET path segment (see [RFC5065]) in the AS_PATH The AS_CONFED_SET path segment [RFC5065] in the AS_PATH attribute is
attribute is created by a router that is performing route aggregation created by a router that is performing route aggregation and contains
and contains an unordered set of Member AS Numbers in the local an unordered set of Member AS Numbers in the local confederation that
confederation that contributing prefixes in the aggregate have contributing prefixes in the aggregate have traversed. It is very
traversed. It is very similar to an AS_SET but is used within a similar to an AS_SET but is used within a confederation.
confederation.
By performing aggregation, a router is combining multiple BGP routes By performing aggregation, a router is combining multiple BGP routes
for more specific destinations into a new route for a less specific for more specific destinations into a new route for a less specific
destination ([RFC4271], Section 9.1.2.2.). Aggregation may blur the destination (see [RFC4271], Section 9.1.2.2). Aggregation may blur
semantics of the origin AS for the prefix being announced by the semantics of the origin AS for the prefix being announced by
producing an AS_SET or AS_CONFED_SET. Such sets can cause producing an AS_SET or AS_CONFED_SET. Such sets can cause
operational issues, such as not being able to authenticate a route operational issues, such as not being able to authenticate a route
origin for the aggregate prefix in new BGP security technologies such origin for the aggregate prefix in new BGP security technologies such
as those that take advantage of X.509 extensions for IP addresses and as those that take advantage of X.509 extensions for IP addresses and
AS identifiers ([RFC6480], [RFC6811], [RFC6907], [RFC8205], AS identifiers (see [RFC6480], [RFC6811], [RFC6907], [RFC8205], and
[RFC9319]). This could result in reachability problems for the [RFC9319]). This could result in reachability problems for the
destinations covered by the aggregated prefix. destinations covered by the aggregated prefix.
From analysis of historical Internet routing data, it is apparent From analysis of historical Internet routing data, it is apparent
that aggregation that involves AS_SETs is very seldom used in that aggregation that involves AS_SETs is very seldom used in
practice on the public Internet (see [Analysis]). When it is used, practice on the public Internet (see [Analysis]). When it is used,
it is often used incorrectly; only a single AS in the AS_SET is the it is often used incorrectly; only a single AS in the AS_SET is the
most common case [Analysis]. Also, very often the same AS appears in most common case [Analysis]. Also, very often the same AS appears in
the AS_SEQUENCE and the AS_SET in the BGP update. The occurrence of the AS_SEQUENCE and the AS_SET in the BGP update. The occurrence of
reserved AS numbers ([IANA-SP-ASN]) is also somewhat frequent. reserved AS numbers [IANA-SP-ASN] is also somewhat frequent.
2. Requirements Language 2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in
14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
3. Updates to the Requirements of RFC 4271 and RFC 5065 3. Updates to the Requirements of RFCs 4271 and 5065
Unless explicitly configured by a network operator to do otherwise Unless explicitly configured by a network operator to do otherwise
(e.g., during a transition phase), BGP speakers: (e.g., during a transition phase), BGP speakers:
* MUST NOT advertise BGP UPDATE messages containing AS_SETs or * MUST NOT advertise BGP UPDATE messages containing AS_SETs or
AS_CONFED_SETs, and AS_CONFED_SETs and
* Upon reception of BGP UPDATE messages containing AS_SETs or * MUST use the "treat-as-withdraw" error handling behavior per
AS_CONFED_SETs in the AS_PATH or AS4_PATH [RFC6793], MUST use the [RFC7606] upon reception of BGP UPDATE messages containing AS_SETs
"treat-as-withdraw" error handling behavior as per [RFC7606]. or AS_CONFED_SETs in the AS_PATH or AS4_PATH [RFC6793].
Per above specifications, this document updates RFC 4271 and RFC 5065 Per the above specifications, this document updates [RFC4271] and
by deprecating AS_SET (see [RFC4271], Section 4.3) and AS_CONFED_SET [RFC5065] by deprecating AS_SET (see [RFC4271], Section 4.3) and
(see [RFC5065], Section 3), respectively. AS_CONFED_SET (see [RFC5065], Section 3), respectively.
4. Treatment of Routes with AS_SET in RPKI-based BGP Security 4. Treatment of Routes with AS_SET in RPKI-Based BGP Security
Resource Public Key Infrastructure (RPKI) [RFC6480] uses X.509 Resource Public Key Infrastructure (RPKI) [RFC6480] uses X.509
extensions for IP addresses and AS identifiers [RFC3779]. RPKI-based extensions for IP addresses and AS identifiers [RFC3779]. RPKI-ROV
Route Origin Validation (ROV) [RFC6811] [RFC6907] is a BGP security [RFC6811] [RFC6907] is a BGP security technology that never allows a
technology that never allows a route with AS_SET to be considered route with AS_SET to be considered Valid. BGPsec [RFC8205] and
Valid. BGPsec [RFC8205] and Autonomous System Provider Authorization Autonomous System Provider Authorization (ASPA) [ASPA-VERIFICATION]
(ASPA) [I-D.ietf-sidrops-aspa-verification] are also BGP security are also BGP security technologies based on RPKI. BGPsec does not
technologies based on RPKI. BGPsec does not support AS_SETs. In support AS_SETs. In ASPA-based AS_PATH verification, a route with
ASPA-based AS_PATH verification, a route with AS_SET is always AS_SET is always considered Invalid and hence ineligible for route
considered Invalid and hence ineligible for route selection. selection.
5. BGP AS_PATH "Brief" Aggregation 5. BGP AS_PATH "Brief" Aggregation
Sections 9.1.4 and 9.2.2.2 of [RFC4271] describe BGP aggregation Sections 9.1.4 and 9.2.2.2 of [RFC4271] describe BGP aggregation
procedures. Appendix F.6 in [RFC4271] describes a generally less procedures. Appendix F.6 of [RFC4271] describes a generally less
utilized "Complex AS_PATH Aggregation" procedure. utilized "Complex AS_PATH Aggregation" procedure.
[RFC4271], Section 5.1.6, describing the ATOMIC_AGGREGATE Path [RFC4271], Section 5.1.6 describes the ATOMIC_AGGREGATE Path
Attribute, notes that: Attribute and notes that:
| When a BGP speaker aggregates several routes for the purpose of | When a BGP speaker aggregates several routes for the purpose of
| advertisement to a particular peer, the AS_PATH of the aggregated | advertisement to a particular peer, the AS_PATH of the aggregated
| route normally includes an AS_SET formed from the set of ASes from | route normally includes an AS_SET formed from the set of ASes from
| which the aggregate was formed. In many cases, the network | which the aggregate was formed. In many cases, the network
| administrator can determine if the aggregate can safely be | administrator can determine if the aggregate can safely be
| advertised without the AS_SET, and without forming route loops. | advertised without the AS_SET, and without forming route loops.
| |
| If an aggregate excludes at least some of the AS numbers present | If an aggregate excludes at least some of the AS numbers present
| in the AS_PATH of the routes that are aggregated as a result of | in the AS_PATH of the routes that are aggregated as a result of
| dropping the AS_SET, the aggregated route, when advertised to the | dropping the AS_SET, the aggregated route, when advertised to the
| peer, SHOULD include the ATOMIC_AGGREGATE attribute. | peer, SHOULD include the ATOMIC_AGGREGATE attribute.
When BGP AS_PATH aggregation is done according to the [RFC4271], When BGP AS_PATH aggregation is done according to the procedures in
Section 9.2.2.2 procedures, and any resulting AS_SETs are discarded, [RFC4271], Section 9.2.2.2, and any resulting AS_SETs are discarded,
this is typically referred to as "brief" aggregation in it is typically referred to as "brief" aggregation in
implementations. Brief aggregation results in an AS_PATH that has implementations. Brief aggregation results in an AS_PATH that has
the property (from [RFC4271], Section 9.2.2.2): the property (from [RFC4271], Section 9.2.2.2):
| determine the longest leading sequence of tuples (as defined | [D]etermine the longest leading sequence of tuples (as defined
| above) common to all the AS_PATH attributes of the routes to be | above) common to all the AS_PATH attributes of the routes to be
| aggregated. Make this sequence the leading sequence of the | aggregated. Make this sequence the leading sequence of the
| aggregated AS_PATH attribute. | aggregated AS_PATH attribute.
The ATOMIC_AGGREGATE Path Attribute is subsequently attached to the The ATOMIC_AGGREGATE Path Attribute is subsequently attached to the
BGP route, if AS_SETs are dropped. BGP route, if AS_SETs are dropped.
5.1. Issues with "Brief" AS_PATH Aggregation and RPKI-ROV 5.1. Issues with "Brief" AS_PATH Aggregation and RPKI-ROV
While brief AS_PATH aggregation has the desirable property of not While brief AS_PATH aggregation has the desirable property of not
containing AS_SETs, the resulting aggregated AS_PATH may contain an containing AS_SETs, the resulting aggregated AS_PATH may contain an
unpredictable origin AS. This is because the aggregating AS may be unpredictable origin AS. This is because the aggregating AS may be
different from the purported origin AS (for the aggregate), which may different from the purported origin AS (for the aggregate), which may
vary as explained below. Such an unpredictable origin ASes may vary as explained below. Such unpredictable origin ASes may result
result in RPKI-ROV validation issues: in RPKI-ROV validation issues:
* Depending on the contributing routes to the aggregate route, the * Depending on the contributing routes to the aggregate route, the
resulting origin AS may vary. resulting origin AS may vary.
* The presence of expected contributing routes may be unpredictable * The presence of expected contributing routes may be unpredictable
due to route availability from BGP neighbors. due to route availability from BGP neighbors.
* In the presence of such varying origin ASes, it would be necessary * In the presence of such varying origin ASes, it would be necessary
for the resource holder to register Route Origin Authorizations for the resource holder to register ROAs [RFC9582] for each
(ROAs) [RFC9582] for each potential origin AS that may result from potential origin AS that may result from the expected aggregated
the expected aggregated AS_PATHs. AS_PATHs.
5.2. Recommendations to Mitigate Unpredictable AS_PATH Origins for 5.2. Recommendations to Mitigate Unpredictable AS_PATH Origins for
RPKI-ROV Purposes RPKI-ROV Purposes
To ensure a consistent BGP origin AS is announced for aggregate BGP To ensure a consistent BGP origin AS is announced for aggregate BGP
routes for implementations of "brief" BGP aggregation, the routes for implementations of "brief" BGP aggregation, the
implementation MUST be configured to truncate the AS_PATH after the implementation MUST be configured to truncate the AS_PATH after the
right-most instance of the desired origin AS for the aggregate. The right-most instance of the desired origin AS for the aggregate. The
desired origin AS could be the aggregating AS itself. A ROA would be desired origin AS could be the aggregating AS itself. A ROA would be
necessary for the aggregate prefix with the desired origin AS. necessary for the aggregate prefix with the desired origin AS.
skipping to change at page 6, line 50 skipping to change at line 274
6.2. Not Advertising Aggregate Routes to Contributing ASes 6.2. Not Advertising Aggregate Routes to Contributing ASes
An aggregate prefix SHOULD NOT be announced to the contributing ASes. An aggregate prefix SHOULD NOT be announced to the contributing ASes.
Instead, more specific prefixes (from the aggregate) SHOULD be Instead, more specific prefixes (from the aggregate) SHOULD be
announced to each contributing AS, excluding any that were learned announced to each contributing AS, excluding any that were learned
from the contributing AS in consideration. See Appendix A for an from the contributing AS in consideration. See Appendix A for an
example of this filtering policy. example of this filtering policy.
6.3. Mitigating Forwarding Loops 6.3. Mitigating Forwarding Loops
As discussed in Section 5.1 of [RFC4632], the presence of both less When both less specific and more specific destinations are present,
specific and more specific destinations has the possibility to create it's possible to create forwarding loops between networks, as
forwarding loops between networks. discussed in Section 5.1 of [RFC4632].
As a reminder, Rule #2 of Section 5.1 of [RFC4632] requires that BGP As a reminder, Rule #2 in Section 5.1 of [RFC4632] requires that BGP
implementations performing aggregation discard packets that match the implementations performing aggregation discard packets that match the
aggregate route but do not match any of the more-specific routes. aggregate route but do not match any of the more specific routes.
Further discussion of forwarding loops and their relationship to Further discussion of forwarding loops and their relationship to
AS_SETs can be found in Appendix C. AS_SETs can be found in Appendix C.
7. Security Considerations 7. Security Considerations
This document deprecates the use of aggregation techniques that This document deprecates the use of aggregation techniques that
create AS_SETs or AS_CONFED_SETs. Obsoleting these path segment create AS_SETs or AS_CONFED_SETs. Obsoleting these path segment
types from BGP and removal of the related code from implementations types from BGP and the removal of the related code from
would potentially decrease the attack surface for BGP. Deployments implementations would potentially decrease the attack surface for
of new BGP security technologies (e.g., [RFC6480], [RFC6811], BGP. Deployments of new BGP security technologies (e.g., [RFC6480],
[RFC8205]) benefit greatly if AS_SETs and AS_CONFED_SETs are not used [RFC6811], and [RFC8205]) benefit greatly if AS_SETs and
in BGP. AS_CONFED_SETs are not used in BGP.
8. IANA Considerations 8. IANA Considerations
This document requires no IANA actions. This document has no IANA actions.
9. Acknowledgements
The authors would like to thank Alvaro Retana, John Scudder, Ketan
Talaulikar, Keyur Patel, Susan Hares, Claudio Jeker, Nick Hilliard,
Robert Raszuk, John Heasley, Job Snijders, Jared Mauch, Jakob Heitz,
Tony Przygienda, Douglas Montgomery, Randy Bush, Curtis Villamizar,
Danny McPherson, Chris Morrow, Tom Petch, Ilya Varlashkin, Enke Chen,
Tony Li, Florian Weimer, John Leslie, Paul Jakma, Rob Austein, Russ
Housley, Sandra Murphy, Steve Bellovin, Steve Kent, Steve Padgett,
and Alfred Hoenes for comments and suggestions. The comments and
suggestions received from the IESG reviewers are also much
appreciated.
10. References 9. References
10.1. Normative References 9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
Border Gateway Protocol 4 (BGP-4)", RFC 4271, Border Gateway Protocol 4 (BGP-4)", RFC 4271,
DOI 10.17487/RFC4271, January 2006, DOI 10.17487/RFC4271, January 2006,
<https://www.rfc-editor.org/info/rfc4271>. <https://www.rfc-editor.org/info/rfc4271>.
skipping to change at page 8, line 34 skipping to change at line 342
[RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K.
Patel, "Revised Error Handling for BGP UPDATE Messages", Patel, "Revised Error Handling for BGP UPDATE Messages",
RFC 7606, DOI 10.17487/RFC7606, August 2015, RFC 7606, DOI 10.17487/RFC7606, August 2015,
<https://www.rfc-editor.org/info/rfc7606>. <https://www.rfc-editor.org/info/rfc7606>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
10.2. Informative References 9.2. Informative References
[Analysis] Hannachi, L. and K. Sriram, "Detailed analysis of AS_SETs [Analysis] "Detailed analysis of AS_SETs in BGP updates", commit
in BGP updates", NIST Robust Inter-domain Routing Project eb0fc22, March 2022,
Website , October 2019,
<https://github.com/ksriram25/IETF/blob/main/Detailed- <https://github.com/ksriram25/IETF/blob/main/Detailed-
AS_SET-analysis.txt>. AS_SET-analysis.txt>.
[I-D.ietf-sidrops-aspa-verification] [ASPA-VERIFICATION]
Azimov, A., Bogomazov, E., Bush, R., Patel, K., Snijders, Azimov, A., Bogomazov, E., Bush, R., Patel, K., Snijders,
J., and K. Sriram, "BGP AS_PATH Verification Based on J., and K. Sriram, "BGP AS_PATH Verification Based on
Autonomous System Provider Authorization (ASPA) Objects", Autonomous System Provider Authorization (ASPA) Objects",
Work in Progress, Internet-Draft, draft-ietf-sidrops-aspa- Work in Progress, Internet-Draft, draft-ietf-sidrops-aspa-
verification-20, 4 January 2025, verification-22, 23 March 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-sidrops- <https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-
aspa-verification-20>. aspa-verification-22>.
[IANA-SP-ASN] [IANA-SP-ASN]
"Special-Purpose Autonomous System (AS) Numbers", IANA, "Special-Purpose Autonomous System (AS) Numbers",
<https://www.iana.org/assignments/iana-as-numbers-special- <https://www.iana.org/assignments/iana-as-numbers-special-
registry/iana-as-numbers-special-registry.xhtml>. registry>.
[RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP
Addresses and AS Identifiers", RFC 3779, Addresses and AS Identifiers", RFC 3779,
DOI 10.17487/RFC3779, June 2004, DOI 10.17487/RFC3779, June 2004,
<https://www.rfc-editor.org/info/rfc3779>. <https://www.rfc-editor.org/info/rfc3779>.
[RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support [RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support
Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480, Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480,
February 2012, <https://www.rfc-editor.org/info/rfc6480>. February 2012, <https://www.rfc-editor.org/info/rfc6480>.
skipping to change at page 10, line 5 skipping to change at line 398
Maddison, "The Use of maxLength in the Resource Public Key Maddison, "The Use of maxLength in the Resource Public Key
Infrastructure (RPKI)", BCP 185, RFC 9319, Infrastructure (RPKI)", BCP 185, RFC 9319,
DOI 10.17487/RFC9319, October 2022, DOI 10.17487/RFC9319, October 2022,
<https://www.rfc-editor.org/info/rfc9319>. <https://www.rfc-editor.org/info/rfc9319>.
[RFC9582] Snijders, J., Maddison, B., Lepinski, M., Kong, D., and S. [RFC9582] Snijders, J., Maddison, B., Lepinski, M., Kong, D., and S.
Kent, "A Profile for Route Origin Authorizations (ROAs)", Kent, "A Profile for Route Origin Authorizations (ROAs)",
RFC 9582, DOI 10.17487/RFC9582, May 2024, RFC 9582, DOI 10.17487/RFC9582, May 2024,
<https://www.rfc-editor.org/info/rfc9582>. <https://www.rfc-editor.org/info/rfc9582>.
Appendix A. Example of Route Filtering for Aggregate Routes and their Appendix A. Example of Route Filtering for Aggregate Routes and Their
Contributors Contributors
Presented here is an illustration of how an AS_SET is not used when The illustration presented below shows how an AS_SET is not used when
aggregating and still data-plane route loops are avoided. Consider aggregating and how data plane route loops are avoided. Consider
that p1/24 (from AS 64501), p2/24 (from AS 64502), p3/24 (from AS that p1/24 (from AS 64501), p2/24 (from AS 64502), p3/24 (from AS
64503), and p4/24 (from AS 64504) are aggregated by AS 64505 to p/22. 64503), and p4/24 (from AS 64504) are aggregated by AS 64505 to p/22.
AS_SET is not used with the aggregate p/22 but AGGREGATOR and ATOMIC AS_SET is not used with the aggregate p/22 but AGGREGATOR and ATOMIC
AGGREGATE are used. Data-plane route loops are avoided by not AGGREGATE are used. Data plane route loops are avoided by not
announcing the aggregate p/22 to the contributing ASes, i.e., AS announcing the aggregate p/22 to the contributing ASes, i.e., AS
64501, AS 64502, AS 64503, and AS 64504. Instead, as further 64501, AS 64502, AS 64503, and AS 64504. Instead, as further
illustration, p1/24, p2/24, and p4/24 are announced to AS 64503. The illustrated, p1/24, p2/24, and p4/24 are announced to AS 64503. The
routing tables (post aggregation) of each of the ASes are depicted in routing tables (post aggregation) of each of the ASes are depicted in
the diagram below. the diagram below.
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( AS64501 ) ( AS64502 ) ( AS64503 ) ( AS64504 ) ( AS64501 ) ( AS64502 ) ( AS64503 ) ( AS64504 )
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
p1/24 p2/24 p3/24 p4/24 p1/24 p2/24 p3/24 p4/24
| | | | | | | |
| +--> ( ) <--+ | | +--> ( ) <--+ |
| ( AS64505 ) | | ( AS64505 ) |
skipping to change at page 11, line 39 skipping to change at line 447
p4/24 AS_PATH "64505 64504" p4/24 AS_PATH "" p4/24 AS_PATH "64505 64504" p4/24 AS_PATH ""
AS 64505 AS 64505
========================== ==========================
p/22 AS_PATH "" AGGREGATOR 64505 ATOMIC_AGGREGATE p/22 AS_PATH "" AGGREGATOR 64505 ATOMIC_AGGREGATE
p1/24 AS_PATH "64501" p1/24 AS_PATH "64501"
p2/24 AS_PATH "64502" p2/24 AS_PATH "64502"
p3/24 AS_PATH "64503" p3/24 AS_PATH "64503"
p4/24 AS_PATH "64504" p4/24 AS_PATH "64504"
Appendix B. Examples of Consistent and Inconsistent BGP Origin-AS Appendix B. Examples of Consistent and Inconsistent BGP Origin AS
Generated by Traditional Brief Aggregation Generated by Traditional Brief Aggregation
In the examples below, it is illustrated how traditional brief The examples below illustrate how traditional brief aggregation may
aggregation may result in an inconsistent origin AS. result in an inconsistent origin AS.
AS 64500 aggregates more specific routes into 192.0.2.0/24. AS 64500 aggregates more specific routes into 192.0.2.0/24.
Consider the following scenarios where brief aggregation is done by Consider the following scenarios where brief aggregation is done by
AS 64500 and what the resultant origin ASes would be. AS 64500 and what the resultant origin ASes would be.
Routes: Routes:
R1 - 192.0.2.0/26 AS_PATH "64501" R1 - 192.0.2.0/26 AS_PATH "64501"
R2 - 192.0.2.64/26 AS_PATH "64502" R2 - 192.0.2.64/26 AS_PATH "64502"
R3 - 192.0.2.128/26 AS_PATH "64504 64502" R3 - 192.0.2.128/26 AS_PATH "64504 64502"
skipping to change at page 13, line 5 skipping to change at line 503
(Note: AS numbers within square brackets represent an AS_SET.) (Note: AS numbers within square brackets represent an AS_SET.)
Receive R2. Aggregate 192.0.2.0/24 AS_PATH "[ 64501 64502 ]" Receive R2. Aggregate 192.0.2.0/24 AS_PATH "[ 64501 64502 ]"
If brief aggregation is in use, the AS_PATH would be truncated to the If brief aggregation is in use, the AS_PATH would be truncated to the
empty AS_PATH, "". empty AS_PATH, "".
The resulting AS_PATH is thus not stable and depends on the presence The resulting AS_PATH is thus not stable and depends on the presence
of specific routes. of specific routes.
B.2. Scenario 2: First one route, then another, the AS_PATHs overlap at B.2. Scenario 2: First one route, then another, and the AS_PATHs
the origin AS. overlap at the origin AS
Receive R1. Aggregate 192.0.2.0/24 AS_PATH "64501" Receive R1. Aggregate 192.0.2.0/24 AS_PATH "64501"
Receive R4. Aggregate 192.0.2.0/24 AS_PATH "[ 64504 64501 ]" Receive R4. Aggregate 192.0.2.0/24 AS_PATH "[ 64504 64501 ]"
If brief aggregation is in use, the AS_PATH is truncated to "". If brief aggregation is in use, the AS_PATH is truncated to "".
The resulting AS_PATH is thus not stable and depends on the presence The resulting AS_PATH is thus not stable and depends on the presence
of specific routes. of specific routes.
B.3. Scenario 3: First one route, then another, the AS_PATHs overlap at B.3. Scenario 3: First one route, then another, and the AS_PATHs
the neighbor AS overlap at the neighbor AS
Receive R3. Aggregate 192.0.2.0/24 AS_PATH "64504 64501". Receive R3. Aggregate 192.0.2.0/24 AS_PATH "64504 64501".
Receive R4. Aggregate 192.0.2.0/24 AS_PATH "64504 [ 64501 64502 ]" Receive R4. Aggregate 192.0.2.0/24 AS_PATH "64504 [ 64501 64502 ]"
If brief aggregation is in use, the AS_PATH is truncated to "64504". If brief aggregation is in use, the AS_PATH is truncated to "64504".
The resulting AS_PATH is thus not stable and depends on the presence The resulting AS_PATH is thus not stable and depends on the presence
of specific routes. of specific routes.
B.4. Achieving Consistent Origin-AS During Aggregation B.4. Achieving Consistent Origin AS During Aggregation
In the three scenarios above, the aggregating AS 64500 is using In the three scenarios above, the aggregating AS 64500 is using
traditional brief aggregation. This results in inconsistent origin traditional brief aggregation. This results in inconsistent origin
ASes as the contributing routes are learned. This motivates the ASes as the contributing routes are learned. This motivates the
"consistent brief" BGP aggregation mentioned in Section 5.2 and "consistent brief" BGP aggregation mentioned in Section 5.2 and
discussed further with examples below. discussed further with examples below.
The trivial solution to addressing the issue is to simply discard all The trivial solution to addressing the issue is to simply discard all
of the ASes for the contributing routes. In simple BGP aggregation of the ASes for the contributing routes. In simple BGP aggregation
topologies, this is likely the correct thing to do. The AS topologies, this is likely the correct thing to do. The AS
originating the aggregate, 192.0.2.0/24 in this example, is likely originating the aggregate, 192.0.2.0/24 in this example, is likely
the resource holder for the route in question. In such a case, the resource holder for the route in question. In such a case,
simply originating the route to its BGP upstream neighbors in the simply originating the route to its BGP upstream neighbors in the
Internet with its own AS, 64500, means that a consistent Route Origin Internet with its own AS, 64500, means that a consistent ROA could be
Authorization (ROA) could be registered in the RPKI for this prefix. registered in the RPKI for this prefix. This satisfies the need for
This satisfies the need for a consistent (unambiguous) origin AS. a consistent (unambiguous) origin AS.
If the contributing ASes are themselves multihomed to the Internet If the contributing ASes are themselves multihomed to the Internet
outside of their connections to AS 64500, then additional ROAs would outside of their connections to AS 64500, then additional ROAs would
need to be created for each of the more specific prefixes. need to be created for each of the more specific prefixes.
In more complex proxy aggregation scenarios, there may be a desire to In more complex proxy aggregation scenarios, there may be a desire to
permit some stable (i.e., common) portion of the contributing permit some stable (i.e., common) portion of the contributing
AS_PATHs to be kept in the aggregate route. Consider the case for AS_PATHs to be kept in the aggregate route. Consider the case for
Scenario 3, where the neighbor AS is the same for both R3 and R4 - AS Scenario 3, where the neighbor AS is the same for both R3 and R4 --
64504. In such a case, an implementation may permit the aggregate's AS 64504. In such a case, an implementation may permit the
brief AS_PATH to be "64504", and a ROA would be created for the aggregate's brief AS_PATH to be "64504", and a ROA would be created
aggregate prefix with 64504 as the origin AS. for the aggregate prefix with 64504 as the origin AS.
Appendix C. Discussion on Forwarding Loops and AS_SETs Appendix C. Discussion on Forwarding Loops and AS_SETs
Although BGP-4 was designed to carry CIDR routes, [RFC4271] does not Although BGP-4 was designed to carry Classless Inter-Domain Routing
discuss the installation of "discard" or "null" routes when (CIDR) routes, [RFC4271] does not discuss the installation of
implementing its aggregation procedures. Implementations could "discard" or "null" routes when implementing its aggregation
originate an aggregate prefix without a covering route for a more- procedures. Implementations could originate an aggregate prefix
specific prefix (subsumed by the aggregate prefix) present in the without a covering route for a more specific prefix (subsumed by the
local routing table. aggregate prefix) present in the local routing table.
When aggregating more specific routes according to [RFC4271] When aggregating more specific routes according to the aggregation
aggregation procedures, the aggregating BGP speaker will place procedures of [RFC4271], the aggregating BGP speaker will place
contributing routes into the generated AS_PATH, perhaps using contributing routes into the generated AS_PATH, perhaps using
AS_SETs. As a result, a contributing AS will not install the AS_SETs. As a result, a contributing AS will not install the
aggregated route into its RIB since the route is an AS_PATH loop. aggregated route into its RIB since the route is an AS_PATH loop.
This provides a form of protection against forwarding loops created This provides a form of protection against forwarding loops created
by BGP aggregation. by BGP aggregation.
When brief aggregation methods are used, a BGP speaker may receive a When brief aggregation methods are used, a BGP speaker may receive a
route containing such less specific destination covering a local more route containing a less specific destination covering a local more
specific destination and install it in its routing table since it is specific destination and install it in its routing table since it is
not prevented from doing so by BGP AS_PATH loop detection. This not prevented from doing so by BGP AS_PATH loop detection. This
gives rise to the possibility of forwarding loops. To help prevent gives rise to the possibility of forwarding loops. To help prevent
forwarding loops, it is critical to adhere to the following: forwarding loops, it is critical to adhere to the following:
1. Rule #2 of Section 5.1 of [RFC4632]: "A router that generates an 1. Rule #2 in Section 5.1 of [RFC4632]:
aggregate route for multiple, more-specific routes must discard
packets that match the aggregate route, but not any of the more- | A router that generates an aggregate route for multiple, more-
specific routes. In other words, the "next hop" for the | specific routes must discard packets that match the aggregate
aggregate route should be the null destination." | route, but not any of the more-specific routes. In other words,
| the "next hop" for the aggregate route should be the null
| destination.
2. Not advertising aggregate routes to contributing ASes as 2. Not advertising aggregate routes to contributing ASes as
specified in Section 6.2 of this document (also see Appendix A). specified in Section 6.2 of this document (also see Appendix A).
Acknowledgements
The authors would like to thank Alvaro Retana, John Scudder, Ketan
Talaulikar, Keyur Patel, Susan Hares, Claudio Jeker, Nick Hilliard,
Robert Raszuk, John Heasley, Job Snijders, Jared Mauch, Jakob Heitz,
Tony Przygienda, Douglas Montgomery, Randy Bush, Curtis Villamizar,
Danny McPherson, Chris Morrow, Tom Petch, Ilya Varlashkin, Enke Chen,
Tony Li, Florian Weimer, John Leslie, Paul Jakma, Rob Austein, Russ
Housley, Sandra Murphy, Steven M. Bellovin, Steve Kent, Steve
Padgett, and Alfred Hoenes for comments and suggestions. The
comments and suggestions received from the IESG reviewers are also
much appreciated.
Authors' Addresses Authors' Addresses
Warren Kumari Warren Kumari
Google, Inc. Google, Inc.
1600 Amphitheatre Parkway 1600 Amphitheatre Parkway
Mountain View, CA 94043 Mountain View, CA 94043
United States of America United States of America
Phone: +1 571 748 4373 Phone: +1 571 748 4373
Email: warren@kumari.net Email: warren@kumari.net
 End of changes. 59 change blocks. 
177 lines changed or deleted 174 lines changed or added

This html diff was produced by rfcdiff 1.48.