RFC 6472

Recommendation for Not Using AS_SET and AS_CONFED_SET in BGP

πŸ“… published December 2011, from ietf

RFC 6472 πŸ’– Recommendation for Not Using AS_SET and AS_CONFED_SET in BGP

Okay bestie, RFC 6472 is titled Recommendation for Not Using AS_SET and AS_CONFED_SET in BGP πŸ¦‹ It's a Best Current Practice (category: Best Current Practice, BCP 172), published in December 2011 with ISSN 2070-1721. The authors are Warren Kumari (Google, Inc.) and Kotikalapudi Sriram (U.S. NIST). The header doesn't list anything it obsoletes or updates, so there's no drama there ✨


Abstract

okay so this doc recommends against using the AS_SET and AS_CONFED_SET types of the AS_PATH in BGPv4 πŸ’… The whole point is to simplify the design and implementation of BGP and make it way clearer who originated a route. It'll also make the design, implementation, and deployment of ongoing work in the Secure Inter-Domain Routing Working Group easier. πŸ”

Status of This Memo

This memo documents an Internet Best Current Practice 🌸

It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more BCP info, check Section 2 of RFC 5741 πŸ“–

For the current status, any errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc6472.

Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved. πŸŽ€

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as in effect on the publication date. Please read these carefully, because they spell out your rights and restrictions for this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License βš–οΈ

Table of Contents

1. Introduction ....................................................2
2. Requirements Notation ...........................................3
3. Recommendation to Network Operators .............................3
4. Security Considerations .........................................4
5. Acknowledgements ................................................4
6. References ......................................................4
   6.1. Normative References .......................................4
   6.2. Informative References .....................................4

1. Introduction ✨

So the AS_SET path segment type of the AS_PATH attribute (Sections 4.3 and 5.1.2 of [RFC4271]) gets created by a router doing route aggregation, and it holds an unordered set of Autonomous Systems (ASes) that the update has gone through πŸ—ΊοΈ The AS_CONFED_SET path type ([RFC5065]) of the AS_PATH attribute is the same idea, except it's created by a router doing aggregation and holds an unordered set of Member AS Numbers in the local confederation that the update went through. It's basically AS_SETs but used inside a confederation 🧚

Here's the tea: when a router aggregates, it's basically smooshing a bunch of existing routes into one new route. That kind of aggregation blurs what it means to originate a route 🫠 That can cause real operational problems, like not being able to authenticate a route origin for the aggregate prefix in new BGP security technologies (such as the ones that use the "X.509 Extensions for IP Addresses and AS Identifiers" [RFC3779]). And that could lead to reachability problems for the aggregated prefix and its components (aka the more specifics) 😬 Aggregation also causes traffic engineering issues, because the precise path information for the component prefixes doesn't get preserved.

Looking at past Internet routing data, aggregation involving AS_SETs is very rarely used on the public network [Analysis]. When it does show up, it's usually used incorrectly. Reserved AS numbers ([RFC1930]) and/or only a single AS in the AS_SET are by far the most common cases πŸ™ˆ Since this aggregation is so rare, the table size reduction it gives is tiny, and any advantage is outweighed by the extra complexity it adds to BGP. As mentioned above, it also gets in the way of implementing those new BGP security technologies πŸ’€

Back in the day, AS_SET was used in a few rare cases to allow route aggregation where two or more providers could form the same prefix. They'd use an exact match of the other's prefix in some advertisement and configure the aggregation differently somewhere else. The trick to getting this right was to form the aggregate at the border in the outbound BGP policy and leave out prefixes from the AS the aggregate was being advertised to. So AS_SET allowed this without losing BGP's AS_PATH loop protection, and that use fit the original intended purpose 🌈 Without AS_SET, aggregates must always contain only less specific prefixes (not less than or equal to), and must never aggregate an exact match.

2. Requirements Notation πŸ“

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] πŸ”€

