| 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/ | ||||