--- 1/draft-ietf-idr-deprecate-as-sets-03.txt 2011-05-02 23:15:42.000000000 +0200 +++ 2/draft-ietf-idr-deprecate-as-sets-04.txt 2011-05-02 23:15:42.000000000 +0200 @@ -1,19 +1,19 @@ Network Working Group W. Kumari Internet-Draft Google, Inc. Intended status: Informational K. Sriram -Expires: October 24, 2011 U.S. NIST - April 22, 2011 +Expires: November 2, 2011 U.S. NIST + May 1, 2011 Deprecation of the use of BGP AS_SET, AS_CONFED_SET. - draft-ietf-idr-deprecate-as-sets-03 + draft-ietf-idr-deprecate-as-sets-04 Abstract This document deprecates the use of the AS_SET and AS_CONFED_SET types of the AS_PATH in BGPv4. This is done to simplify the design and implementation of the BGP protocol and to make the semantics of the originator of a route more clear. This will also simplify the design, implementation and deployment of ongoing work in the Secure Inter-Domain Routing Working Group. @@ -25,21 +25,21 @@ 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 http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on October 24, 2011. + This Internet-Draft will expire on November 2, 2011. Copyright Notice 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) in effect on the date of publication of this document. Please review these documents @@ -51,22 +51,21 @@ Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Requirements notation . . . . . . . . . . . . . . . . . . . . . 3 3. Recommendation to Network Operators . . . . . . . . . . . . . . 4 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 4 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 4 7. Informative References . . . . . . . . . . . . . . . . . . . . 5 - Appendix A. Proxy Aggregation without AS_SETs . . . . . . . . . . 5 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 7 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 5 1. Introduction The AS_SET path segment type of the AS_PATH attribute ([RFC4271], Section 4.3) is created by a router that is performing route aggregation and contains an unordered set of ASs that the update has traversed. The AS_CONFED_SET path type ([RFC5065]) of the AS_PATH attribute is created by a router that is performing route aggregation and contains an unordered set of Member AS Numbers in the local confederation that the update has traversed. It is very similar to @@ -89,44 +88,45 @@ In the past AS_SET had been used in a few rare cases to allow route aggregation where two or more providers could form the same prefix, using the exact match of the others prefix in some advertisement and configuring the aggregation differently elsewhere. The key to configuring this correctly was to form the aggregate at the border in the outbound BGP policy and omit prefixes from the AS that the aggregate was being advertised to. The AS_SET therefore allowed this practice without the loss of BGP's AS_PATH loop protection. This use of AS_SET served a purpose which fell in line with the original - intended use. Without AS_SET aggregates must always contain only - less specific prefixes (not less than or equal to), and must never - aggregate an exact match. Since this practice is thought to no - longer be widely used, it is thought to be safe to deprecate the use - of AS_SET. + intended use. + + Without AS_SET aggregates must always contain only less specific + prefixes (not less than or equal to), and must never aggregate an + exact match. Since this practice is thought to no longer be widely + used, it is thought to be safe to deprecate the use of AS_SET. 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 Operators are strongly advised to not generate any new announcements containing AS_SETs or AS_CONFED_SETs. If they have already announced routes with AS_SETs or AS_CONFED_SETs in them, then they should withdraw and re-announce those prefixes without AS_SETs in the updates. This may require undoing the aggregation that was previously performed, and announcing more specifics. Route - aggregation is possible under some conditions without the use of - AS_SETs (please see Appendix A for relevant discussion and - suggestions). As with any change, the operator should understand the - full implications of the change. + aggregation that was previously performed by proxy aggregation is + still possible under some conditions without the use of AS_SETs. As + with any change, the operator should understand the full implications + of the change. It is worth noting that new technologies (such as those that take advantage of the "X.509 Extensions for IP Addresses and AS Identifiers" ([RFC3779]) may not support routes with AS_SETs / AS_CONFED_SETs in them, and MAY treat as infeasible routes containing them. Future BGP implementations may also do the same. It is expected that, even before the deployment of these technologies, operators may begin filtering routes that contain AS_SETs or AS_CONFED_SETs. @@ -146,123 +146,42 @@ on it. 6. Acknowledgements The authors would like to thank Tony Li, Randy Bush, John Scudder, Curtis Villamizar, Danny McPherson, Chris Morrow, Tom Petch, 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 Hones, Alvaro Retana, everyone in IDR and everyone else who - provided input. + provided input - Apologies to those who I may have missed, it was not intentional. + Apologies to those who we may have missed, it was not intentional. 7. Informative References [RFC1930] Hawkinson, J. and T. Bates, "Guidelines for creation, selection, and registration of an Autonomous System (AS)", BCP 6, RFC 1930, March 1996. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP Addresses and AS Identifiers", RFC 3779, June 2004. [RFC4271] Rekhter, Y., Li, T., and S. Hares, "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. -Appendix A. Proxy Aggregation without AS_SETs - - Using the illustration in Figure 1 below, we attempt to point out how - an aggregating AS can perform proxy aggregation without using an - AS_SET in the aggregate announcement. - - In Figure 1, more specific prefixes p0/24, p1/24, p2/24, and p3/24 - are originated by AS-A, AS-B, AS-C, and AS-D, respectively. AS-E and - AS-F choose not to aggregate; they forward the more specifics to - AS-G. AS-G aggregates the four more specifics into a single less - specific prefix p/22, and propagates updates in BGP to its neighbors - (including AS-E and AS-F) to announce the p/22 prefix. If G were to - insert the AS_SET [A,B,C,D,E,F] in the update, then AS-E and AS-F - will be aware of the looping possibility and not install the route - for p/22. The undesirable consequence here would be that AS-E would - not have reachability to p2/24 and p3/24, and similarly AS-F would - not have reachability to p0/24 and p1/24. So there is a hidden - downside of this nature in proxy aggregation with the use of AS_SET. - - Now consider the case when AS-G performs the same aggregation but - does not use an AS_SET in the aggregate announcement. The following - recommendation is in order: - - o An AS should proxy aggregate only prefixes which belong to its - administrative domain. - - With this recommendation in mind, we attempt to explain here how the - data-plane looping possibility can still be avoided, and the - reachability problem identified above is also prevented. - - In Figure 1, please take note of the aggregate announcements (without - AS_SET) from AS-G to its neighbors. Absent the AS_SET in the - aggregate announcement, now AS-E and AS-F would install the route for - p/22 via AS-G in their routing tables. So AS-E will have - reachability to p2/24 and p3/24, and similarly AS-F will have - reachability to p0/24 and p1/24. Also, the looping possibility - between AS-E and AS-G (and likewise between AS-F and AS-G) is avoided - provided that AS-G observes a slight caution in its aggregation - decision and packet forwarding. As already stated, AS-G should - aggregate only those prefixes which belong in its admin domain, and - secondly if any of those prefixes are withdrawn then AS-G should drop - the route for that prefix from its FIB even though it still maintains - the aggregation and continues to announce p/22 to its neighbors. If - AS-E were to withdraw a prefix (say, p1/24) then AS-G will no longer - forward packets for that prefix to AS-E. Hence, under said - circumstance, even though AS-E may forward packets for p1/24 to AS-G, - those packets will be dropped at AS-G and thus data-plane looping - would not occur. The other reason for recommending aggregation of - prefixes from within the same admin domain is that in that case, the - aggregating AS (AS-G in the example) can create a ROA (in the RPKI - repository) for the aggregate (p/22) showing itself (AS-G) as the - origin. - - p0/24--A Update {E,A, p0/24} --> - \ Update {E,B, p1/24} --> - E-------------------------------\ - / <-- Update {G, p/22} \ - p1/24--B (w/o AS_SET) \ - or \ - <-- Update {G,[A,B,C,D,E,F], p/22} \ - (with AS_SET) \ - \ - \ - \ - \ - G---------H - <-- Update {G, p/22} / ---> - (w/o AS_SET) / same aggregate - or / update as sent - p2/24--C <-- Update {G,[A,B,C,D,E,F], p/22} / to E or F - \ (with AS_SET) / - F-----------------------------------/ - / Update {F,C, p2/24} --> - p3/24--D Update {F,D, p3/24} --> - - Note: p0/24+p1/24+p2/24+p3/24 = p/22 - BGP speaker G has chosen to Aggregate - - Figure 1: Illustration for discussion of loop possibility in data - forwarding when AS_SET is not used and how it can be mitigated. - Authors' Addresses Warren Kumari Google, Inc. 1600 Amphitheatre Parkway Mountain View, CA 94043 US Phone: +1 571 748 4373 Email: warren@kumari.net