draft-ietf-idr-deprecate-as-sets-06.txt | rfc6472.txt | |||
---|---|---|---|---|
Network Working Group W. Kumari | Internet Engineering Task Force (IETF) W. Kumari | |||
Internet-Draft Google, Inc. | Request for Comments: 6472 Google, Inc. | |||
Intended status: BCP K. Sriram | BCP: 172 K. Sriram | |||
Expires: April 9, 2012 U.S. NIST | Category: Best Current Practice U.S. NIST | |||
October 07, 2011 | ISSN: 2070-1721 December 2011 | |||
Recommendation for Not Using AS_SET and AS_CONFED_SET in BGP | Recommendation for Not Using AS_SET and AS_CONFED_SET in BGP | |||
draft-ietf-idr-deprecate-as-sets-06 | ||||
Abstract | Abstract | |||
This document recommends against the use of the AS_SET and | This document recommends against the use of the AS_SET and | |||
AS_CONFED_SET types of the AS_PATH in BGPv4. This is done to | 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 | simplify the design and implementation of BGP and to make the | |||
make the semantics of the originator of a route more clear. This | semantics of the originator of a route more clear. This will also | |||
will also simplify the design, implementation and deployment of | simplify the design, implementation, and deployment of ongoing work | |||
ongoing work in the Secure Inter-Domain Routing Working Group. | in the Secure Inter-Domain Routing Working Group. | |||
Status of this Memo | ||||
This Internet-Draft is submitted in full conformance with the | Status of This Memo | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | This memo documents an Internet Best Current Practice. | |||
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 | 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 | |||
BCPs is available in Section 2 of RFC 5741. | ||||
This Internet-Draft will expire on April 9, 2012. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
http://www.rfc-editor.org/info/rfc6472. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2011 IETF Trust and the persons identified as the | Copyright (c) 2011 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 | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction ....................................................2 | |||
2. Requirements notation . . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Notation ...........................................3 | |||
3. Recommendation to Network Operators . . . . . . . . . . . . . . 4 | 3. Recommendation to Network Operators .............................3 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4 | 4. Security Considerations .........................................4 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 4 | 5. Acknowledgements ................................................4 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 | 6. References ......................................................4 | |||
7. Informative References . . . . . . . . . . . . . . . . . . . . 5 | 6.1. Normative References .......................................4 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 5 | 6.2. Informative References .....................................4 | |||
1. Introduction | 1. Introduction | |||
The AS_SET path segment type of the AS_PATH attribute ([RFC4271], | The AS_SET path segment type of the AS_PATH attribute (Sections 4.3 | |||
Section 4.3) is created by a router that is performing route | and 5.1.2 of [RFC4271]) is created by a router that is performing | |||
aggregation and contains an unordered set of ASs that the update has | route aggregation and contains an unordered set of Autonomous Systems | |||
traversed. The AS_CONFED_SET path type ([RFC5065]) of the AS_PATH | (ASes) that the update has traversed. The AS_CONFED_SET path type | |||
attribute is created by a router that is performing route aggregation | ([RFC5065]) of the AS_PATH attribute is created by a router that is | |||
and contains an unordered set of Member AS Numbers in the local | performing route aggregation and contains an unordered set of Member | |||
confederation that the update has traversed. It is very similar to | AS Numbers in the local confederation that the update has traversed. | |||
AS_SETs but is used within a confederation. | It is very similar to AS_SETs but is used within a confederation. | |||
By performing aggregation, a router is, in essence, combining | By performing aggregation, a router is, in essence, combining | |||
multiple existing routes into a single new route. This type of | multiple existing routes into a single new route. This type of | |||
aggregation blurs the semantics of what it means to originate a | aggregation blurs the semantics of what it means to originate a | |||
route. Said aggregation can therefore cause operational issues such | route. Said aggregation can therefore cause operational issues, such | |||
as not being able to authenticate a route origin for the aggregate | as not being able to authenticate a route origin for the aggregate | |||
prefix in new BGP security technologies (such as those that take | prefix in new BGP security technologies (such as those that take | |||
advantage of the "X.509 Extensions for IP Addresses and AS | advantage of the "X.509 Extensions for IP Addresses and AS | |||
Identifiers" [RFC3779]). This in turn would result in reachability | Identifiers" [RFC3779]). This in turn would result in reachability | |||
problems for aggregated prefix and its components (i.e., more | problems for the aggregated prefix and its components (i.e., more | |||
specifics). Said aggregation also creates traffic engineering issues | specifics). Said aggregation also creates traffic engineering | |||
because the precise path information for the component prefixes is | issues, because the precise path information for the component | |||
not preserved. | prefixes is not preserved. | |||
From analysis of past Internet routing data it is apparent that | From analysis of past Internet routing data, it is apparent that | |||
aggregation that involves AS_SETs is very seldom used in practice on | aggregation that involves AS_SETs is very seldom used in practice on | |||
the public network [analysis] and, when it is used, it is usually | the public network [Analysis] and, when it is used, it is usually | |||
used incorrectly -- reserved AS numbers ([RFC1930]) and / or only a | used incorrectly -- reserved AS numbers ([RFC1930]) and/or only a | |||
single AS in the AS_SET are by far the most common case. Because the | single AS in the AS_SET are by far the most common case. Because the | |||
aggregation involving AS_SETs is very rarely used, the reduction in | aggregation involving AS_SETs is very rarely used, the reduction in | |||
table size provided by said aggregation is extremely small, and any | table size provided by said aggregation is extremely small, and any | |||
advantage thereof is outweighed by additional complexity in the BGP | advantage thereof is outweighed by additional complexity in BGP. As | |||
protocol. As noted above, said aggregation also poses impediments to | noted above, said aggregation also poses impediments to | |||
implementation of said new BGP security technologies. | implementation of said new BGP security technologies. | |||
In the past, AS_SET had been used in a few rare cases to allow route | 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, | aggregation where two or more providers could form the same prefix, | |||
using the exact match of the other's prefix in some advertisement and | using the exact match of the other's prefix in some advertisement and | |||
configuring the aggregation differently elsewhere. The key to | configuring the aggregation differently elsewhere. The key to | |||
configuring this correctly was to form the aggregate at the border in | configuring this correctly was to form the aggregate at the border in | |||
the outbound BGP policy and omit prefixes from the AS that the | the outbound BGP policy and omit prefixes from the AS that the | |||
aggregate was being advertised to. The AS_SET therefore allowed this | aggregate was being advertised to. The AS_SET therefore allowed this | |||
practice without the loss of BGP's AS_PATH loop protection. This use | 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 | of AS_SET served a purpose that fell in line with the original | |||
intended use. Without use of AS_SET, aggregates must always contain | intended use. Without the use of AS_SET, aggregates must always | |||
only less specific prefixes (not less than or equal to), and must | contain only less specific prefixes (not less than or equal to), and | |||
never aggregate an exact match. | must never aggregate an exact match. | |||
2. Requirements notation | 2. Requirements Notation | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
3. Recommendation to Network Operators | 3. Recommendation to Network Operators | |||
It is RECOMMENDED that operators not generate any new announcements | It is RECOMMENDED that operators not generate any new announcements | |||
containing AS_SETs or AS_CONFED_SETs. If they have already announced | 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 | routes with AS_SETs or AS_CONFED_SETs in them, then they SHOULD | |||
withdraw those routes and re-announce routes for the component | withdraw those routes and re-announce routes for the component | |||
prefixes (i.e., the more specifics of the previously aggregated | prefixes (i.e., the additional specifics of the previously aggregated | |||
prefix) without AS_SETs in the updates. This involves undoing the | prefix) without AS_SETs in the updates. This involves undoing the | |||
aggregation that was previously performed (with AS_SETs), and | aggregation that was previously performed (with AS_SETs), and | |||
announcing more specifics (without AS_SETs). Route aggregation that | announcing more specifics (without AS_SETs). Route aggregation that | |||
was previously performed by proxy aggregation (i.e., without the use | was previously performed by proxy aggregation (i.e., without the use | |||
of AS_SETs) is still possible under some conditions. As with any | of AS_SETs) is still possible under some conditions. As with any | |||
change, the operator should understand the full implications of the | change, the operator should understand the full implications of the | |||
change. | change. | |||
It is worth noting that new technologies (such as those that take | It is worth noting that new technologies (such as those that take | |||
advantage of the "X.509 Extensions for IP Addresses and AS | advantage of the "X.509 Extensions for IP Addresses and AS | |||
Identifiers" [RFC3779]) might not support routes with AS_SETs / | Identifiers" [RFC3779]) might not support routes with AS_SETs/ | |||
AS_CONFED_SETs in them, and may treat as infeasible routes containing | AS_CONFED_SETs in them, and may treat as infeasible routes containing | |||
them. Future BGP implementations may also do the same. It is | them. Future BGP implementations may also do the same. It is | |||
expected that, even before the deployment of these new or future | expected that, even before the deployment of these new or future | |||
technologies, operators may filter routes with AS_SETs / | technologies, operators may filter routes with AS_SETs/AS_CONFED_SETs | |||
AS_CONFED_SETs in them. Other than making that observation, this | in them. Other than making that observation, this document is not | |||
document is not intended to make any recommendation for how an | intended to make any recommendation for how an operator should behave | |||
operator should behave when receiving a route with AS_SET or | when receiving a route with AS_SET or AS_CONFED_SET in it. This | |||
AS_CONFED_SET in it. This document's focus is entirely on the sender | document's focus is entirely on the sender side, as discussed in the | |||
side as discussed in the preceding paragraph. | preceding paragraph. | |||
4. IANA Considerations | ||||
This document requires no IANA actions. | ||||
5. Security Considerations | 4. Security Considerations | |||
This document discourages the use of aggregation techniques that | This document discourages the use of aggregation techniques that | |||
create AS_SETs. Future work may update the protocol to remove | create AS_SETs. Future work may update the protocol to remove | |||
support for the AS_SET path segment type of the AS_PATH attribute. | support for the AS_SET path segment type of the AS_PATH attribute. | |||
This will remove complexity and code that is not exercised very | This future work will remove complexity and code that are not | |||
often, which decreases the attack surface. This will also simplify | exercised very often, thereby decreasing the attack surface. This | |||
the design and implementation of the RPKI and systems that will rely | future work will also simplify the design and implementation of the | |||
on it. | Resource Public Key Infrastructure (RPKI) and systems that will | |||
rely on it. | ||||
6. Acknowledgements | 5. Acknowledgements | |||
The authors would like to thank Tony Li, Randy Bush, John Scudder, | The authors would like to thank Tony Li, Randy Bush, John Scudder, | |||
Curtis Villamizar, Danny McPherson, Chris Morrow, Tom Petch, Ilya | Curtis Villamizar, Danny McPherson, Chris Morrow, Tom Petch, and Ilya | |||
Varlashkin as well as Douglas Montgomery, Enke Chen, Florian Weimer, | Varlashkin, as well as Douglas Montgomery, Enke Chen, Florian Weimer, | |||
Jakob Heitz, John Leslie, Keyur Patel, Paul Jakma, Rob Austein, Russ | Jakob Heitz, John Leslie, Keyur Patel, Paul Jakma, Rob Austein, Russ | |||
Housley, Sandra Murphy, Steve Bellovin, Steve Kent, Steve Padgett, | Housley, Sandra Murphy, Steve Bellovin, Steve Kent, Steve Padgett, | |||
Alfred Hones, Alvaro Retana, everyone in IDR and everyone else who | Alfred Hoenes, Alvaro Retana, everyone in the IDR working group, and | |||
provided input | everyone else who provided input. | |||
Apologies to those who we may have missed, it was not intentional. | Apologies to those who we may have missed; it was not intentional. | |||
7. Informative References | 6. References | |||
[RFC1930] Hawkinson, J. and T. Bates, "Guidelines for creation, | 6.1. Normative References | |||
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 | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP | 6.2. Informative References | |||
Addresses and AS Identifiers", RFC 3779, June 2004. | ||||
[RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway | [Analysis] Sriram, K. and D. Montgomery, "Measurement Data on AS_SET | |||
Protocol 4 (BGP-4)", RFC 4271, January 2006. | 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>. | ||||
[RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous | [RFC1930] Hawkinson, J. and T. Bates, "Guidelines for creation, | |||
System Confederations for BGP", RFC 5065, August 2007. | selection, and registration of an Autonomous System | |||
(AS)", BCP 6, RFC 1930, March 1996. | ||||
[analysis] | [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP | |||
Sriram, K., "Measurement Data on AS_SET and AGGREGATOR, | Addresses and AS Identifiers", RFC 3779, June 2004. | |||
SIDR WG presentation, IETF-78", July 2010, < http:// | ||||
www.antd.nist.gov/~ksriram/AS_SET_Aggregator_Stats.pdf>. | [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 | Authors' Addresses | |||
Warren Kumari | Warren Kumari | |||
Google, Inc. | Google, Inc. | |||
1600 Amphitheatre Parkway | 1600 Amphitheatre Parkway | |||
Mountain View, CA 94043 | Mountain View, CA 94043 | |||
US | US | |||
Phone: +1 571 748 4373 | Phone: +1 571 748 4373 | |||
Email: warren@kumari.net | EMail: warren@kumari.net | |||
Kotikalapudi Sriram | Kotikalapudi Sriram | |||
U.S. NIST | U.S. NIST | |||
100 Bureau Drive | 100 Bureau Drive | |||
Gaithersburg, MD 20899 | Gaithersburg, MD 20899 | |||
US | US | |||
Phone: +1 301 975 3973 | Phone: +1 301 975 3973 | |||
Email: ksriram@nist.gov | EMail: ksriram@nist.gov | |||
End of changes. 34 change blocks. | ||||
94 lines changed or deleted | 93 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |