IDR Working Group                                              R. Raszuk
Internet-Draft                                             Cisco Systems
Intended status: Standards Track                                 J. Haas
Expires: April 19, 2011                                 Juniper Networks
                                                          R. Steenbergen
                                             nLayer Communications, Inc.
                                                             B. Decraene
                                                          France Telecom
                                                                P. Jakma
                                                    DCS, Uni. of Glasgow
                                                        October 16, 2010


                     Wide BGP Communities Attribute
                  draft-raszuk-wide-bgp-communities-01

Abstract

   Communicating various routing policies via route tagging plays an
   important role in external BGP peering relations.  It is also a very
   common best practice among operators to propagate various additional
   information about routes intra domain.  The most common tool used
   today to attach various information about routes is realized with the
   use of BGP communities.

   Such information is important for the BGP speakers to perform some
   mutually agreed actions without the need to maintain a separate
   offline database for each pair of prefix and an associated with it
   requested set of action entries.

   This document defines a new encoding which will enhance and simplify
   what can be accomplished today with the use of BGP communities.  The
   most important addition this specification brings over currently
   defined BGP communities is the ability to specify, carry as well as
   use for execution operator's defined set of parameters.
   Specification also provides an extensible platform for any new
   community encoding needs in the future.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   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/.




Raszuk, et al.           Expires April 19, 2011                 [Page 1]


Internet-Draft            wide-bgp-communities              October 2010


   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 April 19, 2011.

Copyright Notice

   Copyright (c) 2010 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
   carefully, as they describe your rights and restrictions with respect
   to 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 are provided without warranty as
   described in the Simplified BSD License.






























Raszuk, et al.           Expires April 19, 2011                 [Page 2]


Internet-Draft            wide-bgp-communities              October 2010


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Wide BGP Community Attribute . . . . . . . . . . . . . . . . .  4
   3.  Wide BGP Community Attribute Containers  . . . . . . . . . . .  5
     3.1.  Fixed size container template  . . . . . . . . . . . . . .  6
     3.2.  Variable size container template . . . . . . . . . . . . .  6
   4.  Container Type 1: Wide Community . . . . . . . . . . . . . . .  7
     4.1.  Container Type 1 - TTL . . . . . . . . . . . . . . . . . .  7
     4.2.  Container Type 1 - Length  . . . . . . . . . . . . . . . .  8
     4.3.  Container Type 1 - Community Value . . . . . . . . . . . .  8
     4.4.  Container Type 1 - Source AS number  . . . . . . . . . . .  8
     4.5.  Container Type 1 - Community Parameters  . . . . . . . . .  8
   5.  Well Known Standard BGP Communities  . . . . . . . . . . . . .  9
   6.  Operational considerations . . . . . . . . . . . . . . . . . .  9
   7.  Example  . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
   8.  Security considerations  . . . . . . . . . . . . . . . . . . . 11
   9.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 11
   10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 12
   11. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 13
   12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
     12.1. Normative References . . . . . . . . . . . . . . . . . . . 13
     12.2. Informative References . . . . . . . . . . . . . . . . . . 13
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14



























Raszuk, et al.           Expires April 19, 2011                 [Page 3]


Internet-Draft            wide-bgp-communities              October 2010


1.  Introduction

   RFC 1997 [RFC1997] defines a BGP Community Attribute to be used as a
   tool to contain in BGP update message various additional information
   about routes which may help to automate peering administration.  As
   defined in RFC 1997 [RFC1997] BGP Communities Attribute consists of
   one or more sets of four octet values, where each one of them
   specifies a different community.  Except two reserved ranges the
   encoding of community values mandates that first two octets are to
   contain the Autonomous System number followed by next two octets
   containing locally defined value.

   With the introduction of 4-octet Autonomous System numbers by RFC
   4893 [RFC4893] it became obvious that BGP Communities as specified in
   RFC 1997 will not be able to accommodate new AS encoding.  In fact
   RFC 4893 explicitly recommends use of four octets AS specific
   extended communities as a way to encode new 4 octet AS numbers.

   While encoding of 4 octet AS numbers are being addressed by
   [draft-ietf-idr-as4octet-extcomm-generic-subtype] neither the base
   BGP communities (both standard or extended) nor as4octet-extcomm-
   generic document define sufficient level of encoding freedom which
   could be of practical use.  Authors believe that defining a new BGP
   Path Attribute which will provide ability to contain locally defined
   parameters will enhance current level of network policies as well as
   simplify BGP policy management.  Proposed simple encoding will also
   enable to deliver a set of new network services without a need to
   define a new BGP extension each time.

   While defining a new type of any tool there is always a unique
   opportunity to specify a subset of well recognized behaviors.  List
   of the most commonly used today BGP communities as well as provision
   for a new registry for future definitions will be contained in a
   separate document.


