Internet Engineering Task Force Sharad Agarwal INTERNET DRAFT U.C. Berkeley Timothy G. Griffin Intel Research Expires: July 2004 January 2004 BGP Proxy Community Community Status of this Document This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. 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 RFC 2119 [RFC 2119]. This document is an individual submission. Comments are solicited and should be addressed to the author(s). Copyright Notice Copyright (C) The Internet Society (2004). All Rights Reserved. Sharad Agarwal, and Timothy G. Griffin [Page 1] INTERNET-DRAFT Expires: July 2004 January 2004 Abstract This document describes a Flexible BGP Community Attribute that encodes a request for a remote AS to send another community to a specified neighbor when announcing the route. Sharad Agarwal, and Timothy G. Griffin [Page 2] INTERNET-DRAFT Expires: July 2004 January 2004 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Proxy Community Community. . . . . . . . . . . . . . . . . . . 4 3. Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4. Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5. Intellectual Property. . . . . . . . . . . . . . . . . . . . . 9 6. Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . 9 7. Security Considerations. . . . . . . . . . . . . . . . . . . . 10 8. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 10 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 9.1. Normative References. . . . . . . . . . . . . . . . . . . . 11 9.2. Informative References. . . . . . . . . . . . . . . . . . . 11 10. Author's Addresses. . . . . . . . . . . . . . . . . . . . . . 13 11. Full Copyright Statement. . . . . . . . . . . . . . . . . . . 13 Sharad Agarwal, and Timothy G. Griffin [Page 3] INTERNET-DRAFT Expires: July 2004 January 2004 1. Introduction BGP communities [RFC1997] have become a critical part of implementing interdomain routing policies [QB02]. Communities provide network operators with an open-ended framework that allows routes to be tagged with information at one router that is then used in the routing policies of another router. Initially, communities were used primarily to classify routes within an AS (customer routes, peer routes, upstream routes), where the classifications determine which routes are exported to which kinds of neighbors (customer routes to everyone, upstream and peer routes to customers only). It has become more and more common for communities to be used to signal information between ASes. For example, many ISPs provide customers with communities that control the relative preference of their routes, the scope of their routes, and so on. Finally, communities are starting to be used to signal information to distant (not adjacent) ASes. Geographic communities described in [QB02] are just one example. Other types of "action-at-a-distance" communities have been proposed for traffic engineering. For example, [BCH^+03] proposes several (extended) communities that control the redistribution of routes toward specific ASes, while [H03] defines the NOPEER community for controlling the "long range" scope of routes. In this document we propose a community that can carry another community to be attached to a route when it is sent to a distant AS. We call this the BGP Proxy Community Community. Abstractly, a Proxy Community Community value can be thought as a tuple (A1, A2, c), which represents a request directed at AS A1 to send community c to AS A2 when the associated route is sent to AS A2. There are a number of motivations for controlling the sending of a specific community value from one distant AS to its neighbor. A route prefix may be reachable at a distant AS via multiple AS paths. The originating AS of that route may wish to influence the selection of one of these paths. This use of the community provides a form of destination based traffic engineering. This document does not attempt to address all such motivations of the use of Proxy Community Communities. 2. Proxy Community Community Proxy Community Community values are implemented as Flexible Community values [L03]. From that document, we find that each Flexible Community is encoded as a variable length attribute with the following encoding scheme: - Transitivity Field: 1 bit Sharad Agarwal, and Timothy G. Griffin Section 2. [Page 4] INTERNET-DRAFT Expires: July 2004 January 2004 - Structure Field: 7 bits - Type Field: 2 octets - Originating ASN Field: 4 octets - Length Field: 1 octet - Value Field: 0-255 octets 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |T| Struct. | Type | Originating | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ASN | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value Field (0-255 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The fields are defined as follows. T = Transitivity bit. This bit can take two values: Value 0: The community is transitive across ASes Value 1: The community is non-transitive across ASes This field is set to 0 for Proxy Community Community values. Struct = Structure field. This field is split into two sub-fields: 0 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |T|L| Struct. | +-+-+-+-+-+-+-+-+ L - Local bit. This bit can take two values: Value 0: The Structure is Locally Defined. Value 1: The Structure is Well Known. This sub-field is set to 1 for Proxy Community Community values. Struct - Structure sub-field. There are four well known structure values: Value 0x01: ASN Value 0x02: IPv4 address Value 0x03: IPv6 address Value 0x04: Neighbor class This sub-field is set to 0x01 for Proxy Community Community values. Type = Type field. This field is split into two sub-fields: 1 2 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 Sharad Agarwal, and Timothy G. Griffin Section 2. [Page 5] INTERNET-DRAFT Expires: July 2004 January 2004 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L| Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ L - Local bit. This bit can take two values: Value 0: The Type is Locally Defined. Value 1: The Type is Well Known. This sub-field is set to 1 for Proxy Community Community values. Type - Type sub-field. The following values are already defined [L03]: Value 0x0001: NO_EXPORT Value 0x0002: ONLY_EXPORT Value 0x0003: ANNOUNCE_WITH Value 0x0004: PREPEND Value 0x0005: ROUTE_TARGET Value 0x0006: ROUTE_ORIGIN Value 0x0007: LINK_BANDWIDTH The sub-field value for Proxy Community Community values is to be assigned by IANA. Originating ASN - Originating ASN field. This field contains the ASN that added the Proxy Community Community to the route. In the case of a two octet ASN, the first two octets are set to zero, as padding. Length - Length of value field. This field specifies the number of octets in the length of the value field. For Proxy Community Community values, this length value must be at least 0x0D. The value depends on the kind of BGP Community that is encoded in the value field. An RFC 1997 BGP Community [RFC1997] occupies four octets, and in this case, the length of value field will contain 0x0D. A BGP Extended Community [STR03] occupies eight octets, and in this case, the length of value field will contain 0x11. A Flexible BGP Community [L03] occupies at least eight octets and thus the length of value field will be at least 0x11. Value - Value field. For Proxy Community Community values, the value field is split into four sub-fields: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Proxy ASN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Target ASN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Attr. Type Code| Community Value (0-247 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Sharad Agarwal, and Timothy G. Griffin Section 2. [Page 6] INTERNET-DRAFT Expires: July 2004 January 2004 Proxy ASN - Proxy ASN sub-field. This sub-field contains the ASN that should act upon this Proxy Community Community value. The Proxy ASN should add the BGP Community specified in the Community Value sub- field to the route when announcing it to the ASN specified by the Target ASN sub-field. The Proxy ASN should remove this Proxy Community Community value when announcing this route to any AS. In the case of a two octet ASN, the first two octets are set to zero, as padding. Target ASN - Target ASN sub-field. This sub-field contains the ASN that receives the embedded community value specified in the Community Value sub-field. In the case of a two octet ASN, the first two octets are set to zero, as padding. Attr. Type Code - Attribute Type Code sub-field. This sub-field contains the Attribute Type Code for the value specified in the Community Value sub-field. It can take one of three values. RFC 1997 BGP Communities [RFC1997] have an Attribute Type Code value of 0x08. BGP Extended Communities [STR03] use a value of 0x10. The value for Flexible BGP Communities [L03] has not yet been determined. Community Value - Community Value sub-field. This sub-field contains the BGP Community value that the Proxy ASN should set when announcing the route to the Target ASN. The value of the Attribute Type Code sub-field will determine what kind of community value it contains. 3. Example +-------------+ +---------+ +---------+ +---------+ | 12.0.0.0/8 | | | | | | | | AS A1 |=======| AS A2 |=======| AS A4 |=======| AS A6 | | | | | | | | | +-------------+ +---------+ +---------+ +---------+ | | | | | | | | | | +---------+ | | | | | | | | | +==| AS A5 |==+ | | | | | | +---------+ | | | | | | +---------+ | | | | | +======================| AS A3 |======+ | | +---------+ Sharad Agarwal, and Timothy G. Griffin Section 3. [Page 7] INTERNET-DRAFT Expires: July 2004 January 2004 In the example shown above, when AS4 receives 12.0.0.0/8 it has three AS paths available (A2, A1), (A5, A2, A1) and (A3, A1). The originating AS A1 desires traffic from AS A6 to traverse the AS path (A4, A5, A2, A1). AS A4 publishes BGP Community Attribute values that allow the setting of the BGP LOCAL_PREF attribute [RFC1998]. BGP Community value A4:0xFFFF sets the BGP LOCAL_PREF to the highest value 0xFFFFFFFF. Thus, AS A1 attaches the following Flexible BGP Community value to the route for route prefix 12.0.0.0/8: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0|1| 0x01 |1| TBD BY IANA | 0x00 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x00 | A1 | 0x0D | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x0000 | A5 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x0000 | A4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x08 | A4 | 0xFF | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0xFF | +-+-+-+-+-+-+-+-+ Due to the addition of this BGP Attribute, the route is re-announced to AS A2, which re-announces it to AS A4 and AS A5. Since AS A5 is the Proxy AS, it strips the Proxy Community value and sends the community value it contains (A4:0xFFFF) with the route to the target peer (AS A4 in this case). AS A4 sets the BGP LOCAL_PREF for this route to 0xFFFFFFFF and causes this route to be preferred over all others. AS A6 receives the route with AS path (A4, A5, A2, A1). 4. Operations A route MAY carry multiple BGP Proxy Community Community values. Each value MAY specify a different Proxy ASN. Multiple BGP Proxy Community Community values MAY be specified for the same Proxy ASN but different Target ASN. In this case, a BGP speaker in the Proxy ASN SHOULD apply only the Community Values specified in the BGP Proxy Community Community value for the relevant Target ASN when advertising to that Target ASN. Multiple BGP Proxy Community Community values MAY be specified for the same Proxy ASN and the same Target ASN. In this case, a BGP speaker in the Proxy ASN SHOULD apply each of the Community Values Sharad Agarwal, and Timothy G. Griffin Section 4. [Page 8] INTERNET-DRAFT Expires: July 2004 January 2004 specified in each BGP Proxy Community Community value when advertising to the Target ASN. It SHOULD apply them in the same order as they exist in the route. A BGP speaker receiving a route MAY append a BGP Proxy Community Community value to the route when propagating it to its peers. A BGP speaker receiving a route with the BGP Proxy Community Community value MAY modify it according to the local policy. A BGP speaker in the Proxy ASN SHOULD remove the BGP Proxy Community Community value from the route when advertising it across the Autonomous system boundary. However, the value SHOULD NOT be removed when advertising the route across the BGP Confederation boundary. A BGP speaker not in the Proxy ASN SHOULD NOT remove the BGP Proxy Community Community value from the route when advertising it across the Autonomous system boundary. 5. Intellectual Property The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11 [RFC2028]. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. 6. Acknowledgments We thank Dave Meyer and Vijay Gill for their suggestions and feedback. Sharad Agarwal, and Timothy G. Griffin Section 6. [Page 9] INTERNET-DRAFT Expires: July 2004 January 2004 7. Security Considerations BGP does not provide any specific mechanisms to prevent the unauthorized alteration, addition or deletion of routing information by an intermediate routing agent, without the knowledge of the originating routing agent. The Proxy Community Community does not change this underlying security issue. However, the addition or modification of this community by an intermediate routing agent may allow traffic destined to a route prefix to traverse an intermediate entity with malicious intent, or cause a denial of service by making the route prefix unreachable. 8. IANA Considerations This document requests that a new Flexible BGP communities type sub- field value be assigned by IANA by IETF consensus as defined in RFC 2434 [RFC2434]. There are seven types already defined [L03]. If no other types have been assigned, Proxy Community Community can take value 0x0008. Sharad Agarwal, and Timothy G. Griffin Section 8. [Page 10] INTERNET-DRAFT Expires: July 2004 January 2004 9. References 9.1. Normative References [BCH^+03] O. Bonaventure, S. De Cnodder, J. Haas, B. Quoitin, and R. White, "Controlling the redistribution of BGP routes", draft-ietf-grow-bgp-redistribution-00.txt, work in progress, June 2003. [H03] G. Huston, "NOPEER community for BGP route scope control", draft-ietf-ptomaine-nopeer-03.txt, work in progress, May 2003. [L03] A. Lange, "Flexible BGP Communities", draft-lange-flexible-bgp-communities-01.txt, work in progress, June 2003. [QB02] B. Quoitin and O. Bonaventure, "A survey of the utilization of the BGP community attribute", Technical report Infonet-TR-2002-02, http://www.infonet.fundp.ac.be/doc/tr/, March 2002. [QUB02] B. Quoitin, S. Uhlig, and O. Bonaventure, "Using redistribution communities for interdomain traffic engineering", COST263 Workshop of Quality of Future Internet Services, LNCS Springer-Verlag, October 2002. [RFC1997] R. Chandra, P. Traina and T. Li, "BGP Communities Attribute", RFC 1997, August 1996. [RFC1998] E. Chen and T. Bates, "An Application of the BGP Community Attribute in Multi-home Routing", RFC 1998, August 1996. [STR03] S. Sangli, D. Tappan, and Y. Rekhter, "BGP Extended Communities Attribute", draft-ietf-idr-bgp-ext-communities-06.txt, work in progress, August 2003. 9.2. Informative References [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 3", RFC 2026/BCP 9, October, 1996. [RFC2028] Hovey, R. and S. Bradner, "The Organizations Sharad Agarwal, and Timothy G. Griffin Section 9.2. [Page 11] INTERNET-DRAFT Expires: July 2004 January 2004 Involved in the IETF Standards Process", RFC 2028/BCP 11, October, 1996. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, March, 1997. [RFC2434] Narten, T., and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", RFC 2434/BCP 26, October 1998. Sharad Agarwal, and Timothy G. Griffin Section 9.2. [Page 12] INTERNET-DRAFT Expires: July 2004 January 2004 10. Author's Addresses Sharad Agarwal University of California, Berkeley Email: sagarwal@cs.berkeley.edu URL : http://www.cs.berkeley.edu/~sagarwal/ Timothy G. Griffin Intel Research, Cambridge Email: tim.griffin@intel.com URL: http://www.cambridge.intel-research.net/~tgriffin/ 11. Full Copyright Statement Copyright (C) The Internet Society (2004). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Sharad Agarwal, and Timothy G. Griffin Section 11. [Page 13]