draft-ietf-grow-large-communities-usage-07.txt   rfc8195.txt 
Global Routing Operations J. Snijders Internet Engineering Task Force (IETF) J. Snijders
Internet-Draft J. Heasley Request for Comments: 8195 J. Heasley
Intended status: Informational NTT Category: Informational NTT
Expires: October 21, 2017 M. Schmidt ISSN: 2070-1721 M. Schmidt
i3D.net i3D.net
April 19, 2017 June 2017
Use of BGP Large Communities Use of BGP Large Communities
draft-ietf-grow-large-communities-usage-07
Abstract Abstract
This document presents examples and inspiration for operator's This document presents examples and inspiration for operator
application of BGP Large Communities. Based on operational application of BGP Large Communities. Based on operational
experience with BGP Communties, this document suggests logical experience with BGP Communities, this document suggests logical
categories of BGP Large Communities and demonstrates an orderly categories of BGP Large Communities and demonstrates an orderly
manner of organizing community values within them to achieve typical manner of organizing community values within them to achieve typical
goals in routing policy. Any operator can consider using the goals in routing policy. Any operator can consider using the
concepts presented as the basis for their own BGP Large Communities concepts presented as the basis for their own BGP Large Communities
repertoire. repertoire.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This document is not an Internet Standards Track specification; it is
provisions of BCP 78 and BCP 79. published for informational purposes.
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/.
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). Not all documents
approved by the IESG are a candidate for any level of Internet
Standard; see Section 2 of RFC 7841.
This Internet-Draft will expire on October 21, 2017. 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/rfc8195.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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 . . . . . . . . . . . . . . . . . . . . . . . . 3
2. The Design Overview . . . . . . . . . . . . . . . . . . . . . 3 2. The Design Overview . . . . . . . . . . . . . . . . . . . . . 3
2.1. Informational Communities . . . . . . . . . . . . . . . . 4 2.1. Informational Communities . . . . . . . . . . . . . . . . 4
2.2. Action Communities . . . . . . . . . . . . . . . . . . . 4 2.2. Action Communities . . . . . . . . . . . . . . . . . . . 5
3. Examples of Informational Communities . . . . . . . . . . . . 5 3. Examples of Informational Communities . . . . . . . . . . . . 5
3.1. Location . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1. Location . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1. An ISO 3166-1 Numeric Function . . . . . . . . . . . 5 3.1.1. An ISO 3166-1 Numeric Function . . . . . . . . . . . 6
3.1.2. An UN M.49 Region Function . . . . . . . . . . . . . 5 3.1.2. A UN M.49 Region Function . . . . . . . . . . . . . . 6
3.2. Relation Function . . . . . . . . . . . . . . . . . . . . 6 3.2. Relation Function . . . . . . . . . . . . . . . . . . . . 7
3.3. Combining Informational Communities . . . . . . . . . . . 6 3.3. Combining Informational Communities . . . . . . . . . . . 7
4. Examples of Action Communities . . . . . . . . . . . . . . . 7 4. Examples of Action Communities . . . . . . . . . . . . . . . 7
4.1. Selective NO_EXPORT . . . . . . . . . . . . . . . . . . . 7 4.1. Selective NO_EXPORT . . . . . . . . . . . . . . . . . . . 7
4.1.1. ASN Based Selective NO_EXPORT . . . . . . . . . . . . 7 4.1.1. ASN-Based Selective NO_EXPORT . . . . . . . . . . . . 8
4.1.2. Location Based Selective NO_EXPORT . . . . . . . . . 7 4.1.2. Location-Based Selective NO_EXPORT . . . . . . . . . 8
4.2. Selective AS_PATH Prepending . . . . . . . . . . . . . . 8 4.2. Selective AS_PATH Prepending . . . . . . . . . . . . . . 9
4.2.1. ASN Based Selective AS_PATH Prepending . . . . . . . 8 4.2.1. ASN-Based Selective AS_PATH Prepending . . . . . . . 9
4.2.2. Location Based Selective AS_PATH Prepending . . . . . 9 4.2.2. Location-Based Selective AS_PATH Prepending . . . . . 10
4.3. Manipulation of the LOCAL_PREF Attribute . . . . . . . . 9 4.3. Manipulation of the LOCAL_PREF Attribute . . . . . . . . 10
4.3.1. Global Manipulation of LOCAL_PREF . . . . . . . . . . 10 4.3.1. Global Manipulation of LOCAL_PREF . . . . . . . . . . 11
4.3.2. Region Based Manipulation of LOCAL_PREF . . . . . . . 10 4.3.2. Region-Based Manipulation of LOCAL_PREF . . . . . . . 11
4.3.3. Note of Caution for LOCAL_PREF Functions . . . . . . 11 4.3.3. Note of Caution for LOCAL_PREF Functions . . . . . . 12
4.4. Route Server Prefix Distribution Control . . . . . . . . 11 4.4. Route Server Prefix Distribution Control . . . . . . . . 12
5. Security Considerations . . . . . . . . . . . . . . . . . . . 12 5. Security Considerations . . . . . . . . . . . . . . . . . . . 13
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 14
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.1. Normative References . . . . . . . . . . . . . . . . . . 14
8.1. Normative References . . . . . . . . . . . . . . . . . . 13 7.2. Informative References . . . . . . . . . . . . . . . . . 14
8.2. Informative References . . . . . . . . . . . . . . . . . 13 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 15
8.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction 1. Introduction
BGP Large Communities [RFC8092] provide a mechanism to signal opaque BGP Large Communities [RFC8092] provide a mechanism to signal opaque
information between Autonomous Systems (ASs). In very much the same information between and within Autonomous Systems (ASes). In very
way that [RFC1998] provides a concrete real-world application for much the same way that [RFC1998] provides a concrete real-world
[RFC1997] communities, this document presents examples of how application for BGP Communities [RFC1997], this document presents
operators might utilize BGP Large Communities to achieve various examples of how operators might utilize BGP Large Communities to
goals. This document draws on the experience of operator communities achieve various goals. This document draws on the experience of
such as NANOG [1] and NLNOG [2]. operator communities such as the North American Network Operators'
Group (NANOG) <https://www.nanog.org/> and the Netherlands Network
Operator Group (NLNOG) <https://nlnog.net/>.
2. The Design Overview 2. The Design Overview
BGP Large Communities are composed of three 4-octet fields. The BGP Large Communities are composed of three 4-octet fields. The
first is the Global Administrator (GA) field, whose value is the first is the Global Administrator (GA) field, whose value is the
Autonomous System Number (ASN) of the AS that has defined the meaning Autonomous System Number (ASN) of the AS that has defined the meaning
of the remaining two 4-octet fields, known as "Local Data Part 1" and of the remaining two 4-octet fields, known as "Local Data Part 1" and
"Local Data Part 2". This document describes an approach where the "Local Data Part 2". This document describes an approach where the
"Local Data Part 1" field contains a function identifier and the "Local Data Part 1" field contains a function identifier and the
"Local Data Part 2" contains a parameter value. Using the canonical "Local Data Part 2" contains a parameter value. Using the canonical
notation this format can be summarized as "ASN:Function:Parameter". notation this format can be summarized as "ASN:Function:Parameter".
+----------------------+---------------+ +----------------------+---------------+
| RFC 8092 | this document | | RFC 8092 | this document |
+----------------------+---------------+ +----------------------+---------------+
| Global Administrator | ASN | | Global Administrator | ASN |
| Local Data Part 1 | Function | | Local Data Part 1 | Function |
| Local Data Part 2 | Parameter | | Local Data Part 2 | Parameter |
+----------------------+---------------+ +----------------------+---------------+
A mapping table on the use of fields in BGP Large Communities between
[RFC8092] and this document.
Table 1: Field Mapping Table 1: Field Mapping
The table above shows a mapping table between the fields in BGP Large
Communities [RFC8092] and this document.
In contemporary deployments of both BGP Communities [RFC1997] and BGP In contemporary deployments of both BGP Communities [RFC1997] and BGP
Large Communities, the function of a community can be divided into Large Communities [RFC8092], the function of a community can be
two categories: divided into two categories:
o Informational Communities o Informational Communities
o Action Communities o Action Communities
Throughout the document, a topology of four ASes is used to
Throughout the document a topology of four ASs is used to illustrate illustrate the use of communities in the following configuration:
the use of communities in the following configuration:
AS 65551 AS 65551
| |
^ ^
| |
AS 64497 AS 64497
/ \ / \
^ \ ^ \
/ ^ / ^
AS 64498 \ AS 64498 \
skipping to change at page 4, line 14 skipping to change at page 4, line 28
AS 64497 obtains transit services from (is a customer of) AS 65551, a AS 64497 obtains transit services from (is a customer of) AS 65551, a
4-octet ASN. AS 64497 provides transit services to both AS 64498 and 4-octet ASN. AS 64497 provides transit services to both AS 64498 and
AS 64499. AS 64498 and AS 64499 maintain a peering relationship in AS 64499. AS 64498 and AS 64499 maintain a peering relationship in
which they only exchange their customer routes. which they only exchange their customer routes.
The opaque nature of BGP Large Communities allows for rapid The opaque nature of BGP Large Communities allows for rapid
deployment of new features or changes to their routing policy that deployment of new features or changes to their routing policy that
perform an action. Operators are encouraged to publicly publish and perform an action. Operators are encouraged to publicly publish and
maintain documentation on the purpose of each BGP Large Community, maintain documentation on the purpose of each BGP Large Community,
both informational and action, that they support or are visible in both Informational and Action, that they support or that are visible
BGP RIBs. in BGP RIBs.
2.1. Informational Communities 2.1. Informational Communities
Informational Communities are labels for attributes such as the Informational Communities are labels for attributes such as the
origin of the route announcement, the nature of the relation with an origin of the route announcement, the nature of the relation with an
EBGP neighbor or the intended propagation audience. Informational External BGP (EBGP) neighbor, or the intended propagation audience.
Communities can also assist in providing valuable information for Informational Communities can also assist in providing valuable
day-to-day network operations such as debugging or capacity planning. information for day-to-day network operations such as debugging or
capacity planning.
The Global Administrator field is set to the ASN which labels the The Global Administrator field is set to the ASN of the network that
routes with the Informational Communities. For example, AS 64497 tags the routes with the Informational Communities. For example, AS
might add a community with the GA 64497 to a route accepted from an 64497 might add a community with the GA 64497 to a route accepted
IBGP or EBGP neighbor as a means of signaling that it was imported in from an Internal BGP (IBGP) or EBGP neighbor as a means of signaling
a certain geographical region. that it was imported in a certain geographical region.
In general, the intended audiences of Informational Communities are In general, the intended audiences of Informational Communities are
downstream networks and the Global Administrator itself, but any AS downstream networks and the GA itself, but any AS could benefit from
could benefit from receiving these communities. receiving these communities.
2.2. Action Communities 2.2. Action Communities
Action Communities are added as a label to request that a route be Action Communities are added as labels to request that a route be
treated in a particular way within an AS. The operator of the AS treated in a particular way within an AS. The operator of the AS
defines a routing policy that adjusts path attributes based on the defines a routing policy that adjusts path attributes based on the
community. For example, the route's propagation characteristics, the community. For example, the route's propagation characteristics, the
LOCAL_PREF (local preference), the next-hop, or the number of AS_PATH LOCAL_PREF (local preference), the next hop, or the number of AS_PATH
prepends to be added when it is received or propagated can be prepends to be added when it is received or propagated can be
changed. changed.
The Global Administrator field is set to the ASN which has defined The Global Administrator field is set to the ASN that has defined the
the functionality of that BGP Large Community and is the ASN that is functionality of that BGP Large Community and is the ASN that is
expected to perform the action. For example, AS 64499 might label a expected to perform the action. For example, AS 64499 might label a
route with a BGP Large Community containing GA 64497 to request that route with a BGP Large Community containing GA 64497 to request that
AS 64497 perform a pre-defined action on that route. AS 64497 perform a predefined action on that route.
In general, the intended audience of Action Communities are transit In general, the intended audience of Action Communities are transit
providers taking action on behalf of a customer or the Global providers taking action on behalf of a customer or the GA itself, but
Administrator itself, but any AS could take action if they choose and any AS could take action if they choose and any AS could add an
any AS could add an Action Community with the GA of a non-adjacent Action Community with the GA of a non-adjacent ASN. However, note
ASN. However, note that an Action Community could also be that an Action Community could also be Informational. Its presence
informational. Its presence is an indicator that the GA may have is an indicator that the GA may have performed the action and that an
performed the action and that an AS in the AS_PATH requested it. AS in the AS_PATH requested it.
Operators are recommended to publish the relative order in which Operators are recommended to publish the relative order in which
Action Communities (both BGP Communities and BGP Large Communities) Action Communities (both BGP Communities and BGP Large Communities)
are processed in their routing policy. are processed in their routing policy.
3. Examples of Informational Communities 3. Examples of Informational Communities
3.1. Location 3.1. Location
An AS, AS 64497 in these examples, may inform other networks about An AS, AS 64497 in these examples, may inform other networks about
the geographical region where AS 64497 imported a route by labeling the geographical region where AS 64497 imported a route by labeling
it with BGP Large Communities following one of the following schemes it with BGP Large Communities following one of the following schemes
or a combination of them. or a combination of them.
3.1.1. An ISO 3166-1 Numeric Function 3.1.1. An ISO 3166-1 Numeric Function
AS 64497 could assign a value of 1 to the Function field to designate AS 64497 could assign a value of 1 to the Function field to designate
the content of the Parameter field as an ISO-3166-1 [3] numeric the content of the Parameter field as an ISO 3166-1 numeric country
country identifier. identifier <https://www.iso.org/iso-3166-country-codes.html>.
+---------------------+---------------------------------------------+ +---------------------+---------------------------------------------+
| BGP Large Community | Description | | BGP Large Community | Description |
+---------------------+---------------------------------------------+ +---------------------+---------------------------------------------+
| 64497:1:528 | Route learned in the Netherlands | | 64497:1:528 | Route learned in the Netherlands |
| 64497:1:392 | Route learned in Japan | | 64497:1:392 | Route learned in Japan |
| 64497:1:840 | Route learned in the United States of | | 64497:1:840 | Route learned in the United States of |
| | America | | | America |
+---------------------+---------------------------------------------+ +---------------------+---------------------------------------------+
Example documentation for Informational Communities deployed by AS Table 2: Informational: ISO 3166-1
64497 to describe the location where a route was imported using ISO
3166-1 numeric identifiers.
Table 2: Information: ISO 3166-1 The table above shows example documentation for Informational
Communities deployed by AS 64497 to describe the location where a
route was imported using ISO 3166-1 numeric identifiers.
3.1.2. An UN M.49 Region Function 3.1.2. A UN M.49 Region Function
AS 64497 could assign a value of 2 to the Function field to designate AS 64497 could assign a value of 2 to the Function field to designate
the content of the Parameter field as the M.49 numeric code published the content of the Parameter field as the M.49 numeric code published
by the United Nations Statistics Division (UNSD) [4] for macro by the United Nations Statistics Division (UNSD)
geographical (continental) regions, geographical sub-regions, or <https://unstats.un.org/unsd/methodology/m49/> for macro-geographical
selected economic and other groupings. (continental) regions, geographical sub-regions, or selected economic
and other groupings.
+---------------------+-------------------------------+ +---------------------+-------------------------------+
| BGP Large Community | Description | | BGP Large Community | Description |
+---------------------+-------------------------------+ +---------------------+-------------------------------+
| 64497:2:2 | Route learned in Africa | | 64497:2:2 | Route learned in Africa |
| 64497:2:9 | Route learned in Oceania | | 64497:2:9 | Route learned in Oceania |
| 64497:2:145 | Route learned in Western Asia | | 64497:2:145 | Route learned in Western Asia |
| 64497:2:150 | Route learned in Europe | | 64497:2:150 | Route learned in Europe |
+---------------------+-------------------------------+ +---------------------+-------------------------------+
Example documentation for Informational Communities deployed by AS Table 3: Informational: UNSD Regions
64497 to describe the location where a route was imported using M.49
numeric codes published by the United Nations Statistics Division.
Table 3: Information: UNSD Regions The table above shows example documentation for Informational
Communities deployed by AS 64497 to describe the location where a
route was imported using M.49 numeric codes published by the UNSD.
3.2. Relation Function 3.2. Relation Function
An AS, AS 64497 in this example, could assign a value of 3 to the An AS, AS 64497 in this example, could assign a value of 3 to the
Function field to designate the content of the Parameter field as a Function field to designate the content of the Parameter field as a
number indicating whether the route originated inside its own network number indicating whether the route originated inside its own network
or was learned externally, and if learned externally, it might or was learned externally, and if learned externally, it might
simultaneously characterize the nature of the relation with that simultaneously characterize the nature of the relation with that
specific EBGP neighbor. specific EBGP neighbor.
+---------------------+---------------------------------------+ +---------------------+---------------------------------------+
| BGP Large Community | Description | | BGP Large Community | Description |
+---------------------+---------------------------------------+ +---------------------+---------------------------------------+
| 64497:3:1 | Route originated internally | | 64497:3:1 | Route originated internally |
| 64497:3:2 | Route learned from a customer | | 64497:3:2 | Route learned from a customer |
| 64497:3:3 | Route learned from a peering partner | | 64497:3:3 | Route learned from a peering partner |
| 64497:3:4 | Route learned from a transit provider | | 64497:3:4 | Route learned from a transit provider |
+---------------------+---------------------------------------+ +---------------------+---------------------------------------+
Example documentation for Informational Communities deployed by AS Table 4: Informational: Relation
64497 to describe the relation to the ASN from which the route was
learned.
Table 4: Information: Relation The table above shows example documentation for Informational
Communities deployed by AS 64497 to describe the relation to the ASN
from which the route was learned.
3.3. Combining Informational Communities 3.3. Combining Informational Communities
A route may be labeled with multiple Informational Communities. For A route may be labeled with multiple Informational Communities. For
example, a route learned in the Netherlands from a customer might be example, a route learned in the Netherlands from a customer might be
labeled with communities 64497:1:528, 64497:2:150 and 64497:3:2 at labeled with communities 64497:1:528, 64497:2:150, and 64497:3:2 at
the same time. the same time.
4. Examples of Action Communities 4. Examples of Action Communities
4.1. Selective NO_EXPORT 4.1. Selective NO_EXPORT
As part of an agreement, often a commercial transit agreement, As part of an agreement, often a commercial transit agreement,
between AS 64497 and AS 64498, AS 64497 might expose BGP traffic between AS 64497 and AS 64498, AS 64497 might expose BGP traffic-
engineering functions to AS 64498. One such BGP traffic engineering engineering functions to AS 64498. One such BGP traffic-engineering
function could be selective NO_EXPORT, which is the selective function could be selective NO_EXPORT, which is the selective
filtering of a route learned from one AS, AS 64498, to certain EBGP filtering of a route learned from one AS, AS 64498, to certain EBGP
neighbors of the GA, AS 64497. neighbors of the GA, AS 64497.
4.1.1. ASN Based Selective NO_EXPORT 4.1.1. ASN-Based Selective NO_EXPORT
AS 64497 could assign a value of 4 to the Function field to designate AS 64497 could assign a value of 4 to the Function field to designate
the content of the Parameter field as a neighboring ASN to which a the content of the Parameter field as a neighboring ASN to which a
route should not be propagated. route should not be propagated.
+---------------------+---------------------------------+ +---------------------+---------------------------------+
| BGP Large Community | Description | | BGP Large Community | Description |
+---------------------+---------------------------------+ +---------------------+---------------------------------+
| 64497:4:64498 | Do not export route to AS 64498 | | 64497:4:64498 | Do not export route to AS 64498 |
| 64497:4:64499 | Do not export route to AS 64499 | | 64497:4:64499 | Do not export route to AS 64499 |
| 64497:4:65551 | Do not export route to AS 65551 | | 64497:4:65551 | Do not export route to AS 65551 |
+---------------------+---------------------------------+ +---------------------+---------------------------------+
Example documentation for Action Communities deployed by AS 64497 to
expose a BGP traffic engineering function which selectively prevents
the propagation of routes to the neighboring ASN specified in the
Parameter field.
Table 5: Action: ASN NO_EXPORT Table 5: Action: ASN NO_EXPORT
4.1.2. Location Based Selective NO_EXPORT The table above shows example documentation for Action Communities
deployed by AS 64497 to expose a BGP traffic-engineering function
that selectively prevents the propagation of routes to the
neighboring ASN specified in the Parameter field.
4.1.2. Location-Based Selective NO_EXPORT
AS 64497 could assign a value of 5 to the Function field to designate AS 64497 could assign a value of 5 to the Function field to designate
the content of the Parameter field as an ISO 3166-1 numeric country the content of the Parameter field as an ISO 3166-1 numeric country
identifier within which a labeled route is not propagated to EBGP identifier within which a labeled route is not propagated to EBGP
neighbors. However, this might not prevent one of those EBGP neighbors. However, this might not prevent one of those EBGP
neighbors from learning that route in another country and making it neighbors from learning that route in another country and making it
available in the country specified by the BGP Large Community. available in the country specified by the BGP Large Community.
+-----------------+-------------------------------------------------+ +-----------------+-------------------------------------------------+
| BGP Large | Description | | BGP Large | Description |
| Community | | | Community | |
+-----------------+-------------------------------------------------+ +-----------------+-------------------------------------------------+
| 64497:5:528 | Do not export to EBGP neighbors in the | | 64497:5:528 | Do not export to EBGP neighbors in the |
| | Netherlands | | | Netherlands |
| 64497:5:392 | Do not export to EBGP neighbors in Japan | | 64497:5:392 | Do not export to EBGP neighbors in Japan |
| 64497:5:840 | Do not export to EBGP neighbors in the United | | 64497:5:840 | Do not export to EBGP neighbors in the United |
| | States of America | | | States of America |
+-----------------+-------------------------------------------------+ +-----------------+-------------------------------------------------+
Example documentation for Action Communities deployed by AS 64497 to
expose a BGP traffic engineering function which selectively prevents
the propagation of routes to all EBGP neighbors in the geographical
region specified in the Parameter field.
Table 6: Action: NO_EXPORT in Region Table 6: Action: NO_EXPORT in Region
The table above shows example documentation for Action Communities
deployed by AS 64497 to expose a BGP traffic-engineering function
that selectively prevents the propagation of routes to all EBGP
neighbors in the geographical region specified in the Parameter
field.
4.2. Selective AS_PATH Prepending 4.2. Selective AS_PATH Prepending
As part of an agreement between AS 64497 and AS 64498, AS 64497 might As part of an agreement between AS 64497 and AS 64498, AS 64497 might
expose BGP traffic engineering functions to AS 64498. One such BGP expose BGP traffic-engineering functions to AS 64498. One such BGP
traffic engineering function could be selective prepending of the traffic-engineering function could be selective prepending of the
AS_PATH with AS 64497 to certain certain EBGP neighbors of AS 64497. AS_PATH with AS 64497 to certain EBGP neighbors of AS 64497.
4.2.1. ASN Based Selective AS_PATH Prepending 4.2.1. ASN-Based Selective AS_PATH Prepending
AS 64497 could assign a value of 6 to the Function field to designate AS 64497 could assign a value of 6 to the Function field to designate
the content of the Parameter field as a neighboring ASN to which the content of the Parameter field as a neighboring ASN to which
prepending of the AS_PATH with AS 64497 is requested on propagation prepending of the AS_PATH with AS 64497 is requested on propagation
of the route. Additional AS_PATH prepending functions might also be of the route. Additional AS_PATH prepending functions might also be
defined to support multiples of prepending, that is two, three or defined to support multiples of prepending, that is, two, three, or
more prepends of AS 64497. more prepends of AS 64497.
+---------------------+------------------------------------------+ +---------------------+------------------------------------------+
| BGP Large Community | Description | | BGP Large Community | Description |
+---------------------+------------------------------------------+ +---------------------+------------------------------------------+
| 64497:6:64498 | Prepend 64497 once on export to AS 64498 | | 64497:6:64498 | Prepend 64497 once on export to AS 64498 |
| 64497:6:64499 | Prepend 64497 once on export to AS 64499 | | 64497:6:64499 | Prepend 64497 once on export to AS 64499 |
| 64497:6:65551 | Prepend 64497 once on export to AS 65551 | | 64497:6:65551 | Prepend 64497 once on export to AS 65551 |
+---------------------+------------------------------------------+ +---------------------+------------------------------------------+
Example documentation for Action Communities deployed by AS 64497 to
expose a BGP traffic engineering function which selectively prepends
the AS_PATH with AS 64497 when propagating the route to the specified
EBGP neighbor.
Table 7: Action: Prepend to ASN Table 7: Action: Prepend to ASN
4.2.2. Location Based Selective AS_PATH Prepending The table above shows example documentation for Action Communities
deployed by AS 64497 to expose a BGP traffic-engineering function
that selectively prepends the AS_PATH with AS 64497 when propagating
the route to the specified EBGP neighbor.
4.2.2. Location-Based Selective AS_PATH Prepending
AS 64497 could assign a value of 7 to the Function field to designate AS 64497 could assign a value of 7 to the Function field to designate
the content of the Parameter field as an ISO 3166-1 numeric country the content of the Parameter field as an ISO 3166-1 numeric country
identifier to which the prepending of the AS_PATH with AS 64497 is identifier to which the prepending of the AS_PATH with AS 64497 is
requested on propagation of the route to all EBGP neighbors in that requested on propagation of the route to all EBGP neighbors in that
region. region.
+------------------+------------------------------------------------+ +-----------------+-------------------------------------------------+
| BGP Large | Description | | BGP Large | Description |
| Community | | | Community | |
+------------------+------------------------------------------------+ +-----------------+-------------------------------------------------+
| 64497:7:528 | Prepend once to EBGP neighbors in the | | 64497:7:528 | Prepend once to EBGP neighbors in the |
| | Netherlands | | | Netherlands |
| 64497:7:392 | Prepend once to EBGP neighbors in Japan | | 64497:7:392 | Prepend once to EBGP neighbors in Japan |
| 64497:7:840 | Prepend once to EBGP neighbors in United | | 64497:7:840 | Prepend once to EBGP neighbors in the United |
| | States of America | | | States of America |
+------------------+------------------------------------------------+ +-----------------+-------------------------------------------------+
Example documentation for Action Communities deployed by AS 64497 to
expose a BGP traffic engineering function which selectively prepends
the AS_PATH with AS 64497 when propagating the route to all EBGP
neighbors in the geographical region specified in the Parameter
field.
Table 8: Action: Prepend in Region Table 8: Action: Prepend in Region
The table above shows example documentation for Action Communities
deployed by AS 64497 to expose a BGP traffic-engineering function
that selectively prepends the AS_PATH with AS 64497 when propagating
the route to all EBGP neighbors in the geographical region specified
in the Parameter field.
4.3. Manipulation of the LOCAL_PREF Attribute 4.3. Manipulation of the LOCAL_PREF Attribute
As part of an agreement between AS 64497 and AS 64498, AS 64497 might As part of an agreement between AS 64497 and AS 64498, AS 64497 might
expose BGP traffic engineering functions to AS 64498. One such BGP expose BGP traffic-engineering functions to AS 64498. One such BGP
traffic engineering function might allow AS 64498 to manipulate the traffic-engineering function might allow AS 64498 to manipulate the
value of the LOCAL_PREF attribute of routes learned from AS 64498 value of the LOCAL_PREF attribute of routes learned from AS 64498
within AS 64497, even though the LOCAL_PREF attribute is non- within AS 64497, even though the LOCAL_PREF attribute is
transitive and is not propagated to EBGP neighbors. non-transitive and is not propagated to EBGP neighbors.
The LOCAL_PREF value of routes are locally significant within each AS The LOCAL_PREF value of routes are locally significant within each AS
and are impossible to list in this document. Instead, the typical and are impossible to list in this document. Instead, the typical
LOCAL_PREF values could be classified as a hierarchy and a BGP Large LOCAL_PREF values could be classified as a hierarchy, and a BGP Large
Community function exposed allowing an EBGP neighbor to affect the Community function could be exposed, allowing an EBGP neighbor to
LOCAL_PREF value within the specified GA. The following example list affect the LOCAL_PREF value within the specified GA. The following
defines the classes of routes in the order of descending LOCAL_PREF example list defines the classes of routes in the order of descending
value and assigns a function identifier which could be used in the LOCAL_PREF value and assigns a function identifier that could be used
Function field of a BGP Large Community. in the Function field of a BGP Large Community.
+----------+--------------------------------------------------------+ +----------+--------------------------------------------------------+
| Function | Preference Class | | Function | Preference Class |
+----------+--------------------------------------------------------+ +----------+--------------------------------------------------------+
| 8 | Normal customer route | | 8 | Normal customer route |
| 9 | Backup customer route | | 9 | Backup customer route |
| 10 | Peering route | | 10 | Peering route |
| 11 | Upstream transit route | | 11 | Upstream transit route |
| 12 | Fallback route, to be installed if no other path is | | 12 | Fallback route, to be installed if no other path is |
| | available | | | available |
skipping to change at page 10, line 35 skipping to change at page 11, line 35
+---------------------+---------------------------------------------+ +---------------------+---------------------------------------------+
| BGP Large Community | Description | | BGP Large Community | Description |
+---------------------+---------------------------------------------+ +---------------------+---------------------------------------------+
| 64497:9:0 | Assign LOCAL_PREF for a customer backup | | 64497:9:0 | Assign LOCAL_PREF for a customer backup |
| | route | | | route |
| 64497:10:0 | Assign LOCAL_PREF for a peering route | | 64497:10:0 | Assign LOCAL_PREF for a peering route |
| 64497:12:0 | Assign LOCAL_PREF for a fallback route | | 64497:12:0 | Assign LOCAL_PREF for a fallback route |
+---------------------+---------------------------------------------+ +---------------------+---------------------------------------------+
Example documentation for Action Communities deployed by AS 64497 to
expose a BGP traffic engineering function which allows a BGP neighbor
to globally manipulate the LOCAL_PREF attribute for the route within
AS 64497.
Table 10: Action: Global LOCAL_PREF Manipulation Table 10: Action: Global LOCAL_PREF Manipulation
4.3.2. Region Based Manipulation of LOCAL_PREF The table above shows example documentation for Action Communities
deployed by AS 64497 to expose a BGP traffic-engineering function
that allows a BGP neighbor to globally manipulate the LOCAL_PREF
attribute for the route within AS 64497.
4.3.2. Region-Based Manipulation of LOCAL_PREF
AS 64497 could place one of the previously defined Preference AS 64497 could place one of the previously defined Preference
Function Identifiers in the Function field and use an UN M.49 numeric Function Identifiers in the Function field and use a UN M.49 numeric
region identifier in the Parameter field to designate the region identifier in the Parameter field to designate the
geographical region within which the non-default LOCAL_PREF geographical region within which the non-default LOCAL_PREF
associated with that function identifier should be applied to the associated with that function identifier should be applied to the
route. The value of the LOCAL_PREF attribute should not deviate from route. The value of the LOCAL_PREF attribute should not deviate from
the default for that route class in any region not specified by one the default for that route class in any region not specified by one
or more of these Action Communities. or more of these Action Communities.
+--------------+----------------------------------------------------+ +--------------+----------------------------------------------------+
| BGP Large | Description | | BGP Large | Description |
| Community | | | Community | |
skipping to change at page 11, line 20 skipping to change at page 12, line 20
| | customer backup class route on BGP routers in the | | | customer backup class route on BGP routers in the |
| | North America region | | | North America region |
| 64497:10:5 | Assign the LOCAL_PREF value equivalent to a | | 64497:10:5 | Assign the LOCAL_PREF value equivalent to a |
| | peering class route on BGP routers in the South | | | peering class route on BGP routers in the South |
| | America region | | | America region |
| 64497:12:142 | Assign the LOCAL_PREF value equivalent to a | | 64497:12:142 | Assign the LOCAL_PREF value equivalent to a |
| | fallback class route on BGP routers in the Asia | | | fallback class route on BGP routers in the Asia |
| | region | | | region |
+--------------+----------------------------------------------------+ +--------------+----------------------------------------------------+
Example documentation for Action Communities deployed by AS 64497 to
expose a BGP traffic engineering function which allows a BGP neighbor
to selectively manipulate the LOCAL_PREF attribute within AS 64497 in
the geographical region specified in the Parameter field.
Table 11: Action: Regional LOCAL_PREF Manipulation Table 11: Action: Regional LOCAL_PREF Manipulation
The table above shows example documentation for Action Communities
deployed by AS 64497 to expose a BGP traffic-engineering function
that allows a BGP neighbor to selectively manipulate the LOCAL_PREF
attribute within AS 64497 in the geographical region specified in the
Parameter field.
4.3.3. Note of Caution for LOCAL_PREF Functions 4.3.3. Note of Caution for LOCAL_PREF Functions
The LOCAL_PREF attribute strongly influences the BGP Decision The LOCAL_PREF attribute strongly influences the BGP Decision
Process, which in turn affects the scope of route propagation. Process, which in turn affects the scope of route propagation.
Operators should take special care when using Action Communities that Operators should take special care when using Action Communities that
decrease the LOCAL_PREF value, and the degree of preference, to a decrease the LOCAL_PREF value, and the degree of preference, to a
value below that of another route class. Some of the unintended BGP value below that of another route class. Some of the unintended BGP
states that might arise as a result of these traffic engineering states that might arise as a result of these traffic-engineering
decisions are described as "BGP Wedgies" in [RFC4264]. decisions are described as "BGP Wedgies" in [RFC4264].
4.4. Route Server Prefix Distribution Control 4.4. Route Server Prefix Distribution Control
Route Servers [RFC7947] use BGP to broker network reachability Route servers [RFC7947] use BGP to broker network reachability
information among their clients. As not all route server clients may information among their clients. As not all route server clients may
wish to interconnect with each other, the route server operator will wish to interconnect with each other, the route server operator will
usually implement a mechanism to allow each client to control the usually implement a mechanism to allow each client to control the
route server's export routing policy, as described in Section 4.6 of route server's export routing policy, as described in Section 4.6 of
[RFC7948]. One widely-used mechanism is a route server specific [RFC7948]. One widely used mechanism is an adaption of "ASN-Based
adaption of "ASN Based Selective NO_EXPORT" (Section 4.1.1). Selective NO_EXPORT" (Section 4.1.1) that is specific to route
servers.
An example BGP Large Communities policy which enables client- An example BGP Large Communities policy that enables client-
controlled prefix distribution for a route server operating as AS controlled prefix distribution for a route server operating as AS
64497, is outlined as follows: 64511 is outlined as follows:
+-------------------+-----------------------------------------------+ +-------------------+-----------------------------------------------+
| BGP Large | Description | | BGP Large | Description |
| Community | | | Community | |
+-------------------+-----------------------------------------------+ +-------------------+-----------------------------------------------+
| 64497:13:peer-as | Explicitly prevent announcement of route to | | 64511:0:peer-as | Explicitly prevent announcement of route to |
| | peer-as | | | peer-as |
| 64497:14:peer-as | Explicitly announce route to peer-as | | 64511:1:peer-as | Explicitly announce route to peer-as |
| 64497:13:0 | Do not announce route to any peers by default | | 64511:0:0 | Do not announce route to any peers by default |
| 64497:14:0 | Announce route to all peers by default | | 64511:1:0 | Announce route to all peers by default |
+-------------------+-----------------------------------------------+ +-------------------+-----------------------------------------------+
Table 12: Action: Route Server Prefix Distribution Control Table 12: Action: Route Server Prefix Distribution Control
Multiple BGP Large Community values can be used together to implement Multiple BGP Large Community values can be used together to implement
fine-grained route distribution control. For example, route server fine-grained route distribution control. For example, route server
client AS 64500 might wish to use a route server for interconnecting client AS 64500 might wish to use a route server for interconnecting
to all other clients except AS 64510. In this case, they would label to all other clients except AS 64509. In this case, they would label
all their outbound routes to the route server with 64497:14:0 (to all their outbound routes to the route server with 64511:1:0 (to
announce to all clients by default) and 64497:13:64510 (to prevent announce to all clients by default) and 64511:0:64509 (to prevent
announcement to AS 64510). announcement to AS 64509).
Alternatively, route server client AS 64501 may have a selective Alternatively, route server client AS 64501 may have a selective
routing policy and may wish to interconnect with only AS 64505 and AS routing policy and may wish to interconnect with only AS 64505 and AS
64506. This could be implemented by announcing routes labeled with 64506. This could be implemented by announcing routes labeled with
64497:13:0 (blocking all distribution by default) and 64497:14:64505, 64511:0:0 (blocking all distribution by default) and 64511:1:64505,
64497:14:64506 to instruct the route server to force announcement to 64511:1:64506 to instruct the route server to force announcement to
those two ASNs. those two ASNs.
5. Security Considerations 5. Security Considerations
Operators should note the recommendations in Section 11 of BGP Operators should note the recommendations in Section 11 of "BGP
Operations and Security [RFC7454] and handle BGP Large Communities Operations and Security" [RFC7454] and handle BGP Large Communities
with their ASN in the Global Administrator field similarly. with their ASN in the Global Administrator field similarly.
In particular and in the same respect as BGP Communities [RFC1997], In particular and in the same respect as BGP Communities [RFC1997],
operators should be congnizant that any Large Community can be operators should be cognizant that any Large Community can be carried
carried in a BGP UPDATE. Operators should recognize that BGP in a BGP UPDATE. Operators should recognize that BGP neighbors,
neighbors, particularly customers and customers of customers, may particularly customers and customers of customers, may utilize
utilize communities defined by other BGP neighbors of the operator. communities defined by other BGP neighbors of the operator. They may
They may wish to send routes with action communities and receive wish to send routes with Action Communities and receive routes with
routes with informational communities to or from these other Informational Communities to or from these other neighbors, and it is
neighbors and it is beneficial to all to permit this. beneficial to all to permit this.
6. IANA Considerations 6. IANA Considerations
None. This document does not require any IANA actions.
7. Acknowledgments
The authors would like to gratefully acknowledge the insightful
comments, contributions, critique and support from Adam Chappell,
Jonathan Stewart, Greg Hankins, Nick Hilliard, Will Hargrave, Randy
Bush, Shawn Morris, Jay Borkenhagen and Stewart Bryant.
8. References 7. References
8.1. Normative References 7.1. Normative References
[RFC1997] Chandra, R., Traina, P., and T. Li, "BGP Communities [RFC1997] Chandra, R., Traina, P., and T. Li, "BGP Communities
Attribute", RFC 1997, DOI 10.17487/RFC1997, August 1996, Attribute", RFC 1997, DOI 10.17487/RFC1997, August 1996,
<http://www.rfc-editor.org/info/rfc1997>. <http://www.rfc-editor.org/info/rfc1997>.
[RFC7454] Durand, J., Pepelnjak, I., and G. Doering, "BGP Operations [RFC7454] Durand, J., Pepelnjak, I., and G. Doering, "BGP Operations
and Security", BCP 194, RFC 7454, DOI 10.17487/RFC7454, and Security", BCP 194, RFC 7454, DOI 10.17487/RFC7454,
February 2015, <http://www.rfc-editor.org/info/rfc7454>. February 2015, <http://www.rfc-editor.org/info/rfc7454>.
[RFC8092] Heitz, J., Ed., Snijders, J., Ed., Patel, K., Bagdonas, [RFC8092] Heitz, J., Ed., Snijders, J., Ed., Patel, K., Bagdonas,
I., and N. Hilliard, "BGP Large Communities Attribute", I., and N. Hilliard, "BGP Large Communities Attribute",
RFC 8092, DOI 10.17487/RFC8092, February 2017, RFC 8092, DOI 10.17487/RFC8092, February 2017,
<http://www.rfc-editor.org/info/rfc8092>. <http://www.rfc-editor.org/info/rfc8092>.
8.2. Informative References 7.2. Informative References
[RFC1998] Chen, E. and T. Bates, "An Application of the BGP [RFC1998] Chen, E. and T. Bates, "An Application of the BGP
Community Attribute in Multi-home Routing", RFC 1998, Community Attribute in Multi-home Routing", RFC 1998,
DOI 10.17487/RFC1998, August 1996, DOI 10.17487/RFC1998, August 1996,
<http://www.rfc-editor.org/info/rfc1998>. <http://www.rfc-editor.org/info/rfc1998>.
[RFC4264] Griffin, T. and G. Huston, "BGP Wedgies", RFC 4264, [RFC4264] Griffin, T. and G. Huston, "BGP Wedgies", RFC 4264,
DOI 10.17487/RFC4264, November 2005, DOI 10.17487/RFC4264, November 2005,
<http://www.rfc-editor.org/info/rfc4264>. <http://www.rfc-editor.org/info/rfc4264>.
[RFC7947] Jasinska, E., Hilliard, N., Raszuk, R., and N. Bakker, [RFC7947] Jasinska, E., Hilliard, N., Raszuk, R., and N. Bakker,
"Internet Exchange BGP Route Server", RFC 7947, "Internet Exchange BGP Route Server", RFC 7947,
DOI 10.17487/RFC7947, September 2016, DOI 10.17487/RFC7947, September 2016,
<http://www.rfc-editor.org/info/rfc7947>. <http://www.rfc-editor.org/info/rfc7947>.
[RFC7948] Hilliard, N., Jasinska, E., Raszuk, R., and N. Bakker, [RFC7948] Hilliard, N., Jasinska, E., Raszuk, R., and N. Bakker,
"Internet Exchange BGP Route Server Operations", RFC 7948, "Internet Exchange BGP Route Server Operations", RFC 7948,
DOI 10.17487/RFC7948, September 2016, DOI 10.17487/RFC7948, September 2016,
<http://www.rfc-editor.org/info/rfc7948>. <http://www.rfc-editor.org/info/rfc7948>.
8.3. URIs Acknowledgments
[1] https://www.nanog.org
[2] https://nlnog.net
[3] https://www.iso.org/iso-3166-country-codes.html
[4] https://unstats.un.org/unsd/methodology/m49/ The authors would like to gratefully acknowledge the insightful
comments, contributions, critique, and support from Adam Chappell,
Jonathan Stewart, Greg Hankins, Nick Hilliard, Will Hargrave, Randy
Bush, Shawn Morris, Jay Borkenhagen, and Stewart Bryant.
Authors' Addresses Authors' Addresses
Job Snijders Job Snijders
NTT Communications NTT Communications
Theodorus Majofskistraat 100 Theodorus Majofskistraat 100
Amsterdam 1065 SZ Amsterdam 1065 SZ
The Netherlands The Netherlands
Email: job@ntt.net Email: job@ntt.net
skipping to change at page 14, line 37 skipping to change at page 15, line 34
1111 NW 53rd Drive 1111 NW 53rd Drive
Portland, OR 97210 Portland, OR 97210
United States of America United States of America
Email: heas@shrubbery.net Email: heas@shrubbery.net
Martijn Schmidt Martijn Schmidt
i3D.net i3D.net
Rivium 1e Straat 1 Rivium 1e Straat 1
Capelle aan den IJssel 2909 LE Capelle aan den IJssel 2909 LE
NL The Netherlands
Email: martijnschmidt@i3d.net Email: martijnschmidt@i3d.net
 End of changes. 75 change blocks. 
208 lines changed or deleted 201 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/