2.  Wide BGP Community Attribute

   For the purposes of encoding for Wide BGP Communities a new BGP Path
   Attribute has been defined.  The attribute type code is of the value
   (TBC by IANA).

   Wide BGP Community Attribute is an optional, transitive BGP
   attribute, and may be present only once in the update message.

   The attribute contains a number of typed containers, which are either
   fixed or variable in size.  Any given container type may appear
   multiple times, unless that container type's definition says



Raszuk, et al.           Expires April 19, 2011                 [Page 4]


Internet-Draft            wide-bgp-communities              October 2010


   otherwise.


3.  Wide BGP Community Attribute Containers

   Two container templates are defined for carrying BGP community
   information, to hold fixed or variably sized data.  All container
   definitions MUST conform with one of these two templates.

   Containers always start with the following header:


                      0                   1
                      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
                     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     |      Type     |     Flags     |
                     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                             Container header

   Flags are defined globally, to apply to all community container
   types.

     Bit 0: 0 => local community value
            1 => registered community value
         1: 0 => do not decrement TTL field across confederation
                 boundaries
            1 => decrement TTL across confederation boundaries
     2...7:   => ignored, preserve or set to zero.

   Bit 0 set (value 1) indicates that the given container carries a Wide
   BGP Community which is registered with IANA.  When not set (value 0)
   it indicates that community value which follows is locally assigned
   with a local meaning.  Ignored bits SHOULD be preserved in any
   received containers, or set to 0 otherwise.  Bit 1 is used to manage
   propagation scope of given community across confederation boundaries.
   When not set (value of 0) TTL field is not consider at the sub-AS
   boundaries.  When set (value of 1) sub-AS border router follows the
   same procedure reg handling TTL field as applicable to ASBR at the
   domain boundary.










Raszuk, et al.           Expires April 19, 2011                 [Page 5]


Internet-Draft            wide-bgp-communities              October 2010


3.1.  Fixed size container template


      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |       Type    |     Flags     |      Value - fixed size       |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                    Figure 3: Fixed size type container

3.2.  Variable size container template



      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |       Type    |     Flags     |            Length             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                          Value .....                          |



            Figure 4: Variable size type container (TLV Format)

























Raszuk, et al.           Expires April 19, 2011                 [Page 6]


Internet-Draft            wide-bgp-communities              October 2010


4.  Container Type 1: Wide Community

   Wide BGP Community Type 1 container is of variable size and is
   encoded as follows:

      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
     +-+-+-+-+-+-+-+-+
     |     0x01      |
     +-+-+-+-+-+-+-+-+
     |R C 0 0 0 0 0 0|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |            Length             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |       TTL     |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                        Source AS number                       |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                     Registered/Local value                    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |        Parameter/s (optional, variable)...                    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   R is the value of the registered/local bit.  C is the value
   indicating how to treat TTL field across confederation boundaries.

                    Figure 4: Wide BGP Community Type 1

4.1.  Container Type 1 - TTL

   TTL: 1 octet

   This field represents the forwarding radius in the unit of AS hops
   for given Wide BGP Community.  At each AS boundary when propagating
   given community over an EBGP session the TTL field must be
   decremented by value of 1 by the sending EBGP speaker.  TTL with
   value of zero received to the ASBR over IBGP session indicates that
   this community must not cross an AS boundary.

   The special value of 0xFF indicates that the enclosed community may
   be always propagated over EBGP boundary.  Value of 0xFF must not be
   decremented during propagation.

   The exact same procedures as described above applies also to sub-
   confederation boundaries when the global C flag is set to 1.





Raszuk, et al.           Expires April 19, 2011                 [Page 7]


Internet-Draft            wide-bgp-communities              October 2010


4.2.  Container Type 1 - Length

   The length represents the total lengths of a given container in
   octets.  The minimum length when no optional parameters are attached
   is 13 octets.

4.3.  Container Type 1 - Community Value

   Community Value: 2 octets

      The Wide BGP Community value encoded in this field indicates
      private/local or registered Wide BGP Community type which defines
      what set of actions a router is requested or recommended to take
      upon reception of routes with such BGP communities.

4.4.  Container Type 1 - Source AS number

   Source Autonomous System number: 4 octets

   The Autonomous System number which indicates the originator of given
   Wide BGP Community.

   When Autonomous System is a two octet number the first two octets of
   this 4 octet value are to be filled with zeros.

4.5.  Container Type 1 - Community Parameters

   Parameters: variable size

   Community parameter are defined to contain additional data for
   execution of given BGP community.

   Community parameter field could consist of an autonomous system
   number(s) which should be conditionally compared when executing given
   community, AS PATH prepend count to be added, local preference value
   to be inserted under some conditions, markers indicating number of
   BGP speakers traversed, cumulative IGP metrics to be used for
   transparent redistribution, etc...

   For consistent Autonomous System treatment all encoded AS numbers
   SHOULD be encoded as 4 octet values.  When such AS is a two octet
   number the first two octets of this 4 octet value are to be filled
   with zeros.

   Two special values are reserved in the Parameter Autonomous System
   number field: 0x00000000 - to indicate "None of Autonomous Systems"
   and value of 0xFFFFFFFF - to indicate "All of Autonomous Systems".




Raszuk, et al.           Expires April 19, 2011                 [Page 8]


Internet-Draft            wide-bgp-communities              October 2010


   The detailed interpretation of each set of parameters will be
   provided when describing given community type in a separate document
   or when locally defined by an operator.


5.  Well Known Standard BGP Communities

   According to RFC 1997 as well as to IANA's Well-Known BGP Communities
   registry today the following BGP communities are defined to have
   global significance:


        0xFFFF0000   planned-shut         [draft-francois-bgp-gshut]
        0xFFFFFF01   NO_EXPORT            [RFC1997]
        0xFFFFFF02   NO_ADVERTISE         [RFC1997]
        0xFFFFFF03   NO_EXPORT_SUBCONFED  [RFC1997]
        0xFFFFFF04   NOPEER               [RFC3765]

   This document recommends for simplicity as well as for avoidance of
   backward compatibility issues the continued use of BGP Standard
   Community Attribute type 8 as defined in RFC 1997 to distribute non
   Autonomous System specific Well-Known BGP Communities.

   For the same reason the described registry does not intended to
   obsolete BGP Extended Community Attribute and any already defined and
   already deployed extended communities.


6.  Operational considerations

   Having two different ways to propagate locally assigned BGP
   communities, one via use of Standard BGP Community attribute and the
   other one via use of Wide BGP Community may seem to potentially cause
   problems when considering propagation of conflicting actions.

   However it needs to be noticed and pointed out that today even within
   Standard BGP Communities operator or operators may append similar
   conflicting information to already existing community propagation
   tool set.

   It is therefor recommended that any implementation when supporting
   both standard and wide BGP communities will allow for their easy
   inbound and outbound policing.  For the actual execution all
   communities should be treated as union and if supported by an
   implementation their execution permission are to be a local
   configuration matter.

   When advertising as well as during insertion of Wide BGP Communities



Raszuk, et al.           Expires April 19, 2011                 [Page 9]


Internet-Draft            wide-bgp-communities              October 2010


   which are predefined as range of values - only use of one value of
   selected range is allowed.


7.  Example

   An operator wishes to tag incoming routes with a policy specifying
   that during their advertisement to two peering ASes 2424 and 8888 or
   during their advertisement to peers marked as RED (0xFF0000) the
   routes carrying such community will be advertised with AS_PREPEND
   equal to 4.

   That can be easily accomplished by locally defining by an operator a
   new wide community value using type 1 proposed encoding as below:


     PREPEND 4 TIMES TO AS 2424 or 8888 or to peers marked as RED

       TTL - 0x00
       LENGTH - 26 octets
       VALUE - 01 / 0x12
       PARAMETERS - 2 x 4 octets AS number
                    1 x class of peers
                    1 octet prepend's number



























Raszuk, et al.           Expires April 19, 2011                [Page 10]


Internet-Draft            wide-bgp-communities              October 2010


      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
     +-+-+-+-+-+-+-+-+
     |     0x1       |
     +-+-+-+-+-+-+-+-+
     |0 0 0 0 0 0 0 0|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   Length:    26               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     TTL: 0    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                           Own ASN                             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |        Community: LOCAL PREPEND ACTION CATEGORY I             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |           Target ASN# 2424  (0x00000978)                      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |           Target ASN# 8888  (0x000022B8)                      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |              Peer color RED 0x00FF0000                        |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |  Prepend #: 4 |
     +-+-+-+-+-+-+-+-+