3. Recommendation to Network Operators πŸ‘‘

It is RECOMMENDED that operators not generate any new announcements containing AS_SETs or AS_CONFED_SETs 🚫 If they've already announced routes with AS_SETs or AS_CONFED_SETs in them, then they SHOULD withdraw those routes and re-announce routes for the component prefixes (aka the additional specifics of the previously aggregated prefix) without AS_SETs in the updates. This means undoing the aggregation that was done before (with AS_SETs) and announcing the more specifics (without AS_SETs) πŸ”„ Route aggregation that was previously done by proxy aggregation (so, without AS_SETs) is still possible under some conditions. As with any change, the operator should understand the full implications of it 🧠

Heads up: new technologies (such as the ones that use the "X.509 Extensions for IP Addresses and AS Identifiers" [RFC3779]) might not support routes with AS_SETs/AS_CONFED_SETs in them. They may treat those routes as infeasible. Future BGP implementations may do the same too 🚩

It's expected that, even before these new or future technologies get deployed, operators may filter routes with AS_SETs/AS_CONFED_SETs in them. Other than making that observation, this document isn't trying to recommend how an operator should behave when receiving a route with AS_SET or AS_CONFED_SET in it. This doc's focus is entirely on the sender side, as discussed in the paragraph before 🫢

4. Security Considerations πŸ”πŸ’€

This document discourages the use of aggregation techniques that create AS_SETs. Future work may update the protocol to remove support for the AS_SET path segment type of the AS_PATH attribute. That future work would remove complexity and code that doesn't get exercised very often, which decreases the attack surface. It would also simplify the design and implementation of the Resource Public Key Infrastructure (RPKI) and the systems that will rely on it πŸ›‘οΈβœ¨

5. Acknowledgements 🫢

The authors would like to thank Tony Li, Randy Bush, John Scudder, Curtis Villamizar, Danny McPherson, Chris Morrow, Tom Petch, and Ilya Varlashkin, as well as Douglas Montgomery, Enke Chen, Florian Weimer, Jakob Heitz, John Leslie, Keyur Patel, Paul Jakma, Rob Austein, Russ Housley, Sandra Murphy, Steve Bellovin, Steve Kent, Steve Padgett, Alfred Hoenes, Alvaro Retana, everyone in the IDR working group, and everyone else who provided input πŸ’œ

Sorry to anyone we might have missed. It was not intentional πŸ₯Ί

6. References πŸ“š

6.1. Normative References

[RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
            Requirement Levels", BCP 14, RFC 2119, March 1997.

6.2. Informative References

[Analysis]  Sriram, K. and D. Montgomery, "Measurement Data on AS_SET
            and AGGREGATOR: Implications for {Prefix, Origin}
            Validation Algorithms", SIDR WG presentation, IETF 78,
            July 2010, <www.antd.nist.gov/~ksriram/
            AS_SET_Aggregator_Stats.pdf>.

[RFC1930]   Hawkinson, J. and T. Bates, "Guidelines for creation,
            selection, and registration of an Autonomous System
            (AS)", BCP 6, RFC 1930, March 1996.

[RFC3779]   Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP
            Addresses and AS Identifiers", RFC 3779, June 2004.

[RFC4271]   Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
            Border Gateway Protocol 4 (BGP-4)", RFC 4271,
            January 2006.

[RFC5065]   Traina, P., McPherson, D., and J. Scudder, "Autonomous
            System Confederations for BGP", RFC 5065, August 2007.

Authors' Addresses 🏠

Warren Kumari
Google, Inc.
1600 Amphitheatre Parkway
Mountain View, CA  94043
US

Phone: +1 571 748 4373
EMail: warren@kumari.net


Kotikalapudi Sriram
U.S. NIST
100 Bureau Drive
Gaithersburg, MD  20899
US

Phone: +1 301 975 3973
EMail: ksriram@nist.gov
πŸ“¦ where this page comes from