| < draft-ietf-lsvr-bgp-spf-01.txt | draft-ietf-lsvr-bgp-spf-02.txt > | |||
|---|---|---|---|---|
| Network Working Group K. Patel | Network Working Group K. Patel | |||
| Internet-Draft Arrcus, Inc. | Internet-Draft Arrcus, Inc. | |||
| Intended status: Standards Track A. Lindem | Intended status: Standards Track A. Lindem | |||
| Expires: December 2, 2018 Cisco Systems | Expires: February 7, 2019 Cisco Systems | |||
| S. Zandi | S. Zandi | |||
| W. Henderickx | W. Henderickx | |||
| Nokia | Nokia | |||
| May 31, 2018 | August 6, 2018 | |||
| Shortest Path Routing Extensions for BGP Protocol | Shortest Path Routing Extensions for BGP Protocol | |||
| draft-ietf-lsvr-bgp-spf-01.txt | draft-ietf-lsvr-bgp-spf-02.txt | |||
| Abstract | Abstract | |||
| Many Massively Scaled Data Centers (MSDCs) have converged on | Many Massively Scaled Data Centers (MSDCs) have converged on | |||
| simplified layer 3 routing. Furthermore, requirements for | simplified layer 3 routing. Furthermore, requirements for | |||
| operational simplicity have lead many of these MSDCs to converge on | operational simplicity have lead many of these MSDCs to converge on | |||
| BGP as their single routing protocol for both their fabric routing | BGP as their single routing protocol for both their fabric routing | |||
| and their Data Center Interconnect (DCI) routing. This document | and their Data Center Interconnect (DCI) routing. This document | |||
| describes a solution which leverages BGP Link-State distribution and | describes a solution which leverages BGP Link-State distribution and | |||
| the Shortest Path First (SPF) algorithm similar to Internal Gateway | the Shortest Path First (SPF) algorithm similar to Internal Gateway | |||
| skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on December 2, 2018. | This Internet-Draft will expire on February 7, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 40 ¶ | skipping to change at page 2, line 40 ¶ | |||
| 1.1. BGP Shortest Path First (SPF) Motivation . . . . . . . . 4 | 1.1. BGP Shortest Path First (SPF) Motivation . . . . . . . . 4 | |||
| 1.2. Requirements Language . . . . . . . . . . . . . . . . . . 5 | 1.2. Requirements Language . . . . . . . . . . . . . . . . . . 5 | |||
| 2. BGP Peering Models . . . . . . . . . . . . . . . . . . . . . 5 | 2. BGP Peering Models . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.1. BGP Single-Hop Peering on Network Node Connections . . . 5 | 2.1. BGP Single-Hop Peering on Network Node Connections . . . 5 | |||
| 2.2. BGP Peering Between Directly Connected Network Nodes . . 5 | 2.2. BGP Peering Between Directly Connected Network Nodes . . 5 | |||
| 2.3. BGP Peering in Route-Reflector or Controller Topology . . 6 | 2.3. BGP Peering in Route-Reflector or Controller Topology . . 6 | |||
| 3. BGP-LS Shortest Path Routing (SPF) SAFI . . . . . . . . . . . 6 | 3. BGP-LS Shortest Path Routing (SPF) SAFI . . . . . . . . . . . 6 | |||
| 4. Extensions to BGP-LS . . . . . . . . . . . . . . . . . . . . 6 | 4. Extensions to BGP-LS . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.1. Node NLRI Usage and Modifications . . . . . . . . . . . . 7 | 4.1. Node NLRI Usage and Modifications . . . . . . . . . . . . 7 | |||
| 4.2. Link NLRI Usage . . . . . . . . . . . . . . . . . . . . . 7 | 4.2. Link NLRI Usage . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.2.1. BGP-LS Link NLRI Attribute Prefix-Length TLVs . . . . 8 | ||||
| 4.3. Prefix NLRI Usage . . . . . . . . . . . . . . . . . . . . 8 | 4.3. Prefix NLRI Usage . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.4. BGP-LS Attribute Sequence-Number TLV . . . . . . . . . . 8 | 4.4. BGP-LS Attribute Sequence-Number TLV . . . . . . . . . . 8 | |||
| 5. Decision Process with SPF Algorithm . . . . . . . . . . . . . 9 | 5. Decision Process with SPF Algorithm . . . . . . . . . . . . . 9 | |||
| 5.1. Phase-1 BGP NLRI Selection . . . . . . . . . . . . . . . 10 | 5.1. Phase-1 BGP NLRI Selection . . . . . . . . . . . . . . . 10 | |||
| 5.2. Dual Stack Support . . . . . . . . . . . . . . . . . . . 10 | 5.2. Dual Stack Support . . . . . . . . . . . . . . . . . . . 11 | |||
| 5.3. NEXT_HOP Manipulation . . . . . . . . . . . . . . . . . . 11 | 5.3. SPF Calculation based on BGP-LS NLRI . . . . . . . . . . 11 | |||
| 5.4. IPv4/IPv6 Unicast Address Family Interaction . . . . . . 11 | 5.4. NEXT_HOP Manipulation . . . . . . . . . . . . . . . . . . 13 | |||
| 5.5. NLRI Advertisement and Convergence . . . . . . . . . . . 11 | 5.5. IPv4/IPv6 Unicast Address Family Interaction . . . . . . 14 | |||
| 5.6. Error Handling . . . . . . . . . . . . . . . . . . . . . 12 | 5.6. NLRI Advertisement and Convergence . . . . . . . . . . . 14 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 5.7. Error Handling . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 7.1. Acknowledgements . . . . . . . . . . . . . . . . . . . . 12 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
| 7.2. Contributors . . . . . . . . . . . . . . . . . . . . . . 12 | 7.1. Acknowledgements . . . . . . . . . . . . . . . . . . . . 15 | |||
| 7.2. Contributors . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 13 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 16 | |||
| 8.2. Information References . . . . . . . . . . . . . . . . . 14 | 8.2. Information References . . . . . . . . . . . . . . . . . 16 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 1. Introduction | 1. Introduction | |||
| Many Massively Scaled Data Centers (MSDCs) have converged on | Many Massively Scaled Data Centers (MSDCs) have converged on | |||
| simplified layer 3 routing. Furthermore, requirements for | simplified layer 3 routing. Furthermore, requirements for | |||
| operational simplicity have lead many of these MSDCs to converge on | operational simplicity have lead many of these MSDCs to converge on | |||
| BGP [RFC4271] as their single routing protocol for both their fabric | BGP [RFC4271] as their single routing protocol for both their fabric | |||
| routing and their Data Center Interconnect (DCI) routing. | routing and their Data Center Interconnect (DCI) routing. | |||
| Requirements and procedures for using BGP are described in [RFC7938]. | Requirements and procedures for using BGP are described in [RFC7938]. | |||
| This document describes an alternative solution which leverages BGP- | This document describes an alternative solution which leverages BGP- | |||
| skipping to change at page 6, line 45 ¶ | skipping to change at page 6, line 49 ¶ | |||
| BGP-LS NLRI that describes links, nodes, and prefixes comprising IGP | BGP-LS NLRI that describes links, nodes, and prefixes comprising IGP | |||
| link-state information and the definition of a BGP path attribute | link-state information and the definition of a BGP path attribute | |||
| (BGP-LS attribute) that carries link, node, and prefix properties and | (BGP-LS attribute) that carries link, node, and prefix properties and | |||
| attributes, such as the link and prefix metric or auxiliary Router- | attributes, such as the link and prefix metric or auxiliary Router- | |||
| IDs of nodes, etc. | IDs of nodes, etc. | |||
| The BGP protocol will be used in the Protocol-ID field specified in | The BGP protocol will be used in the Protocol-ID field specified in | |||
| table 1 of [I-D.ietf-idr-bgpls-segment-routing-epe]. The local and | table 1 of [I-D.ietf-idr-bgpls-segment-routing-epe]. The local and | |||
| remote node descriptors for all NLRI will be the BGP Router-ID (TLV | remote node descriptors for all NLRI will be the BGP Router-ID (TLV | |||
| 516) and either the AS Number (TLV 512) [RFC7752] or the BGP | 516) and either the AS Number (TLV 512) [RFC7752] or the BGP | |||
| Confederation Member (TLV 517) | Confederation Member (TLV 517) [RFC8402]. However, if the BGP | |||
| [I-D.ietf-idr-bgpls-segment-routing-epe]. However, if the BGP | ||||
| Router-ID is known to be unique within the BGP Routing domain, it can | Router-ID is known to be unique within the BGP Routing domain, it can | |||
| be used as the sole descriptor. | be used as the sole descriptor. | |||
| 4.1. Node NLRI Usage and Modifications | 4.1. Node NLRI Usage and Modifications | |||
| The SPF capability is a new Node Attribute TLV that will be added to | The SPF capability is a new Node Attribute TLV that will be added to | |||
| those defined in table 7 of [RFC7752]. The new attribute TLV will | those defined in table 7 of [RFC7752]. The new attribute TLV will | |||
| only be applicable when BGP is specified in the Node NLRI Protocol ID | only be applicable when BGP is specified in the Node NLRI Protocol ID | |||
| field. The TBD TLV type will be defined by IANA. The new Node | field. The TBD TLV type will be defined by IANA. The new Node | |||
| Attribute TLV will contain a single-octet SPF algorithm as defined in | Attribute TLV will contain a single-octet SPF algorithm as defined in | |||
| [I-D.ietf-ospf-segment-routing-extensions]. | [RFC8402]. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SPF Algorithm | | | SPF Algorithm | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| The SPF Algorithm may take the following values: | The SPF Algorithm may take the following values: | |||
| skipping to change at page 7, line 36 ¶ | skipping to change at page 7, line 36 ¶ | |||
| computed by the IGP protocol. Consistent with the deployed | computed by the IGP protocol. Consistent with the deployed | |||
| practice for link-state protocols, Algorithm 0 permits any | practice for link-state protocols, Algorithm 0 permits any | |||
| node to overwrite the SPF path with a different path based on | node to overwrite the SPF path with a different path based on | |||
| its local policy. | its local policy. | |||
| 1 - Strict Shortest Path First (SPF) algorithm based on link | 1 - Strict Shortest Path First (SPF) algorithm based on link | |||
| metric. The algorithm is identical to Algorithm 0 but Algorithm | metric. The algorithm is identical to Algorithm 0 but Algorithm | |||
| 1 requires that all nodes along the path will honor the SPF | 1 requires that all nodes along the path will honor the SPF | |||
| routing decision. Local policy at the node claiming support for | routing decision. Local policy at the node claiming support for | |||
| Algorithm 1 MUST NOT alter the SPF paths computed by Algorithm 1. | Algorithm 1 MUST NOT alter the SPF paths computed by Algorithm 1. | |||
| Note that usage of Strict Shortest Path First (SPF) algorithm is | ||||
| defined in the IGP algorithm registry but usage is restricted to | ||||
| [I-D.ietf-idr-bgpls-segment-routing-epe]. Hence, its usage for BGP- | ||||
| LS SPF is out of scope. | ||||
| When computing the SPF for a given BGP routing domain, only BGP nodes | When computing the SPF for a given BGP routing domain, only BGP nodes | |||
| advertising the SPF capability attribute will be included the | advertising the SPF capability attribute will be included the | |||
| Shortest Path Tree (SPT). | Shortest Path Tree (SPT). | |||
| 4.2. Link NLRI Usage | 4.2. Link NLRI Usage | |||
| The criteria for advertisement of Link NLRI are discussed in | The criteria for advertisement of Link NLRI are discussed in | |||
| Section 2. | Section 2. | |||
| Link NLRI is advertised with local and remote node descriptors as | Link NLRI is advertised with local and remote node descriptors as | |||
| skipping to change at page 8, line 13 ¶ | skipping to change at page 8, line 17 ¶ | |||
| 258) will be used. For links supporting having both IPv4 and IPv6 | 258) will be used. For links supporting having both IPv4 and IPv6 | |||
| addresses, both sets of descriptors may be included in the same Link | addresses, both sets of descriptors may be included in the same Link | |||
| NLRI. The link identifiers are described in table 5 of [RFC7752]. | NLRI. The link identifiers are described in table 5 of [RFC7752]. | |||
| The link IGP metric attribute TLV (TLV 1095) as well as any others | The link IGP metric attribute TLV (TLV 1095) as well as any others | |||
| required for non-SPF purposes SHOULD be advertised. Algorithms such | required for non-SPF purposes SHOULD be advertised. Algorithms such | |||
| as setting the metric inversely to the link speed as done in the OSPF | as setting the metric inversely to the link speed as done in the OSPF | |||
| MIB [RFC4750] MAY be supported. However, this is beyond the scope of | MIB [RFC4750] MAY be supported. However, this is beyond the scope of | |||
| this document. | this document. | |||
| 4.2.1. BGP-LS Link NLRI Attribute Prefix-Length TLVs | ||||
| Two BGP-LS Attribute TLVs to BGP-LS Link NLRI are defined to | ||||
| advertise the prefix length associated with the IPv4 and IPv6 link | ||||
| prefixes. The prefix length is used for the optional installation of | ||||
| prefixes corresponding to Link NLRI as defined in Section 5.3. | ||||
| 0 1 2 3 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | TBD IPv4 or IPv6 Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Prefix-Length | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| Prefix-length - A one-octet length restricted to 1-32 for IPv4 | ||||
| Link NLIR endpoint prefixes and 1-128 for IPv6 | ||||
| Link NLRI endpoint prefixes. | ||||
| 4.3. Prefix NLRI Usage | 4.3. Prefix NLRI Usage | |||
| Prefix NLRI is advertised with a local node descriptor as described | Prefix NLRI is advertised with a local node descriptor as described | |||
| above and the prefix and length used as the descriptors (TLV 265) as | above and the prefix and length used as the descriptors (TLV 265) as | |||
| described in [RFC7752]. The prefix metric attribute TLV (TLV 1155) | described in [RFC7752]. The prefix metric attribute TLV (TLV 1155) | |||
| as well as any others required for non-SPF purposes SHOULD be | as well as any others required for non-SPF purposes SHOULD be | |||
| advertised. For loopback prefixes, the metric should be 0. For non- | advertised. For loopback prefixes, the metric should be 0. For non- | |||
| loopback prefixes, the setting of the metric is a local matter and | loopback prefixes, the setting of the metric is a local matter and | |||
| beyond the scope of this document. | beyond the scope of this document. | |||
| skipping to change at page 11, line 5 ¶ | skipping to change at page 11, line 25 ¶ | |||
| The SPF-based decision process operates on Node, Link, and Prefix | The SPF-based decision process operates on Node, Link, and Prefix | |||
| NLRIs that support both IPv4 and IPv6 addresses. Whether to run a | NLRIs that support both IPv4 and IPv6 addresses. Whether to run a | |||
| single SPF instance or multiple SPF instances for separate AFs is a | single SPF instance or multiple SPF instances for separate AFs is a | |||
| matter of a local implementation. Normally, IPv4 next-hops are | matter of a local implementation. Normally, IPv4 next-hops are | |||
| calculated for IPv4 prefixes and IPv6 next-hops are calculated for | calculated for IPv4 prefixes and IPv6 next-hops are calculated for | |||
| IPv6 prefixes. However, an interesting use-case is deployment of | IPv6 prefixes. However, an interesting use-case is deployment of | |||
| [RFC5549] where IPv6 next-hops are calculated for both IPv4 and IPv6 | [RFC5549] where IPv6 next-hops are calculated for both IPv4 and IPv6 | |||
| prefixes. As stated in Section 1, support for Multiple Topology | prefixes. As stated in Section 1, support for Multiple Topology | |||
| Routing (MTR) is an area for future study. | Routing (MTR) is an area for future study. | |||
| 5.3. NEXT_HOP Manipulation | 5.3. SPF Calculation based on BGP-LS NLRI | |||
| This section details the BGP-LS SPF local routing information base | ||||
| (RIB) calculation. The router will use BGP-LS Node, Link, and Prefix | ||||
| NLRI to populate the local RIB using the following algorithm. This | ||||
| calculation yields the set of intra-area routes associated with the | ||||
| BGP-LS domain. A router calculates the shortest-path tree using | ||||
| itself as the root. Variations and optimizations of the algorithm | ||||
| are valid as long as it yields the same set of routes. The algorithm | ||||
| below supports Equal Cost Multi-Path (ECMP) routes. Weighted Unequal | ||||
| Cost Multi-Path are out of scope. The organization of this section | ||||
| owes heavily to section 16 of [RFC2328]. | ||||
| The following abstract data structures are defined in order to | ||||
| specify the algorithm. | ||||
| o Local Route Information Base (RIB) - This is abstract contains | ||||
| reachability information (i.e., next hops) for all prefixes (both | ||||
| IPv4 and IPv6) as well as the Node NLRI reachability. | ||||
| Implementations may choose to implement this as separate RIBs for | ||||
| each address family and/or Node NLRI. | ||||
| o Link State NLRI Database (LSNDB) - Database of BGP-LS NLRI that | ||||
| facilitates access to all Node, Link, and Prefix NLRI as well as | ||||
| all the Link and Prefix NLRI corresponding to a given Node NLRI. | ||||
| Other optimization, such as, resolving bi-directional connectivity | ||||
| associations between Link NLRI are possible but of scope of this | ||||
| document. | ||||
| o Candidate List - This is a list of candidate Node NLRI with the | ||||
| lowest cost Node NLRI at the front of the list. It is typically | ||||
| implemented as a heap but other concrete data structures have also | ||||
| been used. | ||||
| The algorithm is comprised of the steps below: | ||||
| 1. The current local RIB is invalidated. The local RIB is built | ||||
| again from scratch. The existing routing entries are preserved | ||||
| for comparision to determine changes that need to be installed in | ||||
| the global RIB. | ||||
| 2. The computing router's Node NLRI is installed in the local RIB | ||||
| with a cost of 0 and as as the sole entry in the candidate list. | ||||
| 3. The Node NLRI with the lowest cost is removed from the candidate | ||||
| list for processing. The Node corresponding to this NLRI will be | ||||
| referred to as the Current Node. If the candidate list is empty, | ||||
| the SPF calculation has completed and the algorithm proceeds to | ||||
| step 6. | ||||
| 4. All the Prefix NLRI with the same Node Identifiers as the Current | ||||
| Node will be considered for installation. The cost for each | ||||
| prefix is the metric advertised in the Prefix NLRI added to the | ||||
| cost to reach the Current Node. | ||||
| * If the prefix is not in the local RIB, the prefix is installed | ||||
| and will inherit the Current Node's next hops. | ||||
| * If the prefix is in the local RIB and the cost is greater than | ||||
| the Current route's metric, the Prefix NLRI does not | ||||
| contribute to the route and is ignored. | ||||
| * If the prefix is in the local RIB and the cost is less than | ||||
| the current route's metric, the Prefix is installed with the | ||||
| Current Node's next-hops replacing the local RIB route's next- | ||||
| hops and the metric being updated. | ||||
| * If the prefix is in the local RIB and the cost is same as the | ||||
| current route's metric, the Prefix is installed with the | ||||
| Current Node's next-hops being merged with local RIB route's | ||||
| next-hops. | ||||
| 5. All the Link NLRI with the same Node Identifiers as the Current | ||||
| Node will be considered for installation. Each link will be | ||||
| examined and will be referred to in the following text as the | ||||
| Current Link. The cost of the Current Link is the advertised | ||||
| metric in the Link NLRI added to the cost to reach the Current | ||||
| Node. | ||||
| * Optionally, the prefix(es) associated with the Current Link | ||||
| are installed into the local RIB using the same rules as were | ||||
| used for Prefix NLRI in the previous steps. | ||||
| * The Current Link's endpoint Node NLRI is accessed (i.e., the | ||||
| Node NLRI with the same Node identifiers as the Link | ||||
| endpoint). If it exists, it will be referred to as the | ||||
| Endpoint Node NLRI and the algorithm will proceed as follows: | ||||
| + All the Link NLRI corresponding the Endpoint Node NLRI will | ||||
| be searched for a back-link NLRI pointing to the current | ||||
| node. Both the Node identifiers and the Link endpoint | ||||
| identifiers in the Endpoint Node's Link NLRI must match for | ||||
| a match. If there is no corresponding Link NLRI | ||||
| corresponding to the Endpoint Node NLRI, the Endpoint Node | ||||
| NLIR fails the bi-directional connectivity test and is not | ||||
| processed further. | ||||
| + If the Endpoint Node NLRI is not on the candidate list, it | ||||
| is inserted based on the link cost and BGP Identifier (the | ||||
| latter being used as a tie-breaker). | ||||
| + If the Endpoint Node NLRI is already on the candidate list | ||||
| with a lower cost, it need not be inserted again. | ||||
| + If the Endpoint Node NLRI is already on the candidate list | ||||
| with a higher cost, it must be removed and reinserted with | ||||
| a lower cost. | ||||
| * Return to step 3 to process the next lowest cost Node NLRI on | ||||
| the candidate list. | ||||
| 6. The local RIB is examined and changes (adds, deletes, | ||||
| modifications) are installed into the global RIB. | ||||
| 5.4. NEXT_HOP Manipulation | ||||
| A BGP speaker that supports SPF extensions MAY interact with peers | A BGP speaker that supports SPF extensions MAY interact with peers | |||
| that don't support SPF extensions. If the BGP-LS address family is | that don't support SPF extensions. If the BGP-LS address family is | |||
| advertised to a peer not supporting the SPF extensions described | advertised to a peer not supporting the SPF extensions described | |||
| herein, then the BGP speaker MUST conform to the NEXT_HOP rules | herein, then the BGP speaker MUST conform to the NEXT_HOP rules | |||
| specified in [RFC4271] when announcing the Link-State address family | specified in [RFC4271] when announcing the Link-State address family | |||
| routes to those peers. | routes to those peers. | |||
| All BGP peers that support SPF extensions would locally compute the | All BGP peers that support SPF extensions would locally compute the | |||
| Loc-RIB next-hops as a result of the SPF process. Consequently, the | Loc-RIB next-hops as a result of the SPF process. Consequently, the | |||
| NEXT_HOP attribute is always ignored on receipt. However, BGP | NEXT_HOP attribute is always ignored on receipt. However, BGP | |||
| speakers SHOULD set the NEXT_HOP address according to the NEXT_HOP | speakers SHOULD set the NEXT_HOP address according to the NEXT_HOP | |||
| attribute rules specified in [RFC4271]. | attribute rules specified in [RFC4271]. | |||
| 5.4. IPv4/IPv6 Unicast Address Family Interaction | 5.5. IPv4/IPv6 Unicast Address Family Interaction | |||
| While the BGP-LS SPF address family and the IPv4/IPv6 unicast address | While the BGP-LS SPF address family and the IPv4/IPv6 unicast address | |||
| families install routes into the same device routing tables, they | families install routes into the same device routing tables, they | |||
| will operate independently much the same as OSPF and IS-IS would | will operate independently much the same as OSPF and IS-IS would | |||
| operate today (i.e., "Ships-in-the-Night" mode). There will be no | operate today (i.e., "Ships-in-the-Night" mode). There will be no | |||
| implicit route redistribution between the BGP address families. | implicit route redistribution between the BGP address families. | |||
| However, implementation specific redistribution mechanisms SHOULD be | However, implementation specific redistribution mechanisms SHOULD be | |||
| made available with the restriction that redistribution of BGP-LS SPF | made available with the restriction that redistribution of BGP-LS SPF | |||
| routes into the IPv4 address family applies only to IPv4 routes and | routes into the IPv4 address family applies only to IPv4 routes and | |||
| redistribution of BGP-LS SPF route into the IPv6 address family | redistribution of BGP-LS SPF route into the IPv6 address family | |||
| applies only to IPv6 routes. | applies only to IPv6 routes. | |||
| Given the fact that SPF algorithms are based on the assumption that | Given the fact that SPF algorithms are based on the assumption that | |||
| all routers in the routing domain calculate the precisely the same | all routers in the routing domain calculate the precisely the same | |||
| SPF tree and install the same set of routers, it is RECOMMENDED that | SPF tree and install the same set of routes, it is RECOMMENDED that | |||
| BGP-LS SPF IPv4/IPv6 routes be given priority by default when | BGP-LS SPF IPv4/IPv6 routes be given priority by default when | |||
| installed into their respective RIBs. In common implementations the | installed into their respective RIBs. In common implementations the | |||
| prioritization is governed by route preference or administrative | prioritization is governed by route preference or administrative | |||
| distance with lower being more preferred. | distance with lower being more preferred. | |||
| 5.5. NLRI Advertisement and Convergence | 5.6. NLRI Advertisement and Convergence | |||
| A local failure will prevent a link from being used in the SPF | A local failure will prevent a link from being used in the SPF | |||
| calculation due to the IGP bi-directional connectivity requirement. | calculation due to the IGP bi-directional connectivity requirement. | |||
| Consequently, local link failures should always be given priority | Consequently, local link failures should always be given priority | |||
| over updates (e.g., withdrawing all routes learned on a session) in | over updates (e.g., withdrawing all routes learned on a session) in | |||
| order to ensure the highest priority propagation and optimal | order to ensure the highest priority propagation and optimal | |||
| convergence. | convergence. | |||
| Delaying the withdrawal of non-local routes is an area for further | Delaying the withdrawal of non-local routes is an area for further | |||
| study as more IGP-like mechanisms would be required to prevent usage | study as more IGP-like mechanisms would be required to prevent usage | |||
| of stale NLRI. | of stale NLRI. | |||
| 5.6. Error Handling | 5.7. Error Handling | |||
| When a BGP speaker receives a BGP Update containing a malformed SPF | When a BGP speaker receives a BGP Update containing a malformed SPF | |||
| Capability TLV in the Node NLRI BGP-LS Attribute [RFC7752], it MUST | Capability TLV in the Node NLRI BGP-LS Attribute [RFC7752], it MUST | |||
| ignore the received TLV and the Node NLRI and not pass it to other | ignore the received TLV and the Node NLRI and not pass it to other | |||
| BGP peers as specified in [RFC7606]. When discarding a Node NLRI | BGP peers as specified in [RFC7606]. When discarding a Node NLRI | |||
| with malformed TLV, a BGP speaker SHOULD log an error for further | with malformed TLV, a BGP speaker SHOULD log an error for further | |||
| analysis. | analysis. | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| This document defines an AFI/SAFI for BGP-LS SPF operation and | This document defines an AFI/SAFI for BGP-LS SPF operation and | |||
| requests IANA to assign the BGP-LS/BGP-LS-SPF (AFI 16388 / SAFI TBD1) | requests IANA to assign the BGP-LS/BGP-LS-SPF (AFI 16388 / SAFI TBD1) | |||
| as described in [RFC4750]. | as described in [RFC4750]. | |||
| This document also defines two attribute TLV for BGP LS NLRI. We | This document also defines four attribute TLVs for BGP LS NLRI. We | |||
| request IANA to assign TLVs for the SPF capability and the Sequence | request IANA to assign TLVs for the SPF capability, Sequence Number, | |||
| Number from the "BGP-LS Node Descriptor, Link Descriptor, Prefix | IPv4 Link Prefix-Length, and IPv6 Link Prefix-Length from the "BGP-LS | |||
| Descriptor, and Attribute TLVs" Registry. | Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute | |||
| TLVs" Registry. | ||||
| 7. Security Considerations | 7. Security Considerations | |||
| This extension to BGP does not change the underlying security issues | This extension to BGP does not change the underlying security issues | |||
| inherent in the existing [RFC4724] and [RFC4271]. | inherent in the existing [RFC4724] and [RFC4271]. | |||
| 7.1. Acknowledgements | 7.1. Acknowledgements | |||
| The authors would like to thank Sue Hares, Jorge Rabadan, and Boris | The authors would like to thank Sue Hares, Jorge Rabadan, Boris | |||
| Hassanov for the review and comments. | Hassanov, and Fred Baker for their review and comments. | |||
| 7.2. Contributors | 7.2. Contributors | |||
| In addition to the authors listed on the front page, the following | In addition to the authors listed on the front page, the following | |||
| co-authors have contributed to the document. | co-authors have contributed to the document. | |||
| Derek Yeung | Derek Yeung | |||
| Arrcus, Inc. | Arrcus, Inc. | |||
| derek@arrcus.com | derek@arrcus.com | |||
| skipping to change at page 13, line 22 ¶ | skipping to change at page 16, line 4 ¶ | |||
| Abhay Roy | Abhay Roy | |||
| Cisco Systems | Cisco Systems | |||
| akr@cisco.com | akr@cisco.com | |||
| Venu Venugopal | Venu Venugopal | |||
| Cisco Systems | Cisco Systems | |||
| venuv@cisco.com | venuv@cisco.com | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [I-D.ietf-idr-bgpls-segment-routing-epe] | [I-D.ietf-idr-bgpls-segment-routing-epe] | |||
| Previdi, S., Filsfils, C., Patel, K., Ray, S., and J. | Previdi, S., Filsfils, C., Patel, K., Ray, S., and J. | |||
| Dong, "BGP-LS extensions for Segment Routing BGP Egress | Dong, "BGP-LS extensions for Segment Routing BGP Egress | |||
| Peer Engineering", draft-ietf-idr-bgpls-segment-routing- | Peer Engineering", draft-ietf-idr-bgpls-segment-routing- | |||
| epe-14 (work in progress), December 2017. | epe-14 (work in progress), December 2017. | |||
| [I-D.ietf-ospf-segment-routing-extensions] | ||||
| Psenak, P., Previdi, S., Filsfils, C., Gredler, H., | ||||
| Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | ||||
| Extensions for Segment Routing", draft-ietf-ospf-segment- | ||||
| routing-extensions-25 (work in progress), April 2018. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
| editor.org/info/rfc2119>. | editor.org/info/rfc2119>. | |||
| [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
| Border Gateway Protocol 4 (BGP-4)", RFC 4271, | Border Gateway Protocol 4 (BGP-4)", RFC 4271, | |||
| DOI 10.17487/RFC4271, January 2006, <https://www.rfc- | DOI 10.17487/RFC4271, January 2006, <https://www.rfc- | |||
| editor.org/info/rfc4271>. | editor.org/info/rfc4271>. | |||
| skipping to change at page 14, line 20 ¶ | skipping to change at page 16, line 42 ¶ | |||
| [RFC7938] Lapukhov, P., Premji, A., and J. Mitchell, Ed., "Use of | [RFC7938] Lapukhov, P., Premji, A., and J. Mitchell, Ed., "Use of | |||
| BGP for Routing in Large-Scale Data Centers", RFC 7938, | BGP for Routing in Large-Scale Data Centers", RFC 7938, | |||
| DOI 10.17487/RFC7938, August 2016, <https://www.rfc- | DOI 10.17487/RFC7938, August 2016, <https://www.rfc- | |||
| editor.org/info/rfc7938>. | editor.org/info/rfc7938>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | ||||
| Decraene, B., Litkowski, S., and R. Shakir, "Segment | ||||
| Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | ||||
| July 2018, <https://www.rfc-editor.org/info/rfc8402>. | ||||
| 8.2. Information References | 8.2. Information References | |||
| [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | |||
| DOI 10.17487/RFC2328, April 1998, <https://www.rfc- | DOI 10.17487/RFC2328, April 1998, <https://www.rfc- | |||
| editor.org/info/rfc2328>. | editor.org/info/rfc2328>. | |||
| [RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route | [RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route | |||
| Reflection: An Alternative to Full Mesh Internal BGP | Reflection: An Alternative to Full Mesh Internal BGP | |||
| (IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006, | (IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006, | |||
| <https://www.rfc-editor.org/info/rfc4456>. | <https://www.rfc-editor.org/info/rfc4456>. | |||
| End of changes. 20 change blocks. | ||||
| 39 lines changed or deleted | 176 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/ | ||||