draft-ietf-grow-large-communities-usage-03.txt | draft-ietf-grow-large-communities-usage-04.txt | |||
---|---|---|---|---|
Global Routing Operations J. Snijders | Global Routing Operations J. Snijders | |||
Internet-Draft J. Heasley | Internet-Draft J. Heasley | |||
Intended status: Informational NTT | Intended status: Informational NTT | |||
Expires: September 13, 2017 M. Schmidt | Expires: September 14, 2017 M. Schmidt | |||
i3D.net | i3D.net | |||
March 12, 2017 | March 13, 2017 | |||
Usage of BGP Large Communities | Use of BGP Large Communities | |||
draft-ietf-grow-large-communities-usage-03 | draft-ietf-grow-large-communities-usage-04 | |||
Abstract | Abstract | |||
Examples and inspiration for operators for the use of BGP Large | Examples and inspiration for operators to use BGP Large Communities. | |||
Communities. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 September 13, 2017. | This Internet-Draft will expire on September 14, 2017. | |||
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 | |||
skipping to change at page 2, line 13 ¶ | skipping to change at page 2, line 13 ¶ | |||
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. The Design Overview . . . . . . . . . . . . . . . . . . . . . 2 | 2. The Design Overview . . . . . . . . . . . . . . . . . . . . . 2 | |||
2.1. Informational Communities . . . . . . . . . . . . . . . . 4 | 2.1. Informational Communities . . . . . . . . . . . . . . . . 4 | |||
2.2. Action Communities . . . . . . . . . . . . . . . . . . . 4 | 2.2. Action Communities . . . . . . . . . . . . . . . . . . . 4 | |||
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 . . . . . . . . . . . 5 | |||
3.1.2. A UN M.49 Region function . . . . . . . . . . . . . . 5 | 3.1.2. A UN M.49 Region Function . . . . . . . . . . . . . . 5 | |||
3.2. Relation Function . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Relation Function . . . . . . . . . . . . . . . . . . . . 6 | |||
3.3. Combining Informational Communities . . . . . . . . . . . 6 | 3.3. Combining Informational Communities . . . . . . . . . . . 6 | |||
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 . . . . . . . . . . . . 7 | |||
4.1.2. Location Based Selective NO_EXPORT . . . . . . . . . 7 | 4.1.2. Location Based Selective NO_EXPORT . . . . . . . . . 7 | |||
4.2. Selective AS_PATH Prepending . . . . . . . . . . . . . . 8 | 4.2. Selective AS_PATH Prepending . . . . . . . . . . . . . . 8 | |||
4.2.1. ASN Based Selective AS_PATH Prepending . . . . . . . 8 | 4.2.1. ASN Based Selective AS_PATH Prepending . . . . . . . 8 | |||
4.2.2. Location Based Selective AS_PATH Prepending . . . . . 9 | 4.2.2. Location Based Selective AS_PATH Prepending . . . . . 9 | |||
4.3. Manipulation of the LOCAL_PREF attribute . . . . . . . . 9 | 4.3. Manipulation of the LOCAL_PREF Attribute . . . . . . . . 9 | |||
4.3.1. Global Manipulation of LOCAL_PREF . . . . . . . . . . 10 | 4.3.1. Global Manipulation of LOCAL_PREF . . . . . . . . . . 10 | |||
4.3.2. Location Based Manipulation of LOCAL_PREF . . . . . . 10 | 4.3.2. Location Based Manipulation of LOCAL_PREF . . . . . . 10 | |||
4.3.3. Note of Caution for LOCAL_PREF Functions . . . . . . 11 | 4.3.3. Note of Caution for LOCAL_PREF Functions . . . . . . 11 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | 4.4. Route Server Prefix Distribution Control . . . . . . . . 11 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 11 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 12 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
8.2. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 13 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | 8.2. Informative References . . . . . . . . . . . . . . . . . 13 | |||
8.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
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. This document presents | information between Autonomous Systems (ASs). This document presents | |||
examples of how operators might utilise BGP Large Communities to | examples of how operators might utilize BGP Large Communities to | |||
achieve various goals. This document draws from experience of | achieve various goals. This document draws on the experience of | |||
operational communities such as NANOG [1] and NLNOG [2]. | operator communities such as NANOG [1] and NLNOG [2]. | |||
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 Autonomous System (AS) that has | Autonomous System Number (ASN) of the AS that has defined the meaning | |||
defined the meaning of the remaining two 4-octet fields, known as | of the remaining two 4-octet fields, known as "Local Data Part 1" and | |||
"Local Data Part 1" and "Local Data Part 2". This document describes | "Local Data Part 2". This document describes an approach where the | |||
an approach where the "Local Data Part 1" field contains a function | "Local Data Part 1" field contains a function identifier and the | |||
identifier and the "Local Data Part 2" contains a parameter value. | "Local Data Part 2" contains a parameter value. Using the canonical | |||
notation this format can be summarized as "ASN:Function:Parameter". | ||||
Using the canonical notation the above 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 usage of fields in BGP Large Communities | A mapping table on the use of fields in BGP Large Communities between | |||
between [RFC8092] and this document. | [RFC8092] and this document. | |||
Table 1: Field mapping | Table 1: Field Mapping | |||
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, the function of a community can be divided into | |||
two categories: | two categories: | |||
o Informational Communities | o Informational Communities | |||
o Action Communities | o Action Communities | |||
Throughout the document a topology of four Autonomous Systems is used | Throughout the document a topology of four ASs is used to illustrate | |||
to illustrate the usage of Communities in the following | the use of communities in the following configuration: | |||
configuration: | ||||
AS 65551 | AS 65551 | |||
| | | | |||
^ | ^ | |||
| | | | |||
AS 64497 | AS 64497 | |||
/ \ | / \ | |||
^ \ | ^ \ | |||
/ ^ | / ^ | |||
AS 64498 \ | AS 64498 \ | |||
| | | | | | |||
`<->- AS 64499 | `<->- AS 64499 | |||
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 | |||
32-bit 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 products. Operators are | deployment of new features or changes to their routing policy that | |||
encouraged to publicly publish and maintain documentation of the | perform an action. Operators are encouraged to publicly publish and | |||
purpose of each BGP Large Community, both informational and action, | maintain documentation on the purpose of each BGP Large Community, | |||
that they support or are visible in BGP RIBs. | both informational and action, that they support or are visible 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 | EBGP neighbor or the intended propagation audience. Informational | |||
Communities can also assist in providing valuable information for | Communities can also assist in providing valuable information for | |||
day-to-day network operations such as debugging or capacity planning. | 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 which labels the | |||
routes with the Informational Communities. For example, AS 64497 | routes with the Informational Communities. For example, AS 64497 | |||
might add a community with the GA 64497 to a route accepted from an | might add a community with the GA 64497 to a route accepted from an | |||
IBGP or EBGP neighbor as a means of signaling that it was imported in | IBGP or EBGP neighbor as a means of signaling that it was imported in | |||
a certain geographical region. | 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 | downstream networks and the Global Administrator itself, but any AS | |||
Autonomous System could benefit from receiving these communities. | could benefit from receiving these communities. | |||
2.2. Action Communities | 2.2. Action Communities | |||
Action Communities are added as a label to request non-default | Action Communities are added as a label to request that a route be | |||
treatment of a route within an AS. The operator of that AS defines | treated in a particular way within an AS. The operator of the AS | |||
routing policy which, based upon the communities, adjusts route | defines a routing policy that adjusts path attributes based on the | |||
attributes such as its propagation characteristics, the LOCAL_PREF | community. For example, the route's propagation characteristics, the | |||
(local preference), the next-hop, or the number of AS_PATH prepends | LOCAL_PREF (local preference), the next-hop, or the number of AS_PATH | |||
to be added upon reception or propagation. | prepends to be added when it is received or propagated can be | |||
changed. | ||||
The Global Administrator field is set to the ASN which has defined | The Global Administrator field is set to the ASN which has defined | |||
the functionality of that BGP Large Community and is therefore the | the functionality of that BGP Large Community and is the ASN that is | |||
ASN that is expected to perform the action. For instance, AS 64499 | expected to perform the action. For example, AS 64499 might label a | |||
might label a route with a BGP Large Community containing GA 64497 to | route with a BGP Large Community containing GA 64497 to request that | |||
request that AS 64497 perform a pre-defined action upon that route. | AS 64497 perform a pre-defined 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 Global | |||
Administrator itself, but any AS could take action if they chose and | Administrator itself, but any AS could take action if they choose and | |||
any AS could add an action community with the GA of a non-adjacent | any AS could add an Action Community with the GA of a non-adjacent | |||
ASN. However, note that an Action Community could also be | ASN. However, note that an Action Community could also be | |||
informational. Its presence is an indicator that the GA may have | informational. Its presence is an indicator that the GA may have | |||
performed the action and that an AS in the AS_PATH requested it. | performed the action and that an AS in the AS_PATH requested it. | |||
Operators are recommended to publish the relative order in which | ||||
Action Communities (both BGP Communities and BGP Large Communities) | ||||
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 thereof. | 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 [3] numeric | |||
country identifier. | country identifier. | |||
+---------------------+---------------------------------------------+ | +---------------------+---------------------------------------------+ | |||
| 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 | Example documentation for Informational Communities deployed by AS | |||
64497 to describe the location where a route was imported using ISO | 64497 to describe the location where a route was imported using ISO | |||
3166-1 numeric identifiers. | 3166-1 numeric identifiers. | |||
Table 2: Information: ISO 3166-1 | Table 2: Information: ISO 3166-1 | |||
3.1.2. A 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) [4] for macro | |||
geographical (continental) regions, geographical sub-regions, or | geographical (continental) regions, geographical sub-regions, or | |||
selected economic and other groupings. | selected economic and other groupings. | |||
+---------------------+-------------------------------+ | +---------------------+-------------------------------+ | |||
| BGP Large Community | Description | | | BGP Large Community | Description | | |||
+---------------------+-------------------------------+ | +---------------------+-------------------------------+ | |||
skipping to change at page 7, line 42 ¶ | skipping to change at page 7, line 42 ¶ | |||
the propagation of routes to the neighboring ASN specified in the | the propagation of routes to the neighboring ASN specified in the | |||
Parameter field. | Parameter field. | |||
Table 5: Action: ASN NO_EXPORT | Table 5: Action: ASN NO_EXPORT | |||
4.1.2. Location Based Selective NO_EXPORT | 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 thereby | neighbors from learning that route in another country and making it | |||
making it available in the country specified by the BGP Large | available in the country specified by the BGP Large Community. | |||
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 | | |||
skipping to change at page 8, line 34 ¶ | skipping to change at page 8, line 34 ¶ | |||
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 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 upon 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 | | |||
+---------------------+------------------------------------------+ | +---------------------+------------------------------------------+ | |||
skipping to change at page 9, line 10 ¶ | skipping to change at page 9, line 10 ¶ | |||
the AS_PATH with AS 64497 when propagating the route to the specified | the AS_PATH with AS 64497 when propagating the route to the specified | |||
EBGP neighbor. | EBGP neighbor. | |||
Table 7: Action: Prepend to ASN | Table 7: Action: Prepend to ASN | |||
4.2.2. Location Based Selective AS_PATH Prepending | 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 upon 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 United | | |||
skipping to change at page 9, line 32 ¶ | skipping to change at page 9, line 32 ¶ | |||
+------------------+------------------------------------------------+ | +------------------+------------------------------------------------+ | |||
Example documentation for Action Communities deployed by AS 64497 to | Example documentation for Action Communities deployed by AS 64497 to | |||
expose a BGP traffic engineering function which selectively prepends | expose a BGP traffic engineering function which selectively prepends | |||
the AS_PATH with AS 64497 when propagating the route to all EBGP | the AS_PATH with AS 64497 when propagating the route to all EBGP | |||
neighbors in the geographical region specified in the Parameter | neighbors in the geographical region specified in the Parameter | |||
field. | field. | |||
Table 8: Action: Prepend in Region | Table 8: Action: Prepend in Region | |||
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 non- | |||
transitive and therefore is not propagated to EBGP neighbors. | transitive and is not propagated to EBGP neighbors. | |||
The LOCAL_PREF value of routes are locally significant within each | The LOCAL_PREF value of routes are locally significant within each AS | |||
Autonomous System and therefore are impossible to list in this | and are impossible to list in this document. Instead, the typical | |||
document. Instead, the typical LOCAL_PREF values could be classified | LOCAL_PREF values could be classified as a hierarchy and a BGP Large | |||
as a hierarchy and a BGP Large Community function exposed allowing an | Community function exposed allowing an EBGP neighbor to affect the | |||
EBGP neighbor to affect the LOCAL_PREF value within the specified GA. | LOCAL_PREF value within the specified GA. The following example list | |||
The following non-exhaustive list defines the classes of routes in | defines the classes of routes in the order of descending LOCAL_PREF | |||
the order of descending LOCAL_PREF value and assigns a function | value and assigns a function identifier which could be used in the | |||
identifier which could be used in the Function field of a BGP Large | Function field of a BGP Large Community. | |||
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 | | |||
+----------+--------------------------------------------------------+ | +----------+--------------------------------------------------------+ | |||
Table 9: Action: Preference Function Identifiers | Table 9: Action: Preference Function Identifiers | |||
4.3.1. Global Manipulation of LOCAL_PREF | 4.3.1. Global 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 set the value 0 in the | Function Identifiers in the Function field and set the value 0 in the | |||
Parameter field to designate that the LOCAL_PREF associated with that | Parameter field to designate that the LOCAL_PREF associated with that | |||
function identifier should be applied for that route throughout the | function identifier should be applied for that route throughout the | |||
whole Autonomous System. | whole AS. | |||
+---------------------+---------------------------------------------+ | +---------------------+---------------------------------------------+ | |||
| 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 | | |||
+---------------------+---------------------------------------------+ | +---------------------+---------------------------------------------+ | |||
skipping to change at page 11, line 28 ¶ | skipping to change at page 11, line 28 ¶ | |||
expose a BGP traffic engineering function which allows a BGP neighbor | expose a BGP traffic engineering function which allows a BGP neighbor | |||
to selectively manipulate the LOCAL_PREF attribute within AS 64497 in | to selectively manipulate the LOCAL_PREF attribute within AS 64497 in | |||
the geographical region specified in the Parameter field. | the geographical region specified in the Parameter field. | |||
Table 11: Action: Regional LOCAL_PREF Manipulation | Table 11: Action: Regional LOCAL_PREF Manipulation | |||
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. | |||
Therefore, Operators should take special care when using Action | Operators should take special care when using Action Communities that | |||
Communities that decrease the LOCAL_PREF value, and therefore the | decrease the LOCAL_PREF value, and the degree of preference, to a | |||
degree of preference, to a value below that of another route class. | value below that of another route class. Some of the unintended BGP | |||
Some of the unintended BGP states that might arise as a result of | states that might arise as a result of these traffic engineering | |||
these traffic engineering decisions are described as "BGP Wedgies" in | decisions are described as "BGP Wedgies" in [RFC4264]. | |||
[RFC4264]. | ||||
4.4. Route Server Prefix Distribution Control | ||||
Route Servers [RFC7947] use BGP to broker network reachability | ||||
information among their clients. As not all route server clients may | ||||
wish to interconnect with each other, the route server operator will | ||||
usually implement a mechanism to allow each client to control the | ||||
route server's export routing policy, as described in Section 4.6 of | ||||
[RFC7948]. One widely-used mechanism is a route server specific | ||||
adaption of "ASN Based Selective NO_EXPORT" (Section 4.1.1). | ||||
An example BGP Large Communities policy which enables client- | ||||
controlled prefix distribution for a route server operating as AS | ||||
64497, is outlined as follows: | ||||
+-------------------+-----------------------------------------------+ | ||||
| BGP Large | Description | | ||||
| Community | | | ||||
+-------------------+-----------------------------------------------+ | ||||
| 64497:0:peer-as | Explicitly prevent announcement of route to | | ||||
| | peer-as | | ||||
| 64497:1:peer-as | Explicitly announce route to peer-as | | ||||
| 64497:0:0 | Do not announce route to any peers by default | | ||||
| 64497:1:0 | Announce route to all peers by default | | ||||
+-------------------+-----------------------------------------------+ | ||||
Table 12: Action: Route Server Prefix Distribution Control | ||||
Multiple BGP Large Community values can be used together to implement | ||||
fine-grained route distribution control. For example, route server | ||||
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 | ||||
all their outbound routes to the route server with 64497:1:0 (to | ||||
announce to all clients by default) and 64497:1:64510 (to prevent | ||||
announcement to AS 64510). | ||||
Alternatively, route server client AS 64501 may have a selective | ||||
routing policy and may wish to interconnect with only AS 64505 and AS | ||||
64506. This could be implemented by announcing routes labeled with | ||||
64497:0:0 (blocking all distribution by default) and 64497:1:64505, | ||||
64497:1:64506 to instruct the route server to force announcement to | ||||
those two ASNs. | ||||
5. Security Considerations | 5. Security Considerations | |||
Network operators should note the recommendations in Section 11 of | Operators should note the recommendations in Section 11 of BGP | |||
BGP Operations and Security [RFC7454]. | Operations and Security [RFC7454]. | |||
6. IANA Considerations | 6. IANA Considerations | |||
None. | None. | |||
7. Acknowledgments | 7. Acknowledgments | |||
The authors would like to gratefully acknowledge the insightful | The authors would like to gratefully acknowledge the insightful | |||
comments, contributions, critique and support from Adam Chappell, | comments, contributions, critique and support from Adam Chappell, | |||
Jonathan Stewart, and Will Hargrave. | Jonathan Stewart, Greg Hankins, Nick Hilliard, Will Hargrave, and | |||
Randy Bush. | ||||
8. References | 8. References | |||
8.1. Normative References | 8.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>. | |||
[RFC4264] Griffin, T. and G. Huston, "BGP Wedgies", RFC 4264, | ||||
DOI 10.17487/RFC4264, November 2005, | ||||
<http://www.rfc-editor.org/info/rfc4264>. | ||||
[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. URIs | 8.2. Informative References | |||
[1] http://nanog.net | [RFC4264] Griffin, T. and G. Huston, "BGP Wedgies", RFC 4264, | |||
DOI 10.17487/RFC4264, November 2005, | ||||
<http://www.rfc-editor.org/info/rfc4264>. | ||||
[2] http://nlnog.net | [RFC7947] Jasinska, E., Hilliard, N., Raszuk, R., and N. Bakker, | |||
"Internet Exchange BGP Route Server", RFC 7947, | ||||
DOI 10.17487/RFC7947, September 2016, | ||||
<http://www.rfc-editor.org/info/rfc7947>. | ||||
[RFC7948] Hilliard, N., Jasinska, E., Raszuk, R., and N. Bakker, | ||||
"Internet Exchange BGP Route Server Operations", RFC 7948, | ||||
DOI 10.17487/RFC7948, September 2016, | ||||
<http://www.rfc-editor.org/info/rfc7948>. | ||||
8.3. URIs | ||||
[1] https://www.nanog.org | ||||
[2] https://nlnog.net | ||||
[3] https://www.iso.org/iso-3166-country-codes.html | [3] https://www.iso.org/iso-3166-country-codes.html | |||
[4] https://unstats.un.org/unsd/methodology/m49/ | [4] https://unstats.un.org/unsd/methodology/m49/ | |||
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 | |||
John Heasley | John Heasley | |||
NTT Communications | NTT Communications | |||
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 | |||
End of changes. 41 change blocks. | ||||
98 lines changed or deleted | 154 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/ |