< draft-ietf-idr-large-community-06.txt   draft-ietf-idr-large-community-07.txt >
IDR J. Heitz, Ed. IDR J. Heitz, Ed.
Internet-Draft Cisco Internet-Draft Cisco
Intended status: Standards Track J. Snijders, Ed. Intended status: Standards Track J. Snijders, Ed.
Expires: May 3, 2017 NTT Expires: May 7, 2017 NTT
K. Patel K. Patel
Arrcus Arrcus
I. Bagdonas I. Bagdonas
Equinix Equinix
A. Simpson A. Simpson
Nokia Nokia
N. Hilliard N. Hilliard
INEX INEX
October 30, 2016 November 3, 2016
Large BGP Communities BGP Large Communities
draft-ietf-idr-large-community-06 draft-ietf-idr-large-community-07
Abstract Abstract
This document describes the Large BGP Communities attribute, an This document describes the BGP Large Communities attribute, an
extension to BGP-4. This attribute provides a mechanism to signal extension to BGP-4. This attribute provides a mechanism to signal
opaque information within separate namespaces to aid in routing opaque information within separate namespaces to aid in routing
management. The attribute is suitable for use with four-octet ASNs. management. The attribute is suitable for use with four-octet ASNs.
Requirements Language Requirements Language
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].
skipping to change at page 1, line 48 skipping to change at page 1, line 48
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 3, 2017. This Internet-Draft will expire on May 7, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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 . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Large BGP Communities Attribute . . . . . . . . . . . . . . . 3 2. BGP Large Communities Attribute . . . . . . . . . . . . . . . 3
3. Aggregation . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Aggregation . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Canonical Representation . . . . . . . . . . . . . . . . . . 4 4. Canonical Representation . . . . . . . . . . . . . . . . . . 4
5. Reserved Large BGP Community values . . . . . . . . . . . . . 4 5. Reserved BGP Large Community values . . . . . . . . . . . . . 4
6. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 4 6. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 5
7. Security Considerations . . . . . . . . . . . . . . . . . . . 5 7. Security Considerations . . . . . . . . . . . . . . . . . . . 5
8. Implementation status - RFC EDITOR: REMOVE BEFORE PUBLICATION 5 8. Implementation status - RFC EDITOR: REMOVE BEFORE PUBLICATION 5
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 6 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 6
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 7
12.1. Normative References . . . . . . . . . . . . . . . . . . 7 12.1. Normative References . . . . . . . . . . . . . . . . . . 7
12.2. Informative References . . . . . . . . . . . . . . . . . 7 12.2. Informative References . . . . . . . . . . . . . . . . . 7
12.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 8 12.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction 1. Introduction
BGP implementations typically support a routing policy language to BGP implementations typically support a routing policy language to
control the distribution of routing information. Network operators control the distribution of routing information. Network operators
attach BGP communities to routes to identify intrinsic properties of attach BGP communities to routes to associate particular properties
these routes. These properties may include information such as the with these routes. These properties may include information such as
route origin location, or specification of a routing policy action to the route origin location, or specification of a routing policy
be taken, or one that has been taken, and may apply to an individual action to be taken, or one that has been taken, and is applied to all
route or to a group of routes. Because BGP communities are optional routes contained in a BGP Update Message where the Communities
Attribute is included. Because BGP communities are optional
transitive BGP attributes, BGP communities may be acted upon or transitive BGP attributes, BGP communities may be acted upon or
otherwise used by routing policies in other Autonomous Systems (ASes) otherwise used by routing policies in other Autonomous Systems (ASes)
on the Internet. on the Internet.
[RFC1997] BGP Communities attributes are four-octet values split into BGP Communities attributes are four-octet values [RFC1997]. Common
two two-octet words. The most significant word is interpreted as an use of this attribute type splits this single 32-bit value field into
two 16-bit values. The most significant word is interpreted as an
Autonomous System Number (ASN) and the least significant word is a Autonomous System Number (ASN) and the least significant word is a
locally defined value whose meaning is assigned by the operator of locally defined value whose meaning is assigned by the operator of
the Autonomous System in the most significant word. the Autonomous System in the most significant word.
Since the adoption of four-octet ASNs [RFC6793], the BGP Communities Since the adoption of four-octet ASNs [RFC6793], the BGP Communities
attribute can no longer accommodate the above encoding, as a two- attribute can no longer accommodate the above encoding, as a two-
octet word cannot fit a four-octet ASN. The BGP Extended Communities octet word cannot fit a four-octet ASN. The BGP Extended Communities
attribute [RFC4360] is also unsuitable, as the protocol limit of six attribute [RFC4360] is also unsuitable, as the protocol limit of six
octets cannot accommodate both a four-octet Global Administrator octets for each community value cannot accommodate both a four-octet
value and a four-octet Local Administrator value, which precludes the Global Administrator value and a four-octet Local Administrator
common operational practice of encoding a target ASN in the Local value. This limitation precludes the common operational practice of
Administrator field. encoding a target ASN in the Local Administrator field.
To address these shortcomings, this document defines a Large BGP To address these shortcomings, this document defines a BGP Large
Communities attribute encoded as one or more twelve-octet values, Communities attribute encoded as one or more twelve-octet values,
each consisting of a four-octet Global Administrator field and two each consisting of a four-octet Global Administrator field and two
four-octet operator-defined fields, each of which can be used to four-octet operator-defined fields, each of which can be used to
denote properties or actions significant to the operator of the denote properties or actions significant to the operator of the
Autonomous System assigning the values. Autonomous System assigning the values.
2. Large BGP Communities Attribute 2. BGP Large Communities Attribute
This document creates the Large BGP Communities attribute as an This document creates the BGP Large Communities attribute as an
optional transitive path attribute of variable length. All routes optional transitive path attribute of variable length. All routes
with the Large BGP Communities attribute belong to the community with the BGP Large Communities attribute belong to the community
specified in the attribute. specified in the attribute.
The attribute consists of one or more twelve-octet values. Each The attribute consists of one or more twelve-octet values. Each
twelve-octet Large BGP Communities value represents three four-octet twelve-octet BGP Large Communities value represents three four-octet
values, as follows: values, as follows:
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Global Administrator | | Global Administrator |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Data Part 1 | | Local Data Part 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Data Part 2 | | Local Data Part 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Global Administrator: A four-octet namespace identifier. This Global Administrator: A four-octet namespace identifier.
SHOULD be an Autonomous System Number.
Local Data Part 1: A four-octet operator-defined value. Local Data Part 1: A four-octet operator-defined value.
Local Data Part 2: A four-octet operator-defined value. Local Data Part 2: A four-octet operator-defined value.
The Global Administrator field is intended to allow different The Global Administrator field is intended to allow different
Autonomous Systems to define Large BGP Communities without collision. Autonomous Systems to define BGP Large Communities without collision.
Implementations MUST allow the operator to specify any value for the This field MUST be either one of the reserved values as defined
Global Administrator field. below, or an Autonomous System Number (ASN). If it is a reserved
value, then the Local Data Parts are as defined by the reserved
value. If it is an ASN then the Local Data Parts are to be
interpreted as defined by the owner of the ASN. When used in small
closed environments, the values MAY be any values. Thus,
implementations MUST allow the operator to specify any value for any
of the fields.
There is no significance to the order in which Large BGP Communities There is no significance to the order in which BGP Large Communities
are encoded in the BGP path attribute payload. A BGP speaker can are encoded in the BGP path attribute payload. A BGP speaker can
transmit them in any order. transmit them in any order.
Duplicate Large BGP Communities SHOULD NOT be transmitted. A Duplicate BGP Large Communities SHOULD NOT be transmitted. A
receiving speaker SHOULD silently remove duplicate Large BGP receiving speaker SHOULD silently remove duplicate BGP Large
Communities from a BGP UPDATE message. Communities from a BGP UPDATE message.
3. Aggregation 3. Aggregation
If a range of routes is aggregated, then the resulting aggregate If a range of routes is aggregated, then the resulting aggregate
should have a Large BGP Communities attribute which contains all of should have a BGP Large Communities attribute which contains all of
the Large BGP Communities attributes from all of the aggregated the BGP Large Communities attributes from all of the aggregated
routes. routes.
4. Canonical Representation 4. Canonical Representation
Large BGP Communities MUST be represented as three separate unsigned The canonical representation of BGP Large Communities is three
integers in decimal notation in the following order: Global separate unsigned integers in decimal notation in the following
Administrator, Local Data 1, Local Data 2. Numbers MUST NOT contain order: Global Administrator, Local Data 1, Local Data 2. Numbers
leading zeros; a zero value MUST be represented with a single zero. MUST NOT contain leading zeros; a zero value MUST be represented with
For example: 64496:4294967295:2, 64496:0:0, or (64496, 111, 222). a single zero. Each number is separated from the next by a single
colon. For example: 64496:4294967295:2, 64496:0:0.
5. Reserved Large BGP Community values BGP Large Communities MUST be represented in the canonical
representation. A routing policy language MAY use separators other
than colons. A routing policy language MAY use prefixes and
postfixes before and after a Large Community.
5. Reserved BGP Large Community values
The following Global Administrator values are reserved: 0 (the first The following Global Administrator values are reserved: 0 (the first
ASN) [RFC7607], 65535 (UINT16_MAX) and 4294967295 (the last ASN) ASN) [RFC7607], 65535 (UINT16_MAX) and 4294967295 (the last ASN)
[RFC7300]. Operators SHOULD NOT use these Global Administrator [RFC7300]. Operators SHOULD NOT use these Global Administrator
values. values.
Although this document does not define any Special-Use Large BGP Although this document does not define any Special-Use BGP Large
Communities, the Global Administrator values specified above could be Communities, the Global Administrator values specified above could be
used if there is a future need for them. used if there is a future need for them.
6. Error Handling 6. Error Handling
The error handling of Large BGP Communities is as follows: The error handling of BGP Large Communities is as follows:
o A Large BGP Communities attribute SHALL be considered malformed if o A BGP Large Communities attribute SHALL be considered malformed if
its length is not a non-zero multiple of 12. the length of the BGP Large Communities value, expressed in
octets, is not a non-zero multiple of 12.
o A BGP UPDATE message with a malformed Large BGP Communities o A BGP UPDATE message with a malformed BGP Large Communities
attribute SHALL be handled using the approach of "treat-as- attribute SHALL be handled using the approach of "treat-as-
withdraw" as described in section 2 [RFC7606]. withdraw" as described in section 2 [RFC7606].
The Large BGP Communities Global Administrator field may contain any The BGP Large Communities Global Administrator field may contain any
value, and a Large BGP Communities attribute MUST NOT be considered value, and a BGP Large Communities attribute MUST NOT be considered
malformed if the Global Administrator field contains an unallocated, malformed if the Global Administrator field contains an unallocated,
unassigned or reserved ASN or is set to one of the reserved Large BGP unassigned or reserved ASN or is set to one of the reserved BGP Large
Community values defined in Section 5. Community values defined in Section 5.
7. Security Considerations 7. Security Considerations
This extension to BGP has similar security implications as BGP This extension to BGP has similar security implications as BGP
Communities [RFC1997]. Communities [RFC1997].
This document does not change any underlying security issues This document does not change any underlying security issues
associated with any other BGP Communities mechanism. Specifically, associated with any other BGP Communities mechanism. Specifically,
an AS relying on the Large BGP Communities attribute carried in BGP an AS relying on the BGP Large Communities attribute carried in BGP
must have trust in every other AS in the path, as any intermediate must have trust in every other AS in the path, as any intermediate
Autonomous System in the path may have added, deleted, or altered the Autonomous System in the path may have added, deleted, or altered the
Large BGP Communities attribute. Specifying the mechanism to provide BGP Large Communities attribute. Specifying the mechanism to provide
such trust is beyond the scope of this document. such trust is beyond the scope of this document.
Network administrators should note the recommendations in Section 11 Network administrators should note the recommendations in Section 11
of BGP Operations and Security [RFC7454]. of BGP Operations and Security [RFC7454].
8. Implementation status - RFC EDITOR: REMOVE BEFORE PUBLICATION 8. Implementation status - RFC EDITOR: REMOVE BEFORE PUBLICATION
This section records the status of known implementations of the This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in [RFC7942]. Internet-Draft, and is based on a proposal described in [RFC7942].
The description of implementations in this section is intended to The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to assist the IETF in its decision processes in progressing drafts to
RFCs. Please note that the listing of any individual implementation RFCs. Please note that the listing of any individual implementation
here does not imply endorsement by the IETF. Furthermore, no effort here does not imply endorsement by the IETF. Furthermore, no effort
has been spent to verify the information presented here that was has been spent to verify the information presented here that was
supplied by IETF contributors. This is not intended as, and must not supplied by IETF contributors. This is not intended as, and must not
be construed to be, a catalog of available implementations or their be construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may features. Readers are advised to note that other implementations may
exist. exist.
As of today these vendors have produced an implementation of Large As of today these vendors have produced an implementation of BGP
BGP Communities: Large Communities:
o Cisco IOS XR o Cisco IOS XR
o ExaBGP o ExaBGP
o GoBGP o GoBGP
o BIRD o BIRD
o OpenBGPD o OpenBGPD
o pmacct o pmacct
o Quagga o Quagga
 End of changes. 32 change blocks. 
53 lines changed or deleted 68 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/