Internet DRAFT - draft-ietf-idr-custom-decision
draft-ietf-idr-custom-decision
Inter-Domain Routing A. Retana
Internet-Draft Cisco Systems, Inc.
Intended status: Standards Track R. White
Expires: August 7, 2017 LinkedIn
February 3, 2017
BGP Custom Decision Process
draft-ietf-idr-custom-decision-08
Abstract
The BGP specification describes a Decision Process for selecting the
best route. This process uses a series of steps, made up of path
attributes and other values, to first determine the Degree of
Preference of a route and later as tie breakers. While existing
mechanisms may achieve some of the same results described in this
document, they can only do so through extensive configuration such as
matching communities to explicit policy and/or route preference
configurations present on each BGP speaker within their
administrative domain (autonomous system). Implementing some
specific fine grained policies through such mechanisms is cumbersome,
if even possible.
This document defines a new Extended Community, called the Cost
Community, which may be used as part of the Decision Process. The
end result is a local Custom Decision Process.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 7, 2017.
Retana & White Expires August 7, 2017 [Page 1]
Internet-Draft BGP Custom Decision Process February 2017
Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
3. The BGP Cost Community . . . . . . . . . . . . . . . . . . . 3
4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5. Deployment Considerations . . . . . . . . . . . . . . . . . . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . 7
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
7.1. Cost Community Point of Insertion Registry . . . . . . . 8
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
9.1. Normative References . . . . . . . . . . . . . . . . . . 9
9.2. Informative References . . . . . . . . . . . . . . . . . 9
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 10
A.1. Changes between the -00 and -01 versions. . . . . . . . . 10
A.2. Changes between the -01 and -02 versions. . . . . . . . . 10
A.3. Changes between the -02 and -03 versions. . . . . . . . . 10
A.4. Changes between the -03 and -04 versions. . . . . . . . . 10
A.5. Changes between the -04 and -05 versions. . . . . . . . . 10
A.6. Changes between the -05 and -06 versions. . . . . . . . . 10
A.7. Changes between the -06 and -07 versions . . . . . . . . 10
A.8. Changes between the -07 and -08 versions . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11
1. Introduction
The BGP specification defines a Decision Process [RFC4271] for
selecting the best route. This process uses a series of steps, made
up of path attributes and other values, to first determine the Degree
of Preference of a route and later as tie breakers. While existing
mechanisms may achieve some of the same results described in this
document, they can only do so through extensive configuration such as
Retana & White Expires August 7, 2017 [Page 2]
Internet-Draft BGP Custom Decision Process February 2017
matching communities to explicit policy and/or route preference
configurations present on each BGP speaker within their
administrative domain (autonomous system). Implementing some
specific fine grained policies through such mechanisms is cumbersome,
if even possible. For example:
o Local Preference: The LOCAL_PREF is an attribute used to calculate
the Degree of Preference in the Decision Process. There is no
secondary degree of preference indicator available that can be
considered after the MED, IGP metric, or other attributes.
o Multi-Exit Discriminator (MED): The MULTI_EXIT_DISC is an
indicator of which local entrance point an AS would like a peering
AS to use. As the MED is compared before the IGP metric, there is
no way to set the MED so a route with a higher IGP metric is
preferred over one with a lower IGP metric.
o IGP Metric: It is possible, to influence individual routes, but
only by changing the next hops, and configuring the IGP metric for
reaching them. This method is cumbersome and prone to confusion
and error.
This document defines a new Extended Community [RFC4360], called the
Cost Community, which may be used as part of the Decision Process.
The end result is a local Custom Decision Process.
2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
3. The BGP Cost Community
The BGP Cost Community is an Opaque Extended Community [RFC4360]
defined as follows:
Type Field:
The value of the high-order octet is determined by provisioning
[RFC4360]. IANA has assigned the codepoint value 0x01 to 'Cost
Community' in both the Transitive Opaque Extended Community Sub-
Types registry and the Non-Transitive Opaque Extended Community
Sub-Types registry.
Value Field:
Retana & White Expires August 7, 2017 [Page 3]
Internet-Draft BGP Custom Decision Process February 2017
The Value field contains four distinct sub-fields, described
below:
0 1 2 3 4 5 6 7
+--------------------------------------+
| Point of Insertion (1 octet) |
+--------------------------------------+
| R | Community-ID (7 bits) |
+--------------------------------------+
| Cost (4 octets) |
| |
| |
| |
+--------------------------------------+
The Point of Insertion (POI) sub-field indicates *after*, or
*instead of*, which step in the Decision Process the Cost
Community MUST be considered. The Point of Application (POA)
refers to the step in the Decision Process where the Cost
Community is effectively considered -- the relationship between
the POI and the POA is determined by the Replace Bit (see below).
The value of the POI may reference a path attribute used in the
Decision Process. In this case the POA is related to the step
where the path attribute is considered.
The Decision Process includes some steps that do not correspond
to any path attribute; the following values are defined:
128 ABSOLUTE_VALUE - Indicates that the Cost Community MUST be
considered as the first step in determining the Degree of
Preference of a route (Section 9.1.1 of [RFC4271]). If two
routes have the same Cost, then the rest of the Calculation
of Degree of Preference is to be followed.
129 IGP_COST - Indicates that the Cost Community MUST be
considered after the interior (IGP) distance to the next-hop
has been compared.
130 EXTERNAL_INTERNAL - Indicates that the Cost Community MUST
be considered after Paragraph d of Section 9.1.2.2 of
[RFC4271].
131 BGP_ID - Indicates that the Cost Community MUST be
considered after the BGP Identifier (or ORIGINATOR_ID
[RFC4456]) has been compared.
Retana & White Expires August 7, 2017 [Page 4]
Internet-Draft BGP Custom Decision Process February 2017
This document creates a new Cost Community Point of Insertion
Registry (Section 7.1) that includes the relevant path
attributes and these other values.
The Replace Bit (R-bit) is a single-bit field, that when set
indicates that the Cost Community MUST replace the step indicated
by the POI in the Decision Process.
If the R-bit is not set, then the POA is after the step in the
Decision Process indicated by the POI, which may result in an
additional step. If the R-bit is set, then the POA is at the
step identified by the POI.
If the R-bit is set, the Cost in the Cost Community replaces
the value of a path attribute at a specific step in the
Decision Process, but not the attribute itself. For example,
if the R-bit is set with the AS_PATH POI, the AS_PATH attribute
would still be used for loop detection [RFC4271], but the Cost
would replace its length in the Decision Process.
The R-bit MUST be ignored when used with the ABSOLUTE_VALUE
POI.
If the Accumulated IGP Metric Attribute (AIGP) [RFC7311] is
used such that the "AIGP-enhanced interior cost" replaces the
"interior cost" tie breaker in the Decision Process, and the
R-bit is set with the IGP_COST POI, then the Cost Community
SHOULD be ignored in favor of the process described in
Section 4.2 of [RFC7311].
The Community-ID sub-field contains an identifier to distinguish
between multiple instances of the Cost Community.
The Cost sub-field is a 32-bit unsigned integer. It contains a
value assigned by the network administrator that is significant to
their administrative domain. The default Cost is 0x7FFFFFFF (half
the maximum).
If the Cost Community is inserted after a step in the Decision
Process, and is therefore only compared to other Cost
Communities, the lower Cost MUST be preferred.
If the Cost Community replaces a step in the Decision Process,
it MUST be treated exactly as the value it is replacing would
be treated. It is up to the network administrator to select
the appropriate Cost to use when replacing a specific step; the
method to do that is outside the scope of this document.
Retana & White Expires August 7, 2017 [Page 5]
Internet-Draft BGP Custom Decision Process February 2017
4. Operation
The network administrator may use the Cost Community to assign a Cost
to a route originated, or learned from a peer, in any part of their
administrative domain. The POA MUST also be specified by the
combination of the POI and the R-bit.
If a BGP speaker receives a route that contains the Cost Community,
it MUST consider its Cost at the POA specified, during the Decision
Process.
If the POI is not valid for the local Decision Process
implementation, then the Cost Community SHOULD be silently ignored.
Multiple Cost Communities may indicate the same POA. All the Cost
Communities for a specific POA MUST be considered starting with the
one(s) with the lowest Community-ID. If multiple Cost Communities,
for the same POA, with the same Community-ID are received for the
same route from the same peer, then all except the one with the
lowest Cost MUST be silently ignored.
Routes that do not contain the Cost Community (for a valid,
particular POA), or a Community-ID present in a route from another
peer, MUST be considered to have the default Cost.
If a range of routes is to be aggregated and the resultant aggregate
path attributes do not carry the ATOMIC_AGGREGATE attribute, then the
resulting aggregate SHOULD have an Extended Communities path
attribute which contains the set union of all the Cost Communities
from all of the aggregated routes. If multiple Cost Communities for
the same POA (and with the same Community-ID) exist, then only the
ones with the highest Cost SHOULD be included.
If the non-transitive version of a Cost Community is received across
an Autonomous System boundary, then the receiver MUST strip it off
the BGP update, and ignore it during the Decision Process.
5. Deployment Considerations
The mechanisms described in this document may be used to modify the
Decision Process arbitrarily. It is important that a consistent
Decision Process be maintained across the local Autonomous System to
avoid potential routing loops. In other words, all the nodes in the
AS that may have to consider the Cost Community MUST support the
mechanisms described in this document.
Any mechanism which allows the modification of the Decision Process
is capable of forming persistent routing loops in the control plane.
Retana & White Expires August 7, 2017 [Page 6]
Internet-Draft BGP Custom Decision Process February 2017
Network administrators deploying the Cost Community MUST ensure that
each impacted router supports them mechanisms in this document for
the POIs deployed within their network. This is similar in scope to
a network administrator who uses communities [RFC1997] combined with
filters or other policies to modify the Decision Process of BGP
speakers. Consistency must be enforced at an administrative level.
6. Security Considerations
This document defines a new Extended Community, called the Cost
Community, which may be used to customize the Decision Process. As
such, the considerations outlined in [RFC4360] and [RFC4271] do not
change.
To minimize the potential of creating routing loops (Section 5) or
otherwise affecting the Decision Process in unintended ways, the
propagation of Cost Communities MUST be disabled by default and MUST
be explicitly enabled by the network administrator. Furthermore, all
Cost Communities received across an Autonomous System boundary
without explicitly being enabled MUST be stripped off the BGP update,
and ignored during the Decision Process.
An ill-designed policy deployment using the Cost Community (e.g. one
where there is no consistent POI support throughout the AS) may
result in persistent routing loops that could result in loss of
traffic. The design and implementation of policies for best route
selection are outside the scope of this document.
7. IANA Considerations
IANA has assigned the codepoint value 0x01 to 'Cost Community' in
both the Transitive Opaque Extended Community Sub-Types registry and
the Non-Transitive Opaque Extended Community Sub-Types registry.
Section 3 also defines a series of values to be used to indicate
steps in the Decision Process that do not map directly to a path
attribute. IANA is expected to maintain a registry for the Cost
Community POI values.
o Values 1 through 127 are to be assigned using the "Standards
Action" policy or the Early Allocation process [RFC7120].
o Values 128 through 191 are to be assigned using the "IETF
Consensus" policy.
o Values 192 through 254 are to be assigned using the "First Come
First Served" policy.
Retana & White Expires August 7, 2017 [Page 7]
Internet-Draft BGP Custom Decision Process February 2017
o Values 0 and 255 are reserved.
All the policies mentioned are documented in [RFC5226].
The table in Section 7.1 shows the initial allocations for the new
Cost Community Point of Insertion registry.
7.1. Cost Community Point of Insertion Registry
The tables below document the initial Cost Community Point of
Insertion Registry
+---------+-------------------------+
| Range | Registration Procedure |
+---------+-------------------------+
| 0 | Reserved |
| 1-127 | Standards Action |
| 128-191 | IETF Consensus |
| 192-254 | First Come First Served |
| 255 | Reserved |
+---------+-------------------------+
Registration Procedure
+--------+-------------------+--------------------------------+
| Value | Code | Reference |
+--------+-------------------+--------------------------------+
| 1 | ORIGIN | RFC4271 |
| 2 | AS_PATH | RFC4271 |
| 3 | Unassigned | |
| 4 | MULTI_EXIT_DISC | RFC4271 |
| 5 | LOCAL_PREF | RFC4271 |
| 6-25 | Unassigned | |
| 26 | AIGP | RFC7311 |
| 27-127 | Unassigned | |
| 128 | ABSOLUTE_VALUE | draft-ietf-idr-custom-decision |
| 129 | IGP_COST | draft-ietf-idr-custom-decision |
| 130 | EXTERNAL_INTERNAL | draft-ietf-idr-custom-decision |
| 131 | BGP_ID | draft-ietf-idr-custom-decision |
+--------+-------------------+--------------------------------+
Point of Insertion
8. Acknowledgements
There have been many people who have shown their support and provided
valuable input, comments and implementations -- the authors would
like to thank all of them! We would like to also thank Dan Tappan
Retana & White Expires August 7, 2017 [Page 8]
Internet-Draft BGP Custom Decision Process February 2017
for the Opaque Extended Community type. Bruno Decraene and Eric
Rosen thoroughly reviewed this document and helped improved its
quality significantly.
9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
Border Gateway Protocol 4 (BGP-4)", RFC 4271,
DOI 10.17487/RFC4271, January 2006,
<http://www.rfc-editor.org/info/rfc4271>.
[RFC4360] Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended
Communities Attribute", RFC 4360, DOI 10.17487/RFC4360,
February 2006, <http://www.rfc-editor.org/info/rfc4360>.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
DOI 10.17487/RFC5226, May 2008,
<http://www.rfc-editor.org/info/rfc5226>.
[RFC7120] Cotton, M., "Early IANA Allocation of Standards Track Code
Points", BCP 100, RFC 7120, DOI 10.17487/RFC7120, January
2014, <http://www.rfc-editor.org/info/rfc7120>.
[RFC7311] Mohapatra, P., Fernando, R., Rosen, E., and J. Uttaro,
"The Accumulated IGP Metric Attribute for BGP", RFC 7311,
DOI 10.17487/RFC7311, August 2014,
<http://www.rfc-editor.org/info/rfc7311>.
9.2. Informative References
[RFC1997] Chandra, R., Traina, P., and T. Li, "BGP Communities
Attribute", RFC 1997, DOI 10.17487/RFC1997, August 1996,
<http://www.rfc-editor.org/info/rfc1997>.
[RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route
Reflection: An Alternative to Full Mesh Internal BGP
(IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006,
<http://www.rfc-editor.org/info/rfc4456>.
Retana & White Expires August 7, 2017 [Page 9]
Internet-Draft BGP Custom Decision Process February 2017
Appendix A. Change Log
This section is to be removed before publication.
A.1. Changes between the -00 and -01 versions.
o Updated authors' contact information.
o Editorial changes in the "Operations" and "Acknowledgement"
sections.
A.2. Changes between the -01 and -02 versions.
o Updated authors' contact information.
o Added text to replace a step in the selection process.
o Minor edits.
A.3. Changes between the -02 and -03 versions.
o No changes; just a refresh.
A.4. Changes between the -03 and -04 versions.
o Updated authors' contact information.
A.5. Changes between the -04 and -05 versions.
o Updated authors' contact information.
A.6. Changes between the -05 and -06 versions.
o Updated RFC 7120 reference (from RFC 4020).
A.7. Changes between the -06 and -07 versions
o The review from Bruno Decraene and Eric Rosen resulted in several
important changes related to the clarity and consistency of the
document.
o Added considerations for co-existence with AIGP.
o Security Considerations.
Retana & White Expires August 7, 2017 [Page 10]
Internet-Draft BGP Custom Decision Process February 2017
A.8. Changes between the -07 and -08 versions
o Clarified the Security Considerations to ensure that routers don't
apply the Cost Community by default.
o Separated the high-order bit in the Community-ID into its oen
field (for clarity). Called it the Replace Bit (R-bit).
o Introduced the POA concept.
Authors' Addresses
Alvaro Retana
Cisco Systems, Inc.
7025 Kit Creek Rd.
Research Triangle Park, NC 27709
USA
Email: aretana@cisco.com
Russ White
LinkedIn
Apex, NC 27539
USA
Email: russ@riw.us
Retana & White Expires August 7, 2017 [Page 11]