rfc9107xml2.original.xml | rfc9107.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="us-ascii"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc PUBLIC '' "http://xml2rfc.tools.ietf.org/authoring/rfc2629.dtd"[ | ||||
<!ENTITY RFC2119 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/referenc | ||||
e.RFC.2119.xml"> | ||||
<!ENTITY RFC2629 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/referenc | ||||
e.RFC.2629.xml"> | ||||
<!ENTITY RFC3552 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/referenc | ||||
e.RFC.3552.xml"> | ||||
<!ENTITY RFC3640 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/referenc | ||||
e.RFC.3640.xml"> | ||||
<!ENTITY RFC4456 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/referenc | ||||
e.RFC.4456.xml"> | ||||
<!ENTITY RFC8174 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/referenc | ||||
e.RFC.8174.xml"> | ||||
]> | ||||
<?xml-stylesheet type='text/xsl' | ||||
href="http://greenbytes.de/tech/webdav/rfc2629xslt/rfc2629.xslt" ?> | ||||
<?rfc strict="yes" ?> | ||||
<?rfc toc="yes"?> | ||||
<!-- generate a ToC --> | ||||
<?rfc tocdepth="4"?> | ||||
<!-- the number of levels of subsections in ToC. default: 3 --> | ||||
<!-- control references --> | ||||
<?rfc symrefs="yes"?> | ||||
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] --> | ||||
<?rfc sortrefs="yes" ?> | ||||
<!-- sort the reference entries alphabetically --> | ||||
<!-- control vertical white space | ||||
(using these PIs as follows is recommended by the RFC Editor) --> | ||||
<?rfc compact="yes" ?> | ||||
<!-- do not start each main section on a new page --> | ||||
<?rfc subcompact="no" ?> | ||||
<!-- keep one blank line between list items --> | ||||
<!-- end of list of popular I-D processing instructions --> | ||||
<rfc category="std" | ||||
docName="draft-ietf-idr-bgp-optimal-route-reflection-28" | ||||
ipr="trust200902" | ||||
obsoletes="" | ||||
updates="" | ||||
submissionType="IETF" | ||||
xml:lang="en"> | ||||
<!-- category values: std, bcp, info, exp, and historic | ||||
ipr values: full3667, noModification3667, noDerivatives3667 | ||||
you can add the attributes updates="NNNN" and obsoletes="NNNN" | ||||
they will automatically be output with "(if approved)" --> | ||||
<!-- ***** FRONT MATTER ***** --> | ||||
<front> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<title abbrev="bgp-optimal-route-reflection"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-idr-bgp-opti | |||
mal-route-reflection-28" number="9107" ipr="trust200902" obsoletes="" updates="" | ||||
submissionType="IETF" category="std" consensus="true" xml:lang="en" tocInclude= | ||||
"true" tocDepth="4" symRefs="true" sortRefs="true" version="3"> | ||||
<!-- xml2rfc v2v3 conversion 3.8.0 --> | ||||
<front> | ||||
<title abbrev="BGP Optimal Route Reflection"> | ||||
BGP Optimal Route Reflection (BGP ORR) | BGP Optimal Route Reflection (BGP ORR) | |||
</title> | </title> | |||
<seriesInfo name="RFC" value="9107"/> | ||||
<author fullname='Robert Raszuk' initials='R' surname='Raszuk' role="editor"> | <author fullname="Robert Raszuk" initials="R" surname="Raszuk" role="editor" | |||
<organization>NTT Network Innovations</organization> | > | |||
<address> | <organization>NTT Network Innovations</organization> | |||
<address> | ||||
<email>robert@raszuk.net</email> | <email>robert@raszuk.net</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="B" surname="Decraene" fullname="Bruno Decraene" role="edit | ||||
<author initials="B" surname="Decraene" fullname="Bruno Decraene" role="editor"> | or"> | |||
<organization>Orange</organization> | <organization>Orange</organization> | |||
<address> | <address> | |||
<email>bruno.decraene@orange.com</email> | <email>bruno.decraene@orange.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="C" surname="Cassar" fullname="Christian Cassar"> | ||||
<author initials="C" surname="Cassar" fullname="Christian Cassar"> | <address> | |||
<email>cassar.christian@gmail.com</email> | ||||
<address> | </address> | |||
<email>cassar.christian@gmail.com</email> | </author> | |||
</address> | <author initials="E" surname="Aman" fullname="Erik Aman"> | |||
</author> | <organization/> | |||
<address> | ||||
<author initials="E" surname="Aman" fullname="Erik Aman"> | <email>erik.aman@aman.se</email> | |||
<organization></organization> | </address> | |||
<address> | </author> | |||
<email>erik.aman@aman.se</email> | <author initials="K" surname="Wang" fullname="Kevin Wang"> | |||
</address> | <organization>Juniper Networks</organization> | |||
</author> | <address> | |||
<postal> | ||||
<author initials="K" surname="Wang" fullname="Kevin Wang"> | <street>10 Technology Park Drive</street> | |||
<organization>Juniper Networks</organization> | <city>Westford</city> | |||
<address> | <region>MA</region> | |||
<postal> | <code>01886</code> | |||
<street>10 Technology Park Drive</street> | <country>United States of America</country> | |||
<city>Westford</city> | </postal> | |||
<region>MA</region> | <email>kfwang@juniper.net</email> | |||
<code>01886</code> | </address> | |||
<country>USA</country> | </author> | |||
</postal> | <date year="2021" month="August"/> | |||
<email>kfwang@juniper.net</email> | <area>Routing</area> | |||
</address> | <workgroup>IDR Working Group</workgroup> | |||
</author> | <keyword>IDR</keyword> | |||
<abstract> | ||||
<date year="2021" /> | <t>This document defines an extension to BGP route reflectors. On route re | |||
<area>Routing</area> | flectors, | |||
<workgroup>IDR Working Group</workgroup> | ||||
<keyword>I-D</keyword> | ||||
<keyword>Internet-Draft</keyword> | ||||
<keyword>IDR</keyword> | ||||
<abstract> | ||||
<t>This document defines an extension to BGP route reflectors. On route reflecto | ||||
rs, | ||||
BGP route selection is modified in order to choose the best route from the stand point | BGP route selection is modified in order to choose the best route from the stand point | |||
of their clients, rather than from the standpoint of the route reflectors. Depen ding | of their clients, rather than from the standpoint of the route reflectors themse lves. Depending | |||
on the scaling and precision requirements, route selection can be specific for o ne | on the scaling and precision requirements, route selection can be specific for o ne | |||
client, common for a set of clients or common for all clients of a route reflect or. | client, common for a set of clients, or common for all clients of a route reflec tor. | |||
This solution is particularly applicable in deployments using centralized route | This solution is particularly applicable in deployments using centralized route | |||
reflectors, where choosing the best route based on the route reflector's IGP loc ation | reflectors, where choosing the best route based on the route reflector's IGP loc ation | |||
is suboptimal. This facilitates, for example, best exit point policy (hot potat | is suboptimal. This facilitates, for example, a "best exit point" policy ("hot | |||
o | potato | |||
routing).</t> | routing").</t> | |||
<t>The solution relies upon all route reflectors learning all paths that | ||||
<t>The solution relies upon all route reflectors learning all paths which | are eligible for consideration. BGP route selection is performed in the route | |||
are eligible for consideration. BGP Route Selection is performed in the route | reflectors based on the IGP cost from configured locations in the link-state IGP | |||
reflectors based on the IGP cost from configured locations in the link state IGP | .</t> | |||
.</t> | </abstract> | |||
</front> | ||||
</abstract> | <middle> | |||
<section numbered="true" toc="default"> | ||||
</front> | <name>Introduction</name> | |||
<t>There are three types of BGP deployments within Autonomous Systems (ASe | ||||
<middle> | s) today: full mesh, | |||
confederations, and route reflection. BGP route reflection <xref target="RFC4456 | ||||
<section title="Introduction"> | " format="default"/> is | |||
<t>There are three types of BGP deployments within Autonomous Systems today: ful | ||||
l mesh, | ||||
confederations and route reflection. BGP route reflection <xref target="RFC4456" | ||||
/> is | ||||
the most popular way to distribute BGP routes between BGP speakers belonging to the same | the most popular way to distribute BGP routes between BGP speakers belonging to the same | |||
Autonomous System. However, in some situations, this method suffers from non-opt imal | AS. However, in some situations, this method suffers from non-optimal | |||
path selection. </t> | path selection. </t> | |||
<t> <xref target="RFC4456" format="default"/> asserts that, because the IG | ||||
<t> <xref target="RFC4456" /> asserts that, because the IGP cost to a given poi | P cost to a given point in | |||
nt in | the network will vary across routers, | |||
the network will vary across routers, "the route reflection approach may not yie | "the route reflection approach may not yield the | |||
ld the | same route selection result as that of the full IBGP mesh approach." ("IBGP" sta | |||
same route selection result as that of the full Internal BGP (IBGP) mesh approac | nds for "Internal BGP".) One | |||
h." One | ||||
practical implication of this fact is that the deployment of route reflection ma y thwart | practical implication of this fact is that the deployment of route reflection ma y thwart | |||
the ability to achieve hot potato routing. Hot potato routing attempts to direct | the ability to achieve "hot potato routing". Hot potato routing attempts to dire | |||
traffic | ct traffic to the closest AS exit point in cases where no higher-priority policy | |||
to the closest Autonomous System (AS) exit point in cases where no higher priori | ||||
ty policy | ||||
dictates otherwise. As a consequence of the route reflection method, the choice of exit | dictates otherwise. As a consequence of the route reflection method, the choice of exit | |||
point for a route reflector and its clients will be the exit point that is optim al for | point for a route reflector and its clients will be the exit point that is optim al for | |||
the route reflector - not necessarily the one that is optimal for its clients. < | the route reflector -- not necessarily the one that is optimal for its clients. | |||
/t> | </t> | |||
<t><xref target="RFC4456" sectionFormat="of" section="11"/> describes a de | ||||
<t> Section 11 of <xref target="RFC4456" /> describes a deployment approach and | ployment approach and a set | |||
a set | of constraints that, if satisfied, would result in the deployment of route refle | |||
of constraints which, if satisfied, would result in the deployment of route refl | ction | |||
ection | ||||
yielding the same results as the IBGP full mesh approach. This deployment approa ch makes | yielding the same results as the IBGP full mesh approach. This deployment approa ch makes | |||
route reflection compatible with the application of hot potato routing policy. I n | route reflection compatible with the application of a hot potato routing policy. In | |||
accordance with these design rules, route reflectors have often been deployed in the | accordance with these design rules, route reflectors have often been deployed in the | |||
forwarding path and carefully placed on the Point of Presence (POP) to core boun | forwarding path and carefully placed on the boundaries between the Point of Pres | |||
daries.</t> | ence (POP) and the network core.</t> | |||
<t>The evolving model of intra-domain network design has enabled deploymen | ||||
<t>The evolving model of intra-domain network design has enabled deployments of | ts of route | |||
route | reflectors outside the forwarding path. Initially, this model was only employed | |||
reflectors outside the forwarding path. Initially this model was only employed f | for new | |||
or new | services, e.g., IP VPNs <xref target="RFC4364" format="default"/>; however, it h | |||
services, e.g., IP VPNs <xref target="RFC4364" />, however it has been gradually | as been gradually | |||
extended to other BGP services, including the IPv4 and IPv6 Internet. In such | extended to other BGP services, including the IPv4 and IPv6 Internet. In such | |||
environments, hot potato routing policy remains desirable.</t> | environments, a hot potato routing policy remains desirable.</t> | |||
<t>Route reflectors outside the forwarding path can be placed on the bound | ||||
<t>Route reflectors outside the forwarding path can be placed on the POP to core | aries between the POP and the network core, | |||
boundaries, but they are often placed in arbitrary locations in the core of larg | but they are often placed in arbitrary locations in the core of large | |||
e | ||||
networks.</t> | networks.</t> | |||
<t>Such deployments suffer from a critical drawback in the context of BGP | ||||
<t>Such deployments suffer from a critical drawback in the context of BGP Route | route selection: | |||
Selection: | a route reflector with knowledge of multiple paths for a given route will typica | |||
A route reflector with knowledge of multiple paths for a given route will typica | lly pick | |||
lly pick | ||||
its best path and only advertise that best path to its clients. If the best path for a | its best path and only advertise that best path to its clients. If the best path for a | |||
route is selected on the basis of an IGP tie-break, the path advertised will be the exit | route is selected on the basis of an IGP tie-break, the path advertised will be the exit | |||
point closest to the route reflector. However, the clients are in a different pl ace in | point closest to the route reflector. However, the clients are in a different pl ace in | |||
the network topology than the route reflector. In networks where the route refle ctors are | the network topology than the route reflector. In networks where the route refle ctors are | |||
not in the forwarding path, this difference will be even more acute.</t> | not in the forwarding path, this difference will be even more acute.</t> | |||
<t>In addition, there are deployment scenarios where service providers wan | ||||
<t>In addition, there are deployment scenarios where service providers want to h | t to have more | |||
ave more | ||||
control in choosing the exit points for clients based on other factors, such as traffic | control in choosing the exit points for clients based on other factors, such as traffic | |||
type, traffic load, etc. This further complicates the issue and makes it less li kely for | type, traffic load, etc. This further complicates the issue and makes it less li kely for | |||
the route reflector to select the best path from the client's perspective. It fo llows | the route reflector to select the best path from the client's perspective. It fo llows | |||
that the best path chosen by the route reflector is not necessarily the same as the path | that the best path chosen by the route reflector is not necessarily the same as the path | |||
which would have been chosen by the client if the client had considered the same set of | that would have been chosen by the client if the client had considered the same set of | |||
candidate paths as the route reflector.</t> | candidate paths as the route reflector.</t> | |||
</section> | ||||
</section> | <section numbered="true" toc="default"> | |||
<name>Terminology</name> | ||||
<section title="Terminology"> | ||||
<t>This memo makes use of the terms defined in <xref target="RFC4271"/> and <xre f target="RFC4456"/>.</t> | <t>This memo makes use of the terms defined in <xref target="RFC4271"/> and <xre f target="RFC4456"/>.</t> | |||
<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | ||||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | |||
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
"MAY", and "OPTIONAL" in this document are to be interpreted as | "<bcp14>SHOULD NOT</bcp14>", | |||
described in BCP 14 <xref target="RFC2119"/> | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
<xref target="RFC8174"/> when, and only when, they | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | |||
appear in all capitals, as shown here. | are to be interpreted as described in BCP 14 | |||
</t> | <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | |||
when, they appear in all capitals, as shown here.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Modifications to BGP Route Selection"> | <name>Modifications to BGP Route Selection</name> | |||
<t>The core of this solution is the ability for an operator to specify the | ||||
<t>The core of this solution is the ability for an operator to specify the IGP l | IGP location | |||
ocation | for which the route reflector calculates interior cost to the next hop. The IGP | |||
for which the route reflector calculates interior cost for the NEXT_HOP. The IGP | ||||
location is defined as a node in the IGP topology, it is identified by an IP add ress | location is defined as a node in the IGP topology, it is identified by an IP add ress | |||
of this node (e.g., a loopback address), and may be configured on a per route re | of this node (e.g., a loopback address), and it may be configured on a | |||
flector | per-route-reflector basis, per set of clients, or on a per-client basis. Such co | |||
basis, per set of clients, or per client basis. Such configuration will allow th | nfiguration will allow the | |||
e | route reflector to select and distribute to a given set of clients routes with t | |||
route reflector to select and distribute to a given set of clients routes with s | he shortest | |||
hortest | ||||
distance to the next hops from the position of the selected IGP location. This p rovides | distance to the next hops from the position of the selected IGP location. This p rovides | |||
for freedom of route reflector physical location, and allows transient or perman ent | for freedom related to the route reflector's physical location and allows transi ent or permanent | |||
migration of this network control plane function to an arbitrary location with n o | migration of this network control plane function to an arbitrary location with n o | |||
impact to IP transit.</t> | impact on IP transit.</t> | |||
<t>The choice of specific granularity (route reflector, set of clients, or | ||||
<t>The choice of specific granularity (route reflector, set of clients, or clien | client) is | |||
t) is | ||||
configured by the network operator. An implementation is considered compliant wi th this | configured by the network operator. An implementation is considered compliant wi th this | |||
document if it supports at least one such grouping category.</t> | document if it supports at least one such grouping category.</t> | |||
<t> For purposes of route selection, the perspective of a client can diffe | ||||
<t> For purposes of route selection, the perspective of a client can differ from | r from that of | |||
that of | ||||
a route reflector or another client in two distinct ways: | a route reflector or another client in two distinct ways: | |||
<list style="symbols"> | </t> | |||
<t> it has a different position in the IGP topology,</t> | <ul spacing="normal"> | |||
<t> it can have a different routing policy.</t> | <li>It has a different position in the IGP topology.</li> | |||
</list> | <li>It can have a different routing policy.</li> | |||
</ul> | ||||
<t> | ||||
These factors correspond to the issues described earlier. </t> | These factors correspond to the issues described earlier. </t> | |||
<t>This document defines, for BGP route reflectors <xref target="RFC4456" | ||||
<t>This document defines, for BGP Route Reflectors <xref target="RFC4456" />, tw | format="default"/>, two changes | |||
o changes | to the BGP route selection algorithm:</t> | |||
to the BGP Route Selection algorithm: | <ul spacing="normal"> | |||
<li>The first change, introduced in <xref target="sec_IGP_cost" format=" | ||||
<list style="symbols" > | default"/>, is related to the IGP | |||
<t>The first change, introduced in <xref target="sec_IGP_cost" />, is related to | cost to the BGP next hop in the BGP Decision Process. The change consists of usi | |||
the IGP | ng the IGP | |||
cost to the BGP Next Hop in the BGP decision process. The change consists of usi | cost from a different IGP location than the route reflector itself.</li> | |||
ng the IGP | <li>The second change, introduced in <xref target="sec_multiple" format= | |||
cost from a different IGP location than the route reflector itself.</t> | "default"/>, is to extend the | |||
granularity of the BGP Decision Process, to allow for running multiple Decision | ||||
<t>The second change, introduced in <xref target="sec_multiple" />, is to extend | Processes | |||
the | using different perspectives or policies.</li> | |||
granularity of the BGP decision process, to allow for running multiple decisions | </ul> | |||
processes | <t> A route reflector can implement either or both of the modifications | |||
using different perspective or policies.</t> | in order to | |||
</list></t> | allow it to choose the best path for its clients that the clients themselves wou | |||
ld have | ||||
<t>A significant advantage of these approaches is that the route reflector clien | chosen given the same set of candidate paths.</t> | |||
ts do | <t>A significant advantage of these approaches is that the route reflector | |||
's clients do | ||||
not need to be modified.</t> | not need to be modified.</t> | |||
<section anchor="sec_IGP_cost" numbered="true" toc="default"> | ||||
<section title="Route Selection from a different IGP location" anchor="sec_IGP_c | <name>Route Selection from a Different IGP Location</name> | |||
ost"> | <t>In this approach, "optimal" refers to the decision where the interior | |||
cost of a route is | ||||
<t>In this approach, optimal refers to the decision where the interior cost of a | determined during step e) of Section <xref target="RFC4271" section="9.1.2. | |||
route is | 2" | |||
determined during step e) of <xref target="RFC4271" /> section 9.1.2.2 "Breaking | sectionFormat="bare">"Breaking Ties (Phase 2)"</xref> of <xref target="RFC4271"/ | |||
Ties | >. It does not apply to path selection preference based on other policy steps | |||
(Phase 2)". It does not apply to path selection preference based on other policy | ||||
steps | ||||
and provisions.</t> | and provisions.</t> | |||
<t>In addition to the change specified in <xref target="RFC4456" section Format="of" section="9"/>, the text in step e) in <xref target="RFC4271" section Format="of" section="9.1.2.2"/> is modified as follows.</t> | ||||
<t>In addition to the change specified in <xref target="RFC4456" /> section 9, | <t>RFC 4271 reads:</t> | |||
<xref target="RFC4271" /> section 9.1.2.2 is modified as follows.</t> | <blockquote> | |||
<dl spacing="normal" indent="4"> | ||||
<t>The below text in step e) | <dt>e)</dt><dd>Remove from consideration any routes with less-preferred | |||
<list> | ||||
<t>e) Remove from consideration any routes with less-preferred | ||||
interior cost. The interior cost of a route is determined by | interior cost. The interior cost of a route is determined by | |||
calculating the metric to the NEXT_HOP for the route using the | calculating the metric to the NEXT_HOP for the route using the | |||
Routing Table.</t> | Routing Table.</dd> | |||
</list></t> | </dl> | |||
</blockquote> | ||||
<t>...is replaced by this new text: | <t>This document modifies this text to read:</t> | |||
<list> | <blockquote> | |||
<t>e) Remove from consideration any routes with less-preferred | <dl spacing="normal" indent="4"> | |||
<dt>e)</dt><dd>Remove from consideration any routes with less-preferred | ||||
interior cost. The interior cost of a route is determined by | interior cost. The interior cost of a route is determined by | |||
calculating the metric from the selected IGP location to the NEXT_HOP f or the route | calculating the metric from the selected IGP location to the NEXT_HOP f or the route | |||
using the shortest IGP path tree rooted at the selected IGP location.</ | using the shortest IGP path tree rooted at the selected IGP location.</ | |||
t> | dd> | |||
</list> </t> | </dl> | |||
</blockquote> | ||||
<t>In order to be able to compute the shortest path tree rooted at the selected | <t>In order to be able to compute the shortest path tree rooted at the s | |||
IGP | elected IGP | |||
locations, knowledge of the IGP topology for the area/level that includes each o f those | locations, knowledge of the IGP topology for the area/level that includes each o f those | |||
locations is needed. This knowledge can be gained with the use of the link state | locations is needed. This knowledge can be gained with the use of the link-state | |||
IGP | IGP, | |||
such as IS-IS <xref target="ISO10589"/> or OSPF <xref target="RFC2328" /> | such as IS-IS <xref target="ISO10589" format="default"/> or OSPF <xref target="R | |||
<xref target="RFC5340" /> or via BGP-LS <xref target="RFC7752" />. When specifyi | FC2328" format="default"/> | |||
ng logical | <xref target="RFC5340" format="default"/>, or via the Border Gateway P | |||
location of a route reflector for a group of clients one or more backup IGP loca | rotocol - Link State (BGP-LS) <xref target="RFC7752" format="default"/>. When sp | |||
tions | ecifying the logical | |||
SHOULD be allowed to be specified for redundancy. Further deployment considerati | location of a route reflector for a group of clients, one or more backup IGP loc | |||
ons | ations | |||
are discussed in Section 4.</t> | <bcp14>SHOULD</bcp14> be allowed to be specified for redundancy. Further deploym | |||
ent considerations | ||||
<section title="Restriction when BGP next hop is a BGP route"> | are discussed in <xref target="deployment-cons"/>.</t> | |||
<t>In situations where the BGP next hop is a BGP route itself, the IGP metric of | <section numbered="true" toc="default"> | |||
a route | <name>Restriction when the BGP Next Hop Is a BGP Route</name> | |||
used for its resolution SHOULD be the final IGP cost to reach such next hop. Imp | <t>In situations where the BGP next hop is a BGP route itself, the IGP | |||
lementations | metric of a route | |||
which cannot inform BGP of the final IGP metric to a recursive next hop MUST tre | used for its resolution <bcp14>SHOULD</bcp14> be the final IGP cost to reach suc | |||
at such | h a next hop. Implementations | |||
paths as least preferred during next hop metric comparison. However, such paths | that cannot inform BGP of the final IGP metric to a recursive next hop <bcp14>MU | |||
MUST | ST</bcp14> treat such | |||
still be considered valid for BGP Phase 2 Route Selection.</t> | paths as least preferred during next-hop metric comparisons. However, such paths | |||
</section> | <bcp14>MUST</bcp14> | |||
</section> | still be considered valid for BGP Phase 2 route selection.</t> | |||
</section> | ||||
<section title="Multiple Route Selections" anchor="sec_multiple"> | </section> | |||
<section anchor="sec_multiple" numbered="true" toc="default"> | ||||
<t>BGP Route Reflector as per <xref target="RFC4456" /> runs a single BGP Decisi | <name>Multiple Route Selections</name> | |||
on | <t>A BGP route reflector as per <xref target="RFC4456" format="default"/ | |||
Process. Optimal route reflection may require multiple BGP Decision Processes or | > runs a single BGP Decision | |||
Process. BGP Optimal Route Reflection (BGP ORR) may require multiple BGP Decisio | ||||
n Processes or | ||||
subsets of the Decision Process in order to consider different IGP locations or | subsets of the Decision Process in order to consider different IGP locations or | |||
BGP policies for different sets of clients. This is very similar to what is defi ned | BGP policies for different sets of clients. This is very similar to what is defi ned | |||
in <xref target="RFC7947" /> section 2.3.2.1.</t> | in <xref target="RFC7947" sectionFormat="comma" section="2.3.2.1"/>.</t> | |||
<t> If the required routing optimization is limited to the IGP cost to t | ||||
<t> If the required routing optimization is limited to the IGP cost to the BGP | he BGP | |||
Next-Hop, only step e) and subsequent steps as defined in <xref target="RFC4271" | next hop, only step e) and subsequent steps as defined in | |||
/> | <xref target="RFC4271" sectionFormat="comma" section="9.1.2.2"/> need to be run | |||
section 9.1.2.2, needs to be run multiple times.</t> | multiple times.</t> | |||
<t> If the routing optimization requires the use of different BGP polici | ||||
<t> If the routing optimization requires the use of different BGP policies for | es for | |||
different sets of clients, a larger part of the decision process needs to be run | different sets of clients, a larger part of the Decision Process needs to be run | |||
multiple times, up to the whole decision process as defined in section 9.1 of | multiple times, up to the whole Decision Process as defined in <xref target="RFC | |||
<xref target="RFC4271" />. This is for example the case when there is a need to | 4271" sectionFormat="of" section="9.1"/>. This is, for example, the case when th | |||
use different policies to compute different degree of preference during Phase 1. | ere is a need to | |||
use different policies to compute different degrees of preference during Phase 1 | ||||
. | ||||
This is needed for use cases involving traffic engineering or dedicating certain | This is needed for use cases involving traffic engineering or dedicating certain | |||
exit points for certain clients. In the latter case, the user may specify and ap ply | exit points for certain clients. In the latter case, the user may specify and ap ply | |||
a general policy on the route reflector for a set of clients. Regular path selec tion, | a general policy on the route reflector for a set of clients. Regular path selec tion, | |||
including IGP perspective for a set of clients as per <xref target="sec_IGP_cost " />, | including IGP perspectives for a set of clients as per <xref target="sec_IGP_cos t" format="default"/>, | |||
is then applied to the candidate paths to select the final paths to advertise to the | is then applied to the candidate paths to select the final paths to advertise to the | |||
clients. </t> | clients. </t> | |||
</section> | ||||
<t> A route reflector can implement either or both of the modifications in order | </section> | |||
to | <section anchor="deployment-cons" numbered="true" toc="default"> | |||
allow it to choose the best path for its clients that the clients themselves wou | <name>Deployment Considerations</name> | |||
ld have | <t>BGP ORR provides a model for integrating the client's | |||
chosen given the same set of candidate paths.</t> | perspective into the BGP route selection Decision Process for route reflectors. | |||
</section> | ||||
</section> | ||||
<section title="Deployment Considerations"> | ||||
<t>BGP Optimal Route Reflection provides a model for integrating the client | ||||
perspective into the BGP Route Selection decision function for route reflectors. | ||||
More specifically, the choice of BGP path takes into account either the IGP | More specifically, the choice of BGP path takes into account either the IGP | |||
cost between the client and the NEXT_HOP (rather than the IGP cost from the | cost between the client and the next hop (rather than the IGP cost from the | |||
route reflector to the NEXT_HOP) or other user configured policies.</t> | route reflector to the next hop) or other user-configured policies.</t> | |||
<t>The achievement of optimal routing between clients of different cluster | ||||
<t>The achievement of optimal routing between clients of different clusters | s | |||
relies upon all route reflectors learning all paths that are eligible for | relies upon all route reflectors learning all paths that are eligible for | |||
consideration. In order to satisfy this requirement, BGP add-path | consideration. In order to satisfy this requirement, BGP ADD-PATH | |||
<xref target="RFC7911" /> needs to be deployed between route reflectors. </t> | <xref target="RFC7911" format="default"/> needs to be deployed between route ref | |||
lectors. </t> | ||||
<t>This solution can be deployed in traditional hop-by-hop forwarding | <t>This solution can be deployed in hop-by-hop forwarding | |||
networks as well as in end-to-end tunneled environments. To avoid routing | networks as well as in end-to-end tunneled environments. To avoid routing | |||
loops in networks with multiple route reflectors and hop-by-hop forwarding | loops in networks with multiple route reflectors and hop-by-hop forwarding | |||
without encapsulation, it is essential that the network topology be carefully | without encapsulation, it is essential that the network topology be carefully | |||
considered in designing a route reflection topology (see also Section 11 of | considered in designing a route reflection topology (see also <xref target="RFC4 | |||
<xref target="RFC4456" />).</t> | 456" sectionFormat="of" section="11"/>).</t> | |||
<t>As discussed in <xref target="RFC4456" sectionFormat="of" section="11"/ | ||||
<t>As discussed in section 11 of <xref target="RFC4456" />, the IGP locations | >, the IGP locations | |||
of BGP route reflectors is important and has routing implications. This | of BGP route reflectors are important and have routing implications. This | |||
equally applies to the choice of the IGP locations configured on optimal route | equally applies to the choice of the IGP locations configured on optimal route | |||
reflectors. If a backup location is provided, it is used when the primary IGP | reflectors. If a backup location is provided, it is used when the primary IGP | |||
location disappears from the IGP (i.e. fails). Just like the failure of a RR | location disappears from the IGP (i.e., fails). Just like the failure of a route | |||
<xref target="RFC4456" />, it may result in changing the paths selected and | reflector <xref target="RFC4456" format="default"/>, it may result in changing | |||
advertised to the clients and in general the post-failure paths are expected to | the paths selected and | |||
advertised to the clients, and in general, the post-failure paths are expected t | ||||
o | ||||
be less optimal. This is dependent on the IGP topologies and the IGP distance | be less optimal. This is dependent on the IGP topologies and the IGP distance | |||
between the primary and the backup IGP locations: the smaller the distance the | between the primary and backup IGP locations: the smaller the distance, the | |||
smaller the potential impact.</t> | smaller the potential impact.</t> | |||
<t> | ||||
<t>After selecting suitable IGP locations, an operator may let one or multiple | After selecting N suitable IGP locations, an operator can choose to enable route | |||
route reflectors handle route selection for all of them. The operator may | selection for all of them on all or on a subset of their route reflectors. The | |||
alternatively deploy one or multiple route reflector for each IGP location or | operator may alternatively deploy single or multiple (backup case) route | |||
create any design in between. This choice may depend on operational model | reflectors for each IGP location or create any design in between. This | |||
(centralized vs per region), acceptable blast radius in case of failure, | choice may depend on the operational model (centralized vs. per region), an acce | |||
acceptable number of IBGP sessions for the mesh between the route reflectors, | ptable | |||
performance and configuration granularity of the equipment.</t> | blast radius in the case of failure, an acceptable number of IBGP sessions for t | |||
he mesh between the route reflectors, performance, and configuration granularity | ||||
<t>With this approach, an ISP can effect a hot potato routing policy | of the equipment.</t> | |||
even if route reflection has been moved out of the forwarding plane, and | <t>With this approach, an ISP can effect a hot potato routing policy | |||
even if route reflection has been moved out of the forwarding plane and | ||||
hop-by-hop forwarding has been replaced by end-to-end MPLS or IP | hop-by-hop forwarding has been replaced by end-to-end MPLS or IP | |||
encapsulation. Compared with a deployment of ADD-PATH on all routers, BGP | encapsulation. Compared with a deployment of ADD-PATH on all routers, BGP ORR | |||
Optimal Route Reflection (ORR) reduces the amount of state which needs to | reduces the amount of state that needs to | |||
be pushed to the edge of the network in order to perform hot potato routing.</t> | be pushed to the edge of the network in order to perform hot potato routing.</t> | |||
<t>Modifying the IGP location of BGP ORR does not interfere with policies | ||||
<t>Modifying the IGP location of BGP ORR does not interfere with policies | enforced before IGP tie-breaking (step e) of | |||
enforced before IGP tie-breaking (step e) of <xref target="RFC4271" /> section | <xref target="RFC4271" sectionFormat="comma" section="9.1.2.2"/>) in the BGP Dec | |||
9.1.2.2 in the BGP Decision Process.</t> | ision Process.</t> | |||
<t>Calculating routes for different IGP locations requires multiple Shorte | ||||
<t>Calculating routes for different IGP locations requires multiple Shortest | st | |||
Path First (SPF) calculations and multiple (subsets of) BGP Decision Processes, | Path First (SPF) calculations and multiple (subsets of) BGP Decision Processes. | |||
which requires more computing resources. This document allows for different | This scenario calls for more computing resources. This document allows for diffe | |||
granularity such as one Decision Process per route reflector, per set of clients | rent | |||
granularity, such as one Decision Process per route reflector, per set of client | ||||
s, | ||||
or per client. A more fine-grained granularity may translate into more optimal | or per client. A more fine-grained granularity may translate into more optimal | |||
hot potato routing at the cost of more computing power. Selecting to configure | hot potato routing at the cost of more computing power. Choosing to configure | |||
an IGP location per client has the highest precision as each client can be | an IGP location per client has the highest precision, as each client can be | |||
associated with their ideal (own) IGP location. However, doing so may have an | associated with their ideal (own) IGP location. However, doing so may have an | |||
impact on the performance (as explained above). Using an IGP location per set | impact on performance (as explained above). Using an IGP location per set | |||
of clients implies a loss of precision, but reduces the impact on the performanc | of clients implies a loss of precision but reduces the impact on the performance | |||
e | ||||
of the route reflector. Similarly, if an IGP location is selected for the whole | of the route reflector. Similarly, if an IGP location is selected for the whole | |||
routing instance, the lowest precision is achieved, but the performance impact | routing instance, the lowest precision is achieved, but the impact on performanc | |||
is minimal. In the last mode of operation both precision as well as perfomance | e | |||
metrics are equal to same metrics when using route reflection as described in | is minimal. In the last mode of operation (where an IGP location is selected for | |||
<xref target="RFC4456" /> without ORR extension. | the whole routing instance), both precision and performance | |||
metrics are equal to route reflection as described in | ||||
The ability to run fine-grained computations depends on the platform/hardware | <xref target="RFC4456" format="default"/>. The ability to run fine-grained compu | |||
deployed, the number of clients, the number of BGP routes and the size of the | tations depends on the platform/hardware | |||
deployed, the number of clients, the number of BGP routes, and the size of the | ||||
IGP topology. In essence, sizing considerations are similar to the deployments | IGP topology. In essence, sizing considerations are similar to the deployments | |||
of BGP Route Reflector.</t> | of BGP route reflectors.</t> | |||
</section> | ||||
</section> | <section numbered="true" toc="default"> | |||
<name>Security Considerations</name> | ||||
<section title="Security Considerations"> | <t>The extension specified in this document provides a new metric value us | |||
ing additional information | ||||
<t>This extension provides a new metric value using additional information | ||||
for computing routes for BGP route reflectors. While any improperly used | for computing routes for BGP route reflectors. While any improperly used | |||
metric value could impact the resiliency of the network, this extension does | metric value could impact the resiliency of the network, this extension does | |||
not change the underlying security issues inherent in the existing IBGP per | not change the underlying security issues inherent in the existing IBGP per | |||
<xref target="RFC4456" />.</t> | <xref target="RFC4456" format="default"/>.</t> | |||
<t>This document does not introduce requirements for any new protection | ||||
<t>This document does not introduce requirements for any new protection | ||||
measures. </t> | measures. </t> | |||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>IANA Considerations</name> | ||||
<t>This document has no IANA actions.</t> | ||||
</section> | ||||
</middle> | ||||
<back> | ||||
<references> | ||||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2119.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4271.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4456.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8174.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7911.xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2328.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4364.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5340.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7752.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7947.xml"/> | ||||
</section> | <reference anchor="ISO10589"> | |||
<front> | ||||
<section title="IANA Considerations"> | <title>Intermediate system to Intermediate system intra-domain | |||
routeing information exchange protocol for use in conjunction with | ||||
<t>This document does not request any IANA allocations.</t> | the protocol for providing the connectionless-mode Network Service (ISO 8473)</ | |||
title> | ||||
</section> | <author> | |||
<organization abbrev="ISO">International Organization for Standard | ||||
<section title="Acknowledgments"> | ization</organization> | |||
</author> | ||||
<t>Authors would like to thank Keyur Patel, Eric Rosen, Clarence | <date month="November" year="2002"/> | |||
Filsfils, Uli Bornhauser, Russ White, Jakob Heitz, Mike Shand, Jon | </front> | |||
Mitchell, John Scudder, Jeff Haas, Martin Djernaes, Daniele | <refcontent>ISO/IEC 10589:2002, Second Edition</refcontent> | |||
Ceccarelli, Kieran Milne, Job Snijders, Randy Bush, Alvaro Retana, | </reference> | |||
Francesca Palombini, Benjamin Kaduk, Zaheduzzaman Sarker, Lars | </references> | |||
Eggert, Murray Kucherawy, Tom Petch and Nick Hilliard for their | </references> | |||
<section numbered="false" toc="default"> | ||||
<name>Acknowledgments</name> | ||||
<t>The authors would like to thank <contact fullname="Keyur Patel"/>, <con | ||||
tact fullname="Eric Rosen"/>, <contact fullname="Clarence Filsfils"/>, <contact | ||||
fullname="Uli Bornhauser"/>, <contact fullname="Russ White"/>, <contact fullname | ||||
="Jakob Heitz"/>, <contact fullname="Mike Shand"/>, <contact fullname="Jon | ||||
Mitchell"/>, <contact fullname="John Scudder"/>, <contact fullname="Jeff Haas"/> | ||||
, <contact fullname="Martin Djernæs"/>, <contact fullname="Daniele Ceccarelli"/> | ||||
, <contact fullname="Kieran Milne"/>, <contact fullname="Job Snijders"/>, <conta | ||||
ct fullname="Randy Bush"/>, <contact fullname="Alvaro Retana"/>, | ||||
<contact fullname="Francesca Palombini"/>, <contact fullname="Benjamin Kaduk"/>, | ||||
<contact fullname="Zaheduzzaman Sarker"/>, <contact fullname="Lars Eggert"/>, < | ||||
contact fullname="Murray Kucherawy"/>, <contact fullname="Tom Petch"/>, and <con | ||||
tact fullname="Nick Hilliard"/> for their | ||||
valuable input.</t> | valuable input.</t> | |||
</section> | ||||
</section> | <section numbered="false" toc="default"> | |||
<name>Contributors</name> | ||||
<section title="Contributors"> | <t>The following persons contributed substantially to the current | |||
<t>Following persons substantially contributed to the current | ||||
format of the document:</t> | format of the document:</t> | |||
<t> | <contact fullname="Stephane Litkowski"> | |||
<figure> | <organization>Cisco Systems</organization> | |||
<artwork> | <address> | |||
Stephane Litkowski | <postal> | |||
Cisco System | <street></street> | |||
<city></city> | ||||
slitkows.ietf@gmail.com | <region></region> | |||
</artwork> | <code></code> | |||
</figure> | <country></country> | |||
</t> | </postal> | |||
<email>slitkows.ietf@gmail.com</email> | ||||
<t> | </address> | |||
<figure> | </contact> | |||
<artwork> | ||||
Adam Chappell | ||||
GTT Communications, Inc. | ||||
Aspira Business Centre | ||||
Bucharova 2928/14a | ||||
158 00 Prague 13 Stodulky | ||||
Czech Republic | ||||
adam.chappell@gtt.net | ||||
</artwork> | ||||
</figure> | ||||
</t> | ||||
</section> | ||||
</middle> | ||||
<back> | ||||
<references title="Normative References"> | ||||
<?rfc include="reference.RFC.2119"?> | ||||
<?rfc include="reference.RFC.4271"?> | ||||
<?rfc include="reference.RFC.4456"?> | ||||
<?rfc include="reference.RFC.8174"?> | ||||
<?rfc include="reference.RFC.7911"?> | ||||
</references> | ||||
<references title="Informative References"> | ||||
<?rfc include="reference.RFC.2328"?> | ||||
<?rfc include="reference.RFC.4364"?> | ||||
<?rfc include="reference.RFC.5340"?> | ||||
<?rfc include="reference.RFC.7752"?> | ||||
<?rfc include="reference.RFC.7947"?> | ||||
<reference anchor="ISO10589"> | ||||
<front> | ||||
<title>Intermediate system to Intermediate system intra-d | ||||
omain | ||||
routeing information exchange protocol for use in conjunc | ||||
tion with | ||||
the protocol for providing the connectionless-mode Networ | ||||
k Service | ||||
(ISO 8473)</title> | ||||
<author> | <contact fullname="Adam Chappell"> | |||
<organization abbrev="ISO">International Organization for | <organization>GTT Communications, Inc.</organization> | |||
Standardization</organization> | <address> | |||
</author> | <postal> | |||
<date month="Nov" year="2002"/> | <street>Aspira Business Centre</street> | |||
</front> | <street>Bucharova 2928/14a</street> | |||
<seriesInfo name="ISO/IEC" value="10589:2002, Second Edition"/> | <city>158 00 Prague 13 Stodůlky</city> | |||
</reference> | <region></region> | |||
</references> | <code></code> | |||
</back> | <country>Czech Republic</country> | |||
</postal> | ||||
<email>adam.chappell@gtt.net</email> | ||||
</address> | ||||
</contact> | ||||
</section> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 53 change blocks. | ||||
458 lines changed or deleted | 403 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |