Internet DRAFT - draft-agarwal-bgp-proxy-community

draft-agarwal-bgp-proxy-community




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
               <draft-agarwal-bgp-proxy-community-00.txt>



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]