8.  Security considerations

   All the security considerations for BGP Communities as well as for
   BGP RFCs apply here.


9.  IANA Considerations

   This document defines a new BGP Path Attribute called Wide BGP
   Communities Attribute.  For this new type IANA is to allocate new
   type value in the corresponding registry:

   Registry Name: BGP Path Attributes

   This document makes the following assignments for the optional,
   transitive Wide BGP Communities Attribute:









Raszuk, et al.           Expires April 19, 2011                [Page 11]


Internet-Draft            wide-bgp-communities              October 2010


            Name                                     Type Value
            ----                                     ----------
            Wide BGP Community Attribute                 27


   This document requests IANA to define and maintain a new registry
   named: "Wide BGP Communities Attribute Container Types".

   The pool of: 0x00-0xFF has been defined for its allocations.  The
   allocation policy is on a first come first served basis.

   This document makes the following assignments for the Wide BGP
   Communities Attribute Types values:


                Name                             Type Value
                ----                             ----------
                Reserved                           0x00
                Type 1                             0x01
                Types 2-254 to be allocated on FCFS basis
                Reserved                           0xFF



10.  Contributors

   The following people contributed significantly to the content of the
   document:


   Shintaro Kojima
   OTEMACHI 1st. SQUARE EAST TOWER, 3F
   1-5-1, Otemachi,
   Chiyoda-ku, Tokyo 100-0004
   Japan
   Email: koji@mfeed.ad.jp


   Juan Alcaide
   Cisco Systems
   Research Triangle Park, NC
   United States
   Email: jalcaide@cisco.com








Raszuk, et al.           Expires April 19, 2011                [Page 12]


Internet-Draft            wide-bgp-communities              October 2010


   Burjiz Pithawala
   Cisco Systems
   170 West Tasman Dr
   San Jose, CA
   United States
   Email: bpithaw@cisco.com


   Saku Ytti
   TDC Oy
   Mechelininkatu 1a
   00094 TDC
   Finland
   Email: ytti@tdc.net


11.  Acknowledgments

   Authors would like to thank Enke Chen, Pedro Marques and Alton Lo for
   their valuable input.


12.  References

12.1.  Normative References

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

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

   [RFC4360]  Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended
              Communities Attribute", RFC 4360, February 2006.

12.2.  Informative References

   [RFC1997]  Chandrasekeran, R., Traina, P., and T. Li, "BGP
              Communities Attribute", RFC 1997, August 1996.

   [RFC1998]  Chen, E. and T. Bates, "An Application of the BGP
              Community Attribute in Multi-home Routing", RFC 1998,
              August 1996.

   [RFC4384]  Meyer, D., "BGP Communities for Data Collection", BCP 114,
              RFC 4384, February 2006.

   [RFC4893]  Vohra, Q. and E. Chen, "BGP Support for Four-octet AS



Raszuk, et al.           Expires April 19, 2011                [Page 13]


Internet-Draft            wide-bgp-communities              October 2010


              Number Space", RFC 4893, May 2007.

   [RFC5668]  Rekhter, Y., Sangli, S., and D. Tappan, "4-Octet AS
              Specific BGP Extended Community", RFC 5668, October 2009.


Authors' Addresses

   Robert Raszuk
   Cisco Systems
   170 West Tasman Drive
   San Jose, CA  95134
   US

   Email: raszuk@cisco.com


   Jeffrey Haas
   Juniper Networks
   1194 N.Mathilda Ave
   Sunnyvale, CA  94089
   US

   Email: jhaas@pfrc.org


   Richard A Steenbergen
   nLayer Communications, Inc.
   209 W Jackson Blvd
   Chicago, IL  60606
   US

   Email: ras@nlayer.net


   Bruno Decraene
   France Telecom
   38-40 rue du General Leclerc
   Issi Moulineaux cedex 9  92794
   France

   Email: bruno.decraene@orange-ftgroup.com









Raszuk, et al.           Expires April 19, 2011                [Page 14]


Internet-Draft            wide-bgp-communities              October 2010


   Paul Jakma
   School of Computing Science, Uni. of Glasgow
   Sir Alwyn Williams Building
   University of Glasgow
   Glasgow  G1 5AE
   UK

   Email: paulj@dcs.gla.ac.uk











































Raszuk, et al.           Expires April 19, 2011                [Page 15]