| < draft-ietf-rtgwg-mrt-frr-architecture-02.txt | draft-ietf-rtgwg-mrt-frr-architecture-03.txt > | |||
|---|---|---|---|---|
| Routing Area Working Group A. Atlas, Ed. | Routing Area Working Group A. Atlas, Ed. | |||
| Internet-Draft R. Kebler | Internet-Draft R. Kebler | |||
| Intended status: Standards Track Juniper Networks | Intended status: Standards Track Juniper Networks | |||
| Expires: August 28, 2013 G. Enyedi | Expires: January 13, 2014 G. Enyedi | |||
| A. Csaszar | A. Csaszar | |||
| J. Tantsura | J. Tantsura | |||
| Ericsson | Ericsson | |||
| M. Konstantynowicz | M. Konstantynowicz | |||
| Cisco Systems | Cisco Systems | |||
| R. White | R. White | |||
| Verisign | VCE | |||
| M. Shand | July 12, 2013 | |||
| February 24, 2013 | ||||
| An Architecture for IP/LDP Fast-Reroute Using Maximally Redundant Trees | An Architecture for IP/LDP Fast-Reroute Using Maximally Redundant Trees | |||
| draft-ietf-rtgwg-mrt-frr-architecture-02 | draft-ietf-rtgwg-mrt-frr-architecture-03 | |||
| Abstract | Abstract | |||
| As IP and LDP Fast-Reroute are increasingly deployed, the coverage | With increasing deployment of Loop-Free Alternates (LFA) [RFC5286], | |||
| limitations of Loop-Free Alternates are seen as a problem that | it is clear that a complete solution for IP and LDP Fast-Reroute is | |||
| requires a straightforward and consistent solution for IP and LDP, | required. This specification provides that solution. IP/LDP Fast- | |||
| for unicast and multicast. This draft describes an architecture | Reroute with Maximally Redundant Trees (MRT-FRR) is a technology that | |||
| based on redundant backup trees where a single failure can cut a | gives link-protection and node-protection with 100% coverage in any | |||
| point-of-local-repair from the destination only on one of the pair of | network topology that is still connected after the failure. | |||
| redundant trees. | ||||
| One innovative algorithm to compute such topologies is maximally | ||||
| disjoint backup trees. Each router can compute its next-hops for | ||||
| each pair of maximally disjoint trees rooted at each node in the IGP | ||||
| area with computational complexity similar to that required by | ||||
| Dijkstra. | ||||
| The additional state, address and computation requirements are | MRT removes all need to engineer for coverage. MRT is also extremely | |||
| believed to be significantly less than the Not-Via architecture | computationally efficient. For any router in the network, the MRT | |||
| requires. | computation is less than the LFA computation for a node with three or | |||
| more neighbors. | ||||
| Status of this Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 28, 2013. | This Internet-Draft will expire on January 13, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Goals for Extending IP Fast-Reroute coverage beyond LFA . 4 | 1.1. Importance of 100% Coverage . . . . . . . . . . . . . . . 4 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.2. Partial Deployment and Backwards Compatibility . . . . . 5 | |||
| 3. Maximally Redundant Trees (MRT) . . . . . . . . . . . . . . . 6 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4. Maximally Redundant Trees (MRT) and Fast-Reroute . . . . . . . 8 | 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5. Unicast Forwarding with MRT Fast-Reroute . . . . . . . . . . . 9 | 4. Maximally Redundant Trees (MRT) . . . . . . . . . . . . . . . 7 | |||
| 5.1. LDP Unicast Forwarding - Avoid Tunneling . . . . . . . . . 10 | 5. Maximally Redundant Trees (MRT) and Fast-Reroute . . . . . . 9 | |||
| 5.2. IP Unicast Traffic . . . . . . . . . . . . . . . . . . . . 10 | 6. Unicast Forwarding with MRT Fast-Reroute . . . . . . . . . . 10 | |||
| 6. Protocol Extensions and Considerations: OSPF and ISIS . . . . 12 | 6.1. LDP Unicast Forwarding - Avoid Tunneling . . . . . . . . 10 | |||
| 7. Protocol Extensions and considerations: LDP . . . . . . . . . 14 | 6.2. IP Unicast Traffic . . . . . . . . . . . . . . . . . . . 11 | |||
| 8. Multi-homed Prefixes . . . . . . . . . . . . . . . . . . . . . 15 | 7. Protocol Extensions and Considerations: OSPF and ISIS . . . . 12 | |||
| 9. Inter-Area and ABR Forwarding Behavior . . . . . . . . . . . . 16 | 8. Protocol Extensions and considerations: LDP . . . . . . . . . 14 | |||
| 10. Issues with Area Abstraction . . . . . . . . . . . . . . . . . 19 | 9. Inter-Area and ABR Forwarding Behavior . . . . . . . . . . . 15 | |||
| 11. Partial Deployment and Islands of Compatible MRT FRR | 10. Prefixes Multiply Attached to the MRT Island . . . . . . . . 18 | |||
| routers . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 10.1. Endpoint Selection . . . . . . . . . . . . . . . . . . . 19 | |||
| 12. Network Convergence and Preparing for the Next Failure . . . . 22 | 10.2. Named Proxy-Nodes . . . . . . . . . . . . . . . . . . . 21 | |||
| 12.1. Micro-forwarding loop prevention and MRTs . . . . . . . . 22 | 10.2.1. Computing if an Island Neighbor (IN) is loop-free . 22 | |||
| 12.2. MRT Recalculation . . . . . . . . . . . . . . . . . . . . 23 | 10.3. MRT Alternates for Destinations Outside the MRT Island . 23 | |||
| 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 23 | 11. Network Convergence and Preparing for the Next Failure . . . 24 | |||
| 14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | 11.1. Micro-forwarding loop prevention and MRTs . . . . . . . 24 | |||
| 15. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | 11.2. MRT Recalculation . . . . . . . . . . . . . . . . . . . 24 | |||
| 16. References . . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 16.1. Normative References . . . . . . . . . . . . . . . . . . . 24 | 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 16.2. Informative References . . . . . . . . . . . . . . . . . . 24 | 14. Security Considerations . . . . . . . . . . . . . . . . . . . 25 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 25 | 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 15.1. Normative References . . . . . . . . . . . . . . . . . . 25 | ||||
| 15.2. Informative References . . . . . . . . . . . . . . . . . 26 | ||||
| Appendix A. General Issues with Area Abstraction . . . . . . . . 27 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | ||||
| 1. Introduction | 1. Introduction | |||
| There is still work required to completely provide IP and LDP Fast- | This document gives a complete solution for IP/LDP fast-reroute | |||
| Reroute[RFC5714] for unicast and multicast traffic. This draft | [RFC5714]. MRT-FRR creates two alternate trees separate from the | |||
| proposes an architecture to provide 100% coverage for unicast | primary next-hop forwarding used during stable operation. These two | |||
| traffic. The associated multicast architecture is described in | trees are maximally diverse from each other, providing link and node | |||
| [I-D.atlas-rtgwg-mrt-mc-arch]. | protection for 100% of paths and failures as long as the failure does | |||
| not cut the network into multiple pieces. This document defines the | ||||
| Loop-free alternates (LFAs)[RFC5286] provide a useful mechanism for | architecture for IP/LDP fast-reroute with MRT. The associated | |||
| link and node protection but getting complete coverage is quite hard. | protocol extensions are defined in [I-D.atlas-ospf-mrt] and | |||
| [LFARevisited] defines sufficient conditions to determine if a | [I-D.atlas-mpls-ldp-mrt]. The exact MRT algorithm is defined in | |||
| network provides link-protecting LFAs and also proves that augmenting | [I-D.enyedi-rtgwg-mrt-frr-algorithm]. | |||
| a network to provide better coverage is NP-hard. | ||||
| [I-D.ietf-rtgwg-lfa-applicability] discusses the applicability of LFA | ||||
| to different topologies with a focus on common PoP architectures. | ||||
| While Not-Via [I-D.ietf-rtgwg-ipfrr-notvia-addresses] is defined as | IP/LDP Fast-Reroute with MRT (MRT-FRR) uses two maximally diverse | |||
| an architecture, in practice, it has proved too complicated and | forwarding topologies to provide alternates. A primary next-hop | |||
| stateful to spark substantial interest in implementation or | should be on only one of the diverse forwarding topologies; thus, the | |||
| deployment. Academic implementations [LightweightNotVia] exist and | other can be used to provide an alternate. Once traffic has been | |||
| have found the address management complexity high (but no | moved to one of MRTs, it is not subject to further repair actions. | |||
| standardization has been done to reduce this). | Thus, the traffic will not loop even if a worse failure (e.g. node) | |||
| occurs when protection was only available for a simpler failure (e.g. | ||||
| link). | ||||
| A different approach is needed and that is what is described here. | In addition to supporting IP and LDP unicast fast-reroute, the | |||
| It is based on the idea of using disjoint backup topologies as | diverse forwarding topologies and guarantee of 100% coverage permit | |||
| realized by Maximally Redundant Trees (described in | fast-reroute technology to be applied to multicast traffic as | |||
| [LightweightNotVia]); the general architecture can also apply to | described in [I-D.atlas-rtgwg-mrt-mc-arch]. | |||
| future improved redundant tree algorithms. | ||||
| 1.1. Goals for Extending IP Fast-Reroute coverage beyond LFA | Other existing or proposed solutions are partial solutions or have | |||
| significant issues, as described below. | ||||
| Any scheme proposed for extending IPFRR network topology coverage | Summary Comparison of IP/LDP FRR Methods | |||
| beyond LFA, apart from attaining basic IPFRR properties, should also | ||||
| aim to achieve the following usability goals: | ||||
| o ensure maximum physically feasible link and node disjointness | +-----------+---------------+---------------+-----------------------+ | |||
| regardless of topology, | | Method | Coverage | Alternate | Computation (in SPFs) | | |||
| | | | Looping? | | | ||||
| +-----------+---------------+---------------+-----------------------+ | ||||
| | MRT-FRR | 100% | None | less than 3 | | ||||
| | | Link/Node | | | | ||||
| | | | | | | ||||
| | LFA | Partial | Possible | per neighbor | | ||||
| | | Link/Node | | | | ||||
| | | | | | | ||||
| | Remote | Partial | Possible | per neighbor (link) | | ||||
| | LFA | Link/Node | | or neighbor's | | ||||
| | | | | neighbor (node) | | ||||
| | | | | | | ||||
| | Not-Via | 100% | None | per link and node | | ||||
| | | Link/Node | | | | ||||
| +-----------+---------------+---------------+-----------------------+ | ||||
| o automatically compute backup next-hops based on the topology | Table 1 | |||
| information distributed by link-state IGP, | ||||
| o do not require any signaling in the case of failure and use pre- | Loop-Free Alternates (LFA): LFAs [RFC5286] provide limited | |||
| programmed backup next-hops for forwarding, | topology-dependent coverage for link and node protection. | |||
| Restrictions on choice of alternates can be relaxed to improve | ||||
| coverage, but this can cause forwarding loops if a worse failure | ||||
| is experienced than protected against. Augmenting a network to | ||||
| provide better coverage is NP-hard [LFARevisited]. [RFC6571] | ||||
| discusses the applicability of LFA to different topologies with a | ||||
| focus on common PoP architectures. | ||||
| o introduce minimal amount of additional addressing and state on | Remote LFA: Remote LFAs [I-D.ietf-rtgwg-remote-lfa] improve | |||
| routers, | coverage over LFAs for link protection but still cannot guarantee | |||
| complete coverage. The trade-off of looping traffic to improve | ||||
| coverage is still made. Remote LFAs can provide node-protection | ||||
| [I-D.litkowski-rtgwg-node-protect-remote-lfa] but not guaranteed | ||||
| coverage and the computation required is quite high (an SPF per | ||||
| neighbor's neighbor). [I-D.bryant-ipfrr-tunnels] describes | ||||
| additional mechanisms to further improve coverage, at the cost of | ||||
| added complexity. | ||||
| o enable gradual introduction of the new scheme and backward | Not-Via: Not-Via [I-D.ietf-rtgwg-ipfrr-notvia-addresses] is the | |||
| compatibility, | only other solution that provides 100% coverage for link and node | |||
| failures and does not have potential looping. However, the | ||||
| computation is very high (an SPF per failure point) and academic | ||||
| implementations [LightweightNotVia] have found the address | ||||
| management complexity to be high. | ||||
| o and do not impose requirements for external computation. | 1.1. Importance of 100% Coverage | |||
| Fast-reroute is based upon the single failure assumption - that the | ||||
| time between single failures is long enough for a network to | ||||
| reconverge and start forwarding on the new shortest paths. That does | ||||
| not imply that the network will only experience one failure or | ||||
| change. | ||||
| 2. Terminology | It is straightforward to analyze a particular network topology for | |||
| coverage. However, a real network does not always have the same | ||||
| topology. For instance, maintenance events will take links or nodes | ||||
| out of use. Simply costing out a link can have a significant effect | ||||
| on what LFAs are available. Similarly, after a single failure has | ||||
| happened, the topology is changed and its associated coverage. | ||||
| Finally, many networks have new routers or links added and removed; | ||||
| each of those changes can have an effect on the coverage for | ||||
| topology-sensitive methods such as LFA and Remote LFA. If fast- | ||||
| reroute is important for the network services provided, then a method | ||||
| that guarantees 100% coverage is important to accomodate natural | ||||
| network topology changes. | ||||
| 2-connected: A graph that has no cut-vertices. This is a graph | Asymmetric link costs are also a common aspect of networks. There | |||
| that requires two nodes to be removed before the network is | are at least three common causes for them. First, any broadcast | |||
| partitioned. | interface is represented by a pseudo-node and has asymmetric link | |||
| costs to and from that pseudo-node. Second, when routers come up or | ||||
| a link with LDP comes up, it is recommended in [RFC5443] and | ||||
| [RFC3137] that the link metric be raised to the maximum cost; this | ||||
| may not be symmetric and for [RFC3137] is not expected to be. Third, | ||||
| techniques such as IGP metric tuning for traffic-engineering can | ||||
| result in asymmetric link costs. A fast-reroute solution needs to | ||||
| handle network topologies with asymmetric link costs. | ||||
| 2-connected cluster: A maximal set of nodes that are 2-connected. | When a network needs to use a micro-loop prevention mechanism | |||
| [RFC5715] such as Ordered FIB[I-D.ietf-rtgwg-ordered-fib] or Farside | ||||
| Tunneling[RFC5715], then the whole IGP area needs to have alternates | ||||
| available so that the micro-loop prevention mechanism, which requires | ||||
| slower network convergence, can take the necessary time without | ||||
| impacting traffic badly. Without complete coverage, traffic to the | ||||
| unprotected destinations will be dropped for significantly longer | ||||
| than with current convergence - where routers individually converge | ||||
| as fast as possible. | ||||
| 2-edge-connected: A network graph where at least two links must be | 1.2. Partial Deployment and Backwards Compatibility | |||
| removed to partition the network. | ||||
| ADAG: Almost Directed Acyclic Graph - a graph that, if all links | MRT-FRR supports partial deployment. As with many new features, the | |||
| incoming to the root were removed, would be a DAG. | protocols (OSPF, LDP, ISIS) indicate their capability to support MRT. | |||
| Inside the MRT-capable connected group of routers (referred to as an | ||||
| MRT Island), the MRTs are computed. Alternates to destinations | ||||
| outside the MRT Island are computed and depend upon the existence of | ||||
| a loop-free neighbor of the MRT Island for that destination. | ||||
| block: Either a 2-connected cluster, a cut-edge, or an isolated | 2. Requirements Language | |||
| vertex. | ||||
| cut-link: A link whose removal partitions the network. A cut-link | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| by definition must be connected between two cut-vertices. If | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| there are multiple parallel links, then they are referred to as | document are to be interpreted as described in [RFC2119] | |||
| cut-links in this document if removing the set of parallel links | ||||
| would partition the network. | ||||
| cut-vertex: A vertex whose removal partitions the network. | 3. Terminology | |||
| DAG: Directed Acyclic Graph - a graph where all links are directed | network graph: A graph that reflects the network topology where all | |||
| and there are no cycles in it. | links connect exactly two nodes and broadcast links have been | |||
| transformed into the standard pseudo-node representation. | ||||
| GADAG: Generalized ADAG - a graph that is the combination of the | Redundant Trees (RT): A pair of trees where the path from any node | |||
| ADAGs of all blocks. | X to the root R along the first tree is node-disjoint with the | |||
| path from the same node X to the root along the second tree. | ||||
| These can be computed in 2-connected graphs. | ||||
| Maximally Redundant Trees (MRT): A pair of trees where the path | Maximally Redundant Trees (MRT): A pair of trees where the path | |||
| from any node X to the root R along the first tree and the path | from any node X to the root R along the first tree and the path | |||
| from the same node X to the root along the second tree share the | from the same node X to the root along the second tree share the | |||
| minimum number of nodes and the minimum number of links. Each | minimum number of nodes and the minimum number of links. Each | |||
| such shared node is a cut-vertex. Any shared links are cut-links. | such shared node is a cut-vertex. Any shared links are cut-links. | |||
| Any RT is an MRT but many MRTs are not RTs. | Any RT is an MRT but many MRTs are not RTs. | |||
| network graph: A graph that reflects the network topology where all | MRT-Red: MRT-Red is used to describe one of the two MRTs; it is | |||
| links connect exactly two nodes and broadcast links have been | used to described the associated forwarding topology and MT-ID. | |||
| transformed into the standard pseudo-node representation. | Specifically, MRT-Red is the decreasing MRT where links in the | |||
| GADAG are taken in the direction from a higher topologically | ||||
| ordered node to a lower one. | ||||
| Redundant Trees (RT): A pair of trees where the path from any node | MRT-Blue: MRT-Blue is used to describe one of the two MRTs; it is | |||
| X to the root R along the first tree is node-disjoint with the | used to described the associated forwarding topology and MT-ID. | |||
| path from the same node X to the root along the second tree. | Specifically, MRT-Blue is the increasing MRT where links in the | |||
| These can be computed in 2-connected graphs. | GADAG are taken in the direction from a lower topologically | |||
| ordered node to a higher one. | ||||
| 3. Maximally Redundant Trees (MRT) | Rainbow MRT: It is useful to have an MT-ID that refers to the | |||
| multiple MRT topologies and to the default topology. This is | ||||
| referred to as the Rainbow MRT MT-ID and is used by LDP to reduce | ||||
| signaling and permit the same label to always be advertised to all | ||||
| peers for the same (MT-ID, Prefix). | ||||
| In the last few years, there's been substantial research on how to | MRT Island: From the computing router, the set of routers that | |||
| compute and use redundant trees. Redundant trees are directed | support a particular MRT profile and are connected. | |||
| spanning trees that provide disjoint paths towards their common root. | ||||
| These redundant trees only exist and provide link protection if the | ||||
| network is 2-edge-connected and node protection if the network is | ||||
| 2-connected. Such connectiveness may not be the case in real | ||||
| networks, either due to architecture or due to a previous failure. | ||||
| The work on maximally redundant trees has added two useful pieces | ||||
| that make them ready for use in a real network. | ||||
| o Computable regardless of network topology: The maximally redundant | Island Border Router (IBR): A router in the MRT Island that is | |||
| trees are computed so that only the cut-edges or cut-vertices are | connected to a router not in the MRT Island and both routers are | |||
| shared between the multiple trees. | in a common area or level. | |||
| o Computationally practical algorithm is based on a common network | Island Neighbor (IN): A router that is not in the MRT Island but is | |||
| topology database. Algorithm variants can compute in O( e) or O(e | adjacent to an IBR and in the same area/level as the IBR. | |||
| + n log n), as given in [I-D.enyedi-rtgwg-mrt-frr-algorithm]. | ||||
| There is, of course, significantly more in the literature related to | cut-link: A link whose removal partitions the network. A cut-link | |||
| redundant trees and even fast-reroute, but the formulation of the | by definition must be connected between two cut-vertices. If | |||
| Maximally Redundant Trees (MRT) algorithm makes it very well suited | there are multiple parallel links, then they are referred to as | |||
| to use in routers. | cut-links in this document if removing the set of parallel links | |||
| would partition the network graph. | ||||
| A known disadvantage of MRT, and redundant trees in general, is that | cut-vertex: A vertex whose removal partitions the network graph. | |||
| the trees do not necessarily provide shortest detour paths. The use | ||||
| of the shortest-path-first algorithm in tree-building and including | ||||
| all links in the network as possibilities for one path or another | ||||
| should improve this. Modeling is underway to investigate and compare | ||||
| the MRT alternates to the optimal | ||||
| [I-D.enyedi-rtgwg-mrt-frr-algorithm]. Providing shortest detour | ||||
| paths would require failure-specific detour paths to the | ||||
| destinations, but the state-reduction advantage of MRT lies in the | ||||
| detour being established per destination (root) instead of per | ||||
| destination AND per failure. | ||||
| The specific algorithms to compute MRTs as well as the logic behind | 2-connected: A graph that has no cut-vertices. This is a graph | |||
| that algorithm and alternative computational approaches are given in | that requires two nodes to be removed before the network is | |||
| detail in [I-D.enyedi-rtgwg-mrt-frr-algorithm]. Those interested are | partitioned. | |||
| highly recommended to read that document. This document describes | ||||
| how the MRTs can be used and not how to compute them. | 2-connected cluster: A maximal set of nodes that are 2-connected. | |||
| 2-edge-connected: A network graph where at least two links must be | ||||
| removed to partition the network. | ||||
| block: Either a 2-connected cluster, a cut-edge, or an isolated | ||||
| vertex. | ||||
| DAG: Directed Acyclic Graph - a graph where all links are directed | ||||
| and there are no cycles in it. | ||||
| ADAG: Almost Directed Acyclic Graph - a graph that, if all links | ||||
| incoming to the root were removed, would be a DAG. | ||||
| GADAG: Generalized ADAG - a graph that is the combination of the | ||||
| ADAGs of all blocks. | ||||
| named proxy-node: A proxy-node can represent a destination prefix | ||||
| that can be attached to the MRT Island via at least two routers. | ||||
| It is named if there is a way that traffic can be encapsulated to | ||||
| reach specifically that proxy node; this could be because there is | ||||
| an LDP FEC for the associated prefix or because MRT-Red and MRT- | ||||
| Blue IP addresses are advertised in an undefined fashion for that | ||||
| proxy-node. | ||||
| 4. Maximally Redundant Trees (MRT) | ||||
| A pair of Maximally Redundant Trees are directed spanning trees that | ||||
| provide maximally disjoint paths towards their common root. Only | ||||
| links or nodes whose failure would partition the network (i.e. cut- | ||||
| links and cut-vertices) are shared between the trees. The algorithm | ||||
| to compute MRTs is given in [I-D.enyedi-rtgwg-mrt-frr-algorithm]. | ||||
| This algorithm can be computed in O(e + n log n); it is less than | ||||
| three SPFs. Modeling results comparing MRT alternates to the optimal | ||||
| are described in [I-D.enyedi-rtgwg-mrt-frr-algorithm]. This document | ||||
| describes how the MRTs can be used and not how to compute them. | ||||
| MRT provides destination-based trees for each destination. Each | ||||
| router stores its normal primary next-hop(s) as well as MRT-Blue | ||||
| next-hop(s) and MRT-Red next-hop(s) toward each destination. The | ||||
| alternate will be selected between the MRT-Blue and MRT-Red. | ||||
| The most important thing to understand about MRTs is that for each | The most important thing to understand about MRTs is that for each | |||
| pair of destination-routed MRTs, there is a path from every node X to | pair of destination-routed MRTs, there is a path from every node X to | |||
| the destination D on the Blue MRT that is as disjoint as possible | the destination D on the Blue MRT that is as disjoint as possible | |||
| from the path on the Red MRT. The two paths along the two MRTs to a | from the path on the Red MRT. | |||
| given destination-root of a 2-connected graph are node-disjoint and | ||||
| link-disjoint, while in any non-2-connected graph, only the cut- | ||||
| vertices and cut-edges can be contained by both of the paths. | ||||
| For example, in Figure 1, there is a network graph that is | For example, in Figure 1, there is a network graph that is | |||
| 2-connected in (a) and associated MRTs in (b) and (c). One can | 2-connected in (a) and associated MRTs in (b) and (c). One can | |||
| consider the paths from B to R; on the Blue MRT, the paths are | consider the paths from B to R; on the Blue MRT, the paths are | |||
| B->F->D->E->R or B->C->D->E->R. On the Red MRT, the path is B->A->R. | B->F->D->E->R or B->C->D->E->R. On the Red MRT, the path is B->A->R. | |||
| These are clearly link and node-disjoint. These MRTs are redundant | These are clearly link and node-disjoint. These MRTs are redundant | |||
| trees because the paths are disjoint. | trees because the paths are disjoint. | |||
| [E]---[D]---| [E]<--[D]<--| [E]-->[D]---| | [E]---[D]---| [E]<--[D]<--| [E]-->[D]---| | |||
| | | | | ^ | | | | | | | | ^ | | | | |||
| | | | V | | V V | | | | V | | V V | |||
| [R] [F] [C] [R] [F] [C] [R] [F] [C] | [R] [F] [C] [R] [F] [C] [R] [F] [C] | |||
| | | | ^ ^ ^ | | | | | | ^ ^ ^ | | | |||
| | | | | | | V | | | | | | | | V | | |||
| [A]---[B]---| [A]-->[B]---| [A]---[B]<--| | [A]---[B]---| [A]-->[B]---| [A]<--[B]<--| | |||
| (a) (b) (c) | (a) (b) (c) | |||
| a 2-connected graph Blue MRT towards R Red MRT towards R | a 2-connected graph Blue MRT towards R Red MRT towards R | |||
| Figure 1: A 2-connected Network | Figure 1: A 2-connected Network | |||
| By contrast, in Figure 2, the network in (a) is not 2-connected. If | By contrast, in Figure 2, the network in (a) is not 2-connected. If | |||
| F, G or the link F<->G failed, then the network would be partitioned. | F, G or the link F<->G failed, then the network would be partitioned. | |||
| It is clearly impossible to have two link-disjoint or node-disjoint | It is clearly impossible to have two link-disjoint or node-disjoint | |||
| paths from G, I or J to R. The MRTs given in (b) and (c) offer paths | paths from G, I or J to R. The MRTs given in (b) and (c) offer paths | |||
| that are as disjoint as possible. For instance, the paths from B to | that are as disjoint as possible. For instance, the paths from B to | |||
| R are the same as in Figure 1 and the path from G to R on the Blue | R are the same as in Figure 1 and the path from G to R on the Blue | |||
| MRT is G->F->D->E->R and on the Red MRT is G->F->B->A->R. | MRT is G->F->D->E->R and on the Red MRT is G->F->B->A->R. | |||
| [E]---[D]---| | [E]---[D]---| | |||
| | | | |----[I] | | | | |----[I] | |||
| | | | | | | | | | | | | |||
| [R]---[C] [F]---[G] | | [R]---[C] [F]---[G] | | |||
| | | | | | | | | | | | | |||
| | | | |----[J] | | | | |----[J] | |||
| [A]---[B]---| | [A]---[B]---| | |||
| (a) | (a) | |||
| a non-2-connected graph | a non-2-connected graph | |||
| [E]<--[D]<--| [E]-->[D]---| | [E]<--[D]<--| [E]-->[D] | |||
| | ^ | [I] | | [I] | | ^ | [I] | |----[I] | |||
| V | | ^ V V | | V | | | V V ^ | |||
| [R]<--[C] [F]<--[G] | [R]---[C] [F]<--[G] | | [R] [C] [F]<--[G] | [R]<--[C] [F]<--[G] | | |||
| ^ ^ | | ^ | | ^ V | ^ ^ ^ V ^ | | | |||
| | | |--->[J] | V | |----[J] | | | |----[J] | | [J] | |||
| [A]-->[B]---| [A]<--[B]<--| | [A]-->[B]---| [A]<--[B]<--| | |||
| (b) (c) | (b) (c) | |||
| Blue MRT towards R Red MRT towards R | Blue MRT towards R Red MRT towards R | |||
| Figure 2: A non-2-connected network | Figure 2: A non-2-connected network | |||
| 4. Maximally Redundant Trees (MRT) and Fast-Reroute | 5. Maximally Redundant Trees (MRT) and Fast-Reroute | |||
| In normal IGP routing, each router has its shortest-path-tree to all | In normal IGP routing, each router has its shortest-path-tree to all | |||
| destinations. From the perspective of a particular destination, D, | destinations. From the perspective of a particular destination, D, | |||
| this looks like a reverse SPT (rSPT). To use maximally redundant | this looks like a reverse SPT (rSPT). To use maximally redundant | |||
| trees, in addition, each destination D has two MRTs associated with | trees, in addition, each destination D has two MRTs associated with | |||
| it; by convention these will be called the blue and red MRTs. | it; by convention these will be called the MRT-Blue and MRT-Red. | |||
| MRT-FRR is realized by using multi-topology forwarding. There is a | ||||
| MRT-Blue forwarding topology and a MRT-Red forwarding topology. | ||||
| Any IP/LDP fast-reroute technique beyond LFA requires an additional | Any IP/LDP fast-reroute technique beyond LFA requires an additional | |||
| dataplane procedure, such as an additional forwarding mechanism. The | dataplane procedure, such as an additional forwarding mechanism. The | |||
| well-known options are tunneling (e.g. | well-known options are multi-topology forwarding (used by MRT-FRR), | |||
| [I-D.ietf-rtgwg-ipfrr-notvia-addresses] or | tunneling (e.g. [I-D.ietf-rtgwg-ipfrr-notvia-addresses] or | |||
| [I-D.ietf-rtgwg-remote-lfa]), per-interface forwarding (e.g. Loop- | [I-D.ietf-rtgwg-remote-lfa]), and per-interface forwarding (e.g. | |||
| Free Failure Insensitive Routing in [EnyediThesis]), and multi- | Loop-Free Failure Insensitive Routing in [EnyediThesis]). | |||
| topology forwarding. MRT is realized by using multi-topology | ||||
| forwarding. There is a Blue MRT forwarding topology and a Red MRT | ||||
| forwarding topology. | ||||
| MRTs are practical to maintain redundancy even after a single link or | ||||
| node failure. If a pair of MRTs is computed rooted at each | ||||
| destination, all the destinations remain reachable along one of the | ||||
| MRTs in the case of a single link or node failure. | ||||
| When there is a link or node failure affecting the rSPT, each node | When there is a link or node failure affecting, but not partitioning, | |||
| will still have at least one path via one of the MRTs to reach the | the network, each node will still have at least one path via one of | |||
| destination D. For example, in Figure 2, C would normally forward | the MRTs to reach the destination D. For example, in Figure 2, C | |||
| traffic to R across the C<->R link. If that C<->R link fails, then C | would normally forward traffic to R across the C<->R link. If that | |||
| could use either the Blue MRT path C->D->E->R or the Red MRT path | C<->R link fails, then C could use the Blue MRT path C->D->E->R. | |||
| C->B->A->R. | ||||
| As is always the case with fast-reroute technologies, forwarding does | As is always the case with fast-reroute technologies, forwarding does | |||
| not change until a local failure is detected. Packets are forwarded | not change until a local failure is detected. Packets are forwarded | |||
| along the shortest path. The appropriate alternate to use is pre- | along the shortest path. The appropriate alternate to use is pre- | |||
| computed. [I-D.enyedi-rtgwg-mrt-frr-algorithm] describes exactly how | computed. [I-D.enyedi-rtgwg-mrt-frr-algorithm] describes exactly how | |||
| to determine whether the Blue MRT next-hops or the Red MRT next-hops | to determine whether the MRT-Blue next-hops or the MRT-Red next-hops | |||
| should be the MRT alternate next-hops for a particular primary next- | should be the MRT alternate next-hops for a particular primary next- | |||
| hop N to a particular destination D. | hop N to a particular destination D. | |||
| MRT alternates are always available to use, unless the network has | MRT alternates are always available to use. It is a local decision | |||
| been partitioned. It is a local decision whether to use an MRT | whether to use an MRT alternate, a Loop-Free Alternate or some other | |||
| alternate, a Loop-Free Alternate or some other type of alternate. | type of alternate. | |||
| When a network needs to use a micro-loop prevention mechanism | ||||
| [RFC5715] such as Ordered FIB[I-D.ietf-rtgwg-ordered-fib] or Farside | ||||
| Tunneling[RFC5715], then the whole IGP area needs to have alternates | ||||
| available so that the micro-loop prevention mechanism, which requires | ||||
| slower network convergence, can take the necessary time without | ||||
| impacting traffic badly. | ||||
| As described in [RFC5286], when a worse failure than is anticipated | As described in [RFC5286], when a worse failure than is anticipated | |||
| happens, using LFAs that are not downstream neighbors can cause | happens, using LFAs that are not downstream neighbors can cause | |||
| micro-looping. An example is given of link-protecting alternates | micro-looping. Section 1.1 of [RFC5286] gives an example of link- | |||
| causing a loop on node failure. Even if a worse failure than | protecting alternates causing a loop on node failure. Even if a | |||
| anticipated happened, the use of MRT alternates will not cause | worse failure than anticipated happens, the use of MRT alternates | |||
| looping. Therefore, while node-protecting LFAs may be prefered, an | will not cause looping. Therefore, while node-protecting LFAs may be | |||
| the certainty that no alternate-induced looping will occur is an | preferred, the certainty that no alternate-induced looping will occur | |||
| advantage of using MRT alternates when the available node-protecting | is an advantage of using MRT alternates when the available node- | |||
| LFA is not a downstream path. | protecting LFA is not a downstream path. | |||
| 5. Unicast Forwarding with MRT Fast-Reroute | 6. Unicast Forwarding with MRT Fast-Reroute | |||
| With LFA, there is no need to tunnel unicast traffic, whether IP or | With LFA, there is no need to tunnel unicast traffic, whether IP or | |||
| LDP. The traffic is simply sent to an alternate. As mentioned | LDP. The traffic is simply sent to an alternate. As mentioned | |||
| earlier in Section 4, MRT needs multi-topology forwarding. | earlier in Section 5, MRT needs multi-topology forwarding. | |||
| Unfortunately, neither IP nor LDP provide extra bits for a packet to | Unfortunately, neither IP nor LDP provides extra bits for a packet to | |||
| indicate its topology. | indicate its topology. | |||
| Once the MRTs are computed, the two sets of MRTs are seen by the | Once the MRTs are computed, the two sets of MRTs are seen by the | |||
| forwarding plane as essentially two additional topologies. The same | forwarding plane as essentially two additional topologies. The same | |||
| considerations apply for forwarding along the MRTs as for handling | considerations apply for forwarding along the MRTs as for handling | |||
| multiple topologies. | multiple topologies. | |||
| 5.1. LDP Unicast Forwarding - Avoid Tunneling | 6.1. LDP Unicast Forwarding - Avoid Tunneling | |||
| For LDP, it is very desirable to avoid tunneling because, for at | For LDP, it is very desirable to avoid tunneling because, for at | |||
| least node protection, tunneling requires knowledge of remote LDP | least node protection, tunneling requires knowledge of remote LDP | |||
| label mappings and thus requires targeted LDP sessions and the | label mappings and thus requires targeted LDP sessions and the | |||
| associated management complexity. There are two different mechanisms | associated management complexity. There are two different mechanisms | |||
| that can be used. | that can be used; Option A MUST be supported. | |||
| 1. Option A - Encode MT-ID in Labels: In addition to sending a | 1. Option A - Encode MT-ID in Labels: In addition to sending a | |||
| single label for a FEC, a router would provide two additional | single label for a FEC, a router would provide two additional | |||
| labels with the MT-IDs associated with the Blue MRT or Red MRT | labels with the MT-IDs associated with the Blue MRT or Red MRT | |||
| forwarding topologies. This is very simple for hardware support. | forwarding topologies. This is very simple for hardware support. | |||
| It does reduce the label space for other uses. It also increases | It does reduce the label space for other uses. It also increases | |||
| the memory to store the labels and the communication required by | the memory to store the labels and the communication required by | |||
| LDP. | LDP. | |||
| 2. Option B - Create Topology-Identification Labels: Use the label- | 2. Option B - Create Topology-Identification Labels: Use the label- | |||
| skipping to change at page 10, line 45 ¶ | skipping to change at page 11, line 26 ¶ | |||
| Note that with LDP unicast forwarding, regardless of whether | Note that with LDP unicast forwarding, regardless of whether | |||
| topology-identification label or encoding topology in label is used, | topology-identification label or encoding topology in label is used, | |||
| no additional loopbacks per router are required. This is because LDP | no additional loopbacks per router are required. This is because LDP | |||
| labels are used on a hop-by-hop basis to identify MRT-blue and MRT- | labels are used on a hop-by-hop basis to identify MRT-blue and MRT- | |||
| red forwading topologies. | red forwading topologies. | |||
| For greatest hardware compatibility, routers implementing MRT LDP | For greatest hardware compatibility, routers implementing MRT LDP | |||
| fast-reroute MUST support Option A of encoding the MT-ID in the | fast-reroute MUST support Option A of encoding the MT-ID in the | |||
| labels. The extensions to indicate an MT-ID for a FEC are described | labels. The extensions to indicate an MT-ID for a FEC are described | |||
| in Section 3.2.1 of [I-D.ietf-mpls-ldp-multi-topology] | in Section 3.2.1 of [I-D.ietf-mpls-ldp-multi-topology]. | |||
| 5.2. IP Unicast Traffic | 6.2. IP Unicast Traffic | |||
| For IP, there is no currently practical alternative except tunneling. | For IP, there is no currently practical alternative except tunneling | |||
| The tunnel egress could be the original destination in the area, the | to gain the bits needed to indicate the MRT-Blue or MRT-Red | |||
| next-next-hop, etc.. If the tunnel egress is the original | forwarding topology. The choice of tunnel egress MAY be flexible | |||
| destination router, then the traffic remains on the redundant tree | since any router closer to the destination than the next-hop can | |||
| with sub-optimal routing. If the tunnel egress is the next-next-hop, | work. This architecture assumes that the original destination in the | |||
| then protection of multi-homed prefixes and node-failure for ABRs is | area is selected (see Section 10 for handling of multi-homed | |||
| not available. Selection of the tunnel egress is a router-local | prefixes); another possible choice is the next-next-hop towards the | |||
| decision. | destination. For LDP traffic, using the original destination | |||
| simplifies MRT-FRR by avoiding the need for targeted LDP sessions to | ||||
| the next-next-hop. For IP, that consideration doesn't apply but | ||||
| consistency with LDP is RECOMMENDED. If the tunnel egress is the | ||||
| original destination router, then the traffic remains on the | ||||
| redundant tree with sub-optimal routing. Selection of the tunnel | ||||
| egress is a router-local decision. | ||||
| There are three options available for marking IP packets with which | There are three options available for marking IP packets with which | |||
| MRT it should be forwarded in. | MRT it should be forwarded in. For greatest hardware compatibility | |||
| and ease in removing the MRT-topology marking at area/level | ||||
| boundaries, routers that support MPLS and implement IP MRT fast- | ||||
| reroute MUST support Option A - using an LDP label that indicates the | ||||
| destination and MT-ID. | ||||
| 1. Tunnel IP packets via an LDP LSP. This has the advantage that | 1. Tunnel IP packets via an LDP LSP. This has the advantage that | |||
| more installed routers can do line-rate encapsulation and | more installed routers can do line-rate encapsulation and | |||
| decapsulation. Also, no additional IP addresses would need to be | decapsulation. Also, no additional IP addresses would need to be | |||
| allocated or signaled. | allocated or signaled. | |||
| A. Option A - LDP Destination-Topology Label: Use a label that | a. Option A - LDP Destination-Topology Label: Use a label that | |||
| indicates both destination and MRT. This method allows easy | indicates both destination and MRT. This method allows easy | |||
| tunneling to the next-next-hop as well as to the IGP-area | tunneling to the next-next-hop as well as to the IGP-area | |||
| destination. For a proxy-node, the destination to use is the | destination. For a proxy-node, the destination to use is the | |||
| non-proxy-node immediately before the proxy-node on that | non-proxy-node immediately before the proxy-node on that | |||
| particular color MRT. | particular color MRT. | |||
| B. Option B - LDP Topology Label: Use a Topology-Identifier | b. Option B - LDP Topology Label: Use a Topology-Identifier | |||
| label on top of the IP packet. This is very simple. If | label on top of the IP packet. This is very simple. If | |||
| tunneling to a next-next-hop is desired, then a two-deep | tunneling to a next-next-hop is desired, then a two-deep | |||
| label stack can be used with [ Topology-ID label, Next-Next- | label stack can be used with [ Topology-ID label, Next-Next- | |||
| Hop Label ]. | Hop Label ]. | |||
| 2. Tunnel IP packets in IP. Each router supporting this option | 2. Tunnel IP packets in IP. Each router supporting this option | |||
| would announce two additional loopback addresses and their | would announce two additional loopback addresses and their | |||
| associated MRT color. Those addresses are used as destination | associated MRT color. Those addresses are used as destination | |||
| addresses for MRT-blue and MRT-red IP tunnels respectively. They | addresses for MRT-blue and MRT-red IP tunnels respectively. They | |||
| allow the transit nodes to identify the traffic as being | allow the transit nodes to identify the traffic as being | |||
| forwarded along either MRT-blue or MRT-red tree topology to reach | forwarded along either MRT-blue or MRT-red tree topology to reach | |||
| the tunnel destination. Announcements of these two additional | the tunnel destination. Announcements of these two additional | |||
| loopback addresses per router with their MRT color requires IGP | loopback addresses per router with their MRT color requires IGP | |||
| extensions. | extensions. | |||
| For greatest hardware compatibility and ease in removing the MRT- | 7. Protocol Extensions and Considerations: OSPF and ISIS | |||
| topology marking at area/level boundaries, routers that support MPLS | ||||
| and implement IP MRT fast-reroute SHOULD support Option A - using an | ||||
| LDP label that indicates the destination and MT-ID. | ||||
| For proxy-nodes associated with one or more multi-homed prefixes, | ||||
| there is no router associated with the proxy-node, so its loopbacks | ||||
| can't be known or used. Instead, the loopback addresses of the | ||||
| routers that are attached to the proxy-node can be used. One of | ||||
| those routers will be on the Red MRT and the other on the Blue MRT. | ||||
| The MRT-red loopback of the first router would be used to reach the | ||||
| router on the Red MRT and similarly the MRT-blue loopback of the | ||||
| second router would be used. The routers connected to the proxy-node | ||||
| are the end of the area/level and can decapsulate the traffic and | ||||
| properly forward it into the next area. | ||||
| 6. Protocol Extensions and Considerations: OSPF and ISIS | For simplicity, the approach of defining a well-known profile is | |||
| taken in [I-D.atlas-ospf-mrt]. The purpose of communicating support | ||||
| for MRT in the IGP is to indicate thatqq the MRT-Blue and MRT-Red | ||||
| forwarding topologies are created for transit traffic. This section | ||||
| describes the various options to be selected. The default MRT | ||||
| profile is described here and the signaling extensions for OSPF are | ||||
| given in [I-D.atlas-ospf-mrt]. | ||||
| There are two possible approaches to what additional information to | For any MRT profile, the MRT Island is created by starting from the | |||
| distribute in the IGP. The first is to allow full flexibility in all | computing router. If the computing router supports the default MRT | |||
| information and distribute whichever values and combinations are | profile, add it to the MRT Island. Add a router to the MRT Island if | |||
| desired. The second is to simply distribute flags indicating a | the router supports the default MRT profile and is connected to the | |||
| particular well-known profile is supported. Thus the MRT Island | MRT Island via bidirectional links eligible for MRT. | |||
| Creation process is trivial. The profile approach is recommended, | ||||
| with the added flexibility of being able to specify more specific | ||||
| information if necessary and supported. | ||||
| For example, a simple profile "metric-insensitive MRT unicast fast- | If a router advertises support for multiple MRT profiles, then it | |||
| reroute via LDP" could specify: | MUST create the transit forwarding topologies for each of those, | |||
| unless the profile specifies No Forwarding Mechanism (e.g. as might | ||||
| be done for a profile used only for multicast global protection). A | ||||
| router MUST NOT advertise multiple MRT profiles that overlap in their | ||||
| MRT-Red MT-ID or MRT-Blue MT-ID. | ||||
| MRT Island Creation: Only include other routers advertising this | The MRT Profile also defines different behaviors such as how MRT | |||
| profile. | recomputation is handled and how area/level boundaries are dealt | |||
| with. | ||||
| MRT Algorithm ID: The MRT Lowpoint algorithm defined in | MRT Algorithm: MRT Lowpoint algorithm defined in | |||
| [I-D.enyedi-rtgwg-mrt-frr-algorithm]. | [I-D.enyedi-rtgwg-mrt-frr-algorithm]. | |||
| Red MRT MT-ID: The Red MRT MT-ID is the single well-known value | MRT-Red MT-ID: experimental 3997, final value assigned by IANA | |||
| allocated by IANA from the OSPF, ISIS, LDP and PIM MT-ID spaces. | allocated from the LDP MT-ID space | |||
| Blue MRT MT-ID: The Blue MRT MT-ID is the single well-known value | MRT-Blue MT-ID: experimental 3998, final value assigned by IANA | |||
| allocated by IANA from the OSPF, ISIS, LDP and PIM MT-ID spaces. | allocated from the LDP MT-ID space | |||
| GADAG Root Election Priority: Pick the router with the lowest | GADAG Root Selection Priority: Among the routers in the MRT Island | |||
| router ID to be the GADAG root. | and with the highest priority advertised, an implementation MUST | |||
| pick the router with the highest Router ID to be the GADAG root. | ||||
| Forwarding Mechanisms for IP: Use IP-in-LDP. | Forwarding Mechanisms: LDP | |||
| MRT Capabilities: Computes MRTs, IP Fast-Reroute, LDP Fast-Reroute | Recalculation: Recalculation of MRTs SHOULD occur as described in | |||
| Section 11.2. This allows the MRT forwarding topologies to | ||||
| support IP/LDP fast-reroute traffic. | ||||
| The following captures an initial understanding of the aspects that | Area/Level Border Behavior: As described in Section 9, ABRs/LBRs | |||
| must be considered to fully form a profile to advertise. For some | SHOULD ensure that traffic leaving the area also exits the MRT-Red | |||
| profiles, associated information may need to be distributed, such as | or MRT-Blue forwarding topology. | |||
| GADAG Root Election Priority, Red MRT Loopback Address, Blue MRT | ||||
| Loopback Address, or MRT Algorithm ID. | ||||
| MRT Island Creation ID: This identifies the process that the router | The following describes the aspects to be considered to define a | |||
| uses to form an MRT Island. By advertising an ID for the process, | profile to advertise. For some profiles, associated information may | |||
| it is possible to have different processes in the future. It may | need to be distributed, such as GADAG Root Selection Priority, Red | |||
| be desirable to advertise a list ordered by preference to allow | MRT Loopback Address, Blue MRT Loopback Address. | |||
| transitions. | ||||
| MRT Algorithm ID: This identifies the particular MRT algorithm used | MRT Algorithm: This identifies the particular MRT algorithm used by | |||
| by the router. By having an Algorithm ID, it is possible to | the router for this profile. Algorithm transitions can be managed | |||
| change the algorithm used or use different ones in different | by advertising multiple MRT profiles. | |||
| networks. It may be desirable to advertise a list ordered by | ||||
| preference to allow transitions. | ||||
| Red MRT MT-ID: This specifies the MT-ID to be associated with the | MRT-Red MT-ID: This specifies the MT-ID to be associated with the | |||
| Red MRT forwarding topology. It is needed for use in signaling. | MRT-Red forwarding topology. It is needed for use in LDP | |||
| All routers in the MRT Island MUST agree on a value. | signaling. All routers in the MRT Island MUST agree on a value. | |||
| Blue MRT MT-ID: This specifies the MT-ID to be associated with the | MRT-Blue MT-ID: This specifies the MT-ID to be associated with the | |||
| Blue MRT forwarding topology. It is needed for use in signaling. | MRT-Blue forwarding topology. It is needed for use in LDP | |||
| All routers in the MRT Island MUST agree on a value. | signaling. All routers in the MRT Island MUST agree on a value. | |||
| GADAG Root Election Priority: This specifies the priority of the | GADAG Root Selection Priority: A MRT profile might specify this to | |||
| router for being used as the GADAG root of its island. A GADAG | provide the network operator with a knob to force a particular | |||
| root is elected from the set of routers with the highest priority; | GADAG root selection. If not specified in the MRT profile, the | |||
| ties are broken based upon highest Router ID. The sensitivity of | highest Router ID in the profile's MRT Island will be elected the | |||
| the MRT Algorithms to GADAG root selection is still being | GADAG Root. If a GADAG Root Selection Priority is specified, then | |||
| evaluated. This provides the network operator with a knob to | the MRT profile must also specify how the GADAG Root is elected. | |||
| force particular GADAG root selection. | ||||
| Forwarding Mechanism for IP: This specifies which forwarding | Forwarding Mechanism: This specifies which forwarding mechanisms | |||
| mechanisms the router supports for IP traffic. An MRT island must | the router supports for transit traffic. An MRT island must | |||
| support a common set of forwarding mechanisms, which may be less | program appropriate next-hops into the forwarding plane. The | |||
| than the full set advertised. Multiple forwarding mechanisms may | known options are IPv4, IPv6, LDP, and None. If IPv4 is | |||
| be specified, such as IP-in-IPv4, IP-in-IPv6 or IP-in-LDP Label. | supported, then both MRT-Red and MRT-Blue IPv4 Loopback Addresses | |||
| None is also an option. | SHOULD be specified. If IPv6 is supported, both MRT-Red and MRT- | |||
| Blue IPv6 Loopback Addresses SHOULD be specified. If LDP is | ||||
| supported, then LDP support and signaling extensions MUST be | ||||
| supported. | ||||
| Red MRT Loopback Address: This provides the router's loopback | MRT-Red Loopback Address: This provides the router's loopback | |||
| address to reach the router via the Red MRT forwarding topology. | address to reach the router via the MRT-Red forwarding topology. | |||
| It can, of course, be specified for both IPv4 and IPv6. | It can, of course, be specified for both IPv4 and IPv6. | |||
| Blue MRT Loopback Address: This provides the router's loopback | MRT-Blue Loopback Address: This provides the router's loopback | |||
| address to reach the router via the Blue MRT forwarding topology. | address to reach the router via the MRT-Blue forwarding topology. | |||
| It can, of course, be specified for both IPv4 and IPv6. | It can, of course, be specified for both IPv4 and IPv6. | |||
| MRT Capabilities Available: This is the set of capabilities that | Recalculation: As part of what process and timing should the new | |||
| the router is configured to support. | MRTs be computed on a modified topology? Section 11.2 describes | |||
| the minimum behavior required to support fast-reroute. | ||||
| MRT Capabilities Required: This is the set of capabilities that | ||||
| other routers must have available to be added into the MRT island. | ||||
| MRT Capability: Computes MRTs: The router can compute MRTs. | ||||
| MRT Capability: IP Fast-Reroute: The router can use the computed | ||||
| MRTs for IP fast-reroute. | ||||
| MRT Capability: LDP Fast-Reroute: The router can use the computed | ||||
| MRTs for LDP fast-reroute. | ||||
| MRT Capability: PIM Fast-Reroute: The router can use the computed | ||||
| MRTs for PIM fast-reroute. | ||||
| MRT Capability: mLDP Fast-Reroute: The router can use the computed | ||||
| MRTs for mLDP fast-reroute. | ||||
| MRT Capability: PIM Global Protection: The router can use the | ||||
| computed MRTs for PIM Global Protection 1+1. | ||||
| MRT Capability: mLDP Global Protection: The router can use the | Area/Level Border Behavior: Should inter-area traffic on the MRT- | |||
| computed MRTs for mLDP Global Protection 1+1. | Blue or MRT-Red be put back onto the shortest path tree? Should | |||
| it be swapped from MRT-Blue or MRT-Red in one area/level to MRT- | ||||
| Red or MRT-Blue in the next area/level to avoid the potential | ||||
| failure of an ABR? (See [I-D.atlas-rtgwg-mrt-mc-arch] for use- | ||||
| case details. | ||||
| The assumption is that a router will form an MRT island, compute MRTs | Other Profile-Specific Behavior: Depending upon the use-case for | |||
| within that island, and then use those MRTs for the purposes | the profile, there may be additional profile-specific behavior. | |||
| specified in the profile. If multiple profiles are supported with | ||||
| different purposes (e.g. mLDP Global Protection), then the router may | ||||
| use a different profile and associated MRT island to be used for the | ||||
| purposes in that different profile. If a router wanted to form | ||||
| multiple MRT islands for different application purposes, that could | ||||
| be done by specifying different Red MRT MT-ID and Blue MRT MT-IDs. | ||||
| As with LFA, it is expected that OSPF Virtual Links will not be | As with LFA, it is expected that OSPF Virtual Links will not be | |||
| supported. | supported. | |||
| 7. Protocol Extensions and considerations: LDP | 8. Protocol Extensions and considerations: LDP | |||
| The protocol extensions for LDP are defined in | ||||
| Capability negotiation in LDP is needed to indicate support for MRT; | [I-D.atlas-mpls-ldp-mrt]. A router must indicate that it has the | |||
| having this explicit allows the use of MRT-specific signaling | ability to support MRT; having this explicit allows the use of MRT- | |||
| extensions. A router also needs to indicate, via FEC advertisement, | specific processing, such as special handling of FECs sent with the | |||
| whether it supports LDP Destination-Topology Labels, LDP Topology | Rainbow MRT MT-ID. | |||
| Labels, or both. Since the label or labels are swapped at each LSR, | ||||
| consistency across the network is not required. | ||||
| If both mechanisms are supported, then if a Destination-Topology | ||||
| label is provided for a FEC, that should be used so that an ABR/LBR | ||||
| can indicate the appropriate labels, as discussed in Section | ||||
| Section 9. | ||||
| 8. Multi-homed Prefixes | ||||
| One advantage of LFAs that is necessary to preserve is the ability to | ||||
| protect multi-homed prefixes against ABR failure. For instance, if a | ||||
| prefix from the backbone is available via both ABR A and ABR B, if A | ||||
| fails, then the traffic should be redirected to B. This can also be | ||||
| done for backups via MRT. | ||||
| This generalizes to any multi-homed prefix. A multi-homed prefix | ||||
| could be: | ||||
| o An out-of-area prefix announced by more than one ABR, | ||||
| o An AS-External route announced by 2 or more ASBRs, | ||||
| o A prefix with iBGP multipath to different ASBRs, | ||||
| o etc. | ||||
| For each prefix, the attached ABRs are selected and a proxy-node is | ||||
| created connected to those ABRs. If there exist multiple multi-homed | ||||
| prefixes that share the same connectivity and costs to each of those | ||||
| ABRs, then a single proxy-node can be used to represent the set. An | ||||
| example of this is shown in Figure 3. | ||||
| 2 2 2 2 | ||||
| A----B----C A----B----C | ||||
| 2 | | 2 2 | | 2 | ||||
| | | | | | ||||
| [ABR1] [ABR2] [ABR1] [ABR2] | ||||
| | | | | | ||||
| p,10 p,15 10 |---[P]---| 15 | ||||
| (a) Initial topology (b)with proxy-node | ||||
| A<---B<---C A--->B--->C | ||||
| | ^ ^ | | ||||
| V | | V | ||||
| [ABR1] [ABR2] [ABR1] [ABR2] | ||||
| | | | ||||
| |-->[P] [P]<--| | ||||
| (c) Blue MRT (d) Red MRT | ||||
| Figure 3: Prefixes Advertised by Multiple ABRs | ||||
| The proxy-nodes and associated links are added to the network | ||||
| topology after all real links have been assigned to a direction and | ||||
| before the actual MRTs are computed. Proxy-nodes cannot be transited | ||||
| when computing the MRTs. In addition to computing the pair of MRTs | ||||
| associated with each router destination D in the area, a pair of MRTs | ||||
| can be computed for each such proxy-node to fully protect against ABR | ||||
| failure. | ||||
| Each ABR or attaching router must remove the MRT marking[see | ||||
| Section 5] and then forward the traffic outside of the area (or | ||||
| island of MRT-fast-reroute-supporting routers). | ||||
| If ASBR protection is desired, this has additonal complexities if the | A FEC sent with the Rainbow MRT MT-ID indicates that the FEC applies | |||
| ASBRs are in different areas. Similarly, protecting labeled BGP | to all the MRT-Blue and MRT-Red MT-IDs in supported MRT profiles as | |||
| traffic in the event of an ASBR failure has additional complexities | well as to the default shortest-path based MT-ID 0. The Rainbow MRT | |||
| due to the per-ASBR label spaces involved. | MT-ID is defined to provide an easy way to handle the special | |||
| signaling that is needed at ABRs or LBRs. It avoids the problem of | ||||
| needing to signal different MPLS labels for the same FEC. Because | ||||
| the Rainbow MRT MT-ID is used only by ABRs/LBRs or the LDP egress, it | ||||
| is not MRT profile specific. The proposed experimental value is 3999 | ||||
| and the final value will be assigned by IANA and allocated from the | ||||
| LDP MT-ID space. The authoritative values are given in | ||||
| [I-D.atlas-mpls-ldp-mrt]. | ||||
| 9. Inter-Area and ABR Forwarding Behavior | 9. Inter-Area and ABR Forwarding Behavior | |||
| In regular forwarding, packets destined outside the area arrive at | An ABR/LBR has two forwarding roles. First, it forwards traffic | |||
| the ABR and the ABR forwards them into the other area because the | inside its area. Second, it forwards traffic from one area into | |||
| next-hops from the area with the best route (according to tie- | another. These same two roles apply for MRT transit traffic. | |||
| breaking rules) are used by the ABR. The question is then what to do | Traffic on MRT-Red or MRT-Blue destined inside the area needs to stay | |||
| with packets marked with an MRT that are received by the ABR. | on MRT-Red or MRT-Blue in that area. However, it is desirable for | |||
| traffic leaving the area to also exit MRT-Red or MRT-Blue back to the | ||||
| shortest-path forwarding. | ||||
| For unicast fast-reroute, the need to stay on an MRT forwarding | For unicast MRT-FRR, the need to stay on an MRT forwarding topology | |||
| topology terminates at the ABR/LBR whose best route is via a | terminates at the ABR/LBR whose best route is via a different area/ | |||
| different area/level. It is highly desirable to go back to the | level. It is highly desirable to go back to the default forwarding | |||
| default forwarding topology when leaving an area/level. There are | topology when leaving an area/level. There are three basic reasons | |||
| three basic reasons for this. First, the default topology uses | for this. First, the default topology uses shortest paths; the | |||
| shortest paths; the packet will thus take the shortest possible route | packet will thus take the shortest possible route to the destination. | |||
| to the destination. Second, this allows failures that might appear | Second, this allows failures that might appear in multiple areas | |||
| in multiple areas (e.g. ABR/LBR failures) to be separately | (e.g. ABR/LBR failures) to be separately identified and repaired | |||
| identified and repaired around. Third, the packet can be fast- | around. Third, the packet can be fast-rerouted again, if necessary, | |||
| rerouted again, if necessary, due to a failure in a different area. | due to a failure in a different area. | |||
| An ABR/LBR that receives a packet marked with an MRT towards a | An ABR/LBR that receives a packet on MRT-Red or MRT-Blue towards a | |||
| destination in another area/level should forward the MRT marked | destination in another area/level should forward the packet in the | |||
| packet in the area/level with the best route along its associated | area/level with the best route along MRT-Red or MRT-Blue. If the | |||
| MRT. If the packet came from that area/level, this correctly avoids | packet came from that area/level, this correctly avoids the failure. | |||
| the failure. | However, if the traffic came from a different area/level, the packet | |||
| should be removed from MRT-Red or MRT-Blue and forwarded on the | ||||
| shortest-path default forwarding topology. | ||||
| How does an ABR/LBR ensure that MRT-marked packets do not arrive at | To avoid per-interface forwarding state for MRT-Red and MRT-Blue, the | |||
| the ABR/LBR? There are two different mechanisms depending upon the | ABR/LBR needs to arrange that packets destined to a different area | |||
| forwarding mechanism being used. | arrive at the ABR/LBR already not marked as MRT-Red or MRT-Blue. | |||
| If the LDP label encodes the MT-ID as well as the destination, then | For LDP forwarding where the MPLS label specifies (MT-ID, FEC), the | |||
| the ABR/LBR is responsible for advertising a particular label to each | ABR/LBR is responsible for advertising the proper label to each | |||
| neighbor. Additionally, an LDP label is associated with an MT-ID due | neighbor. Assume that an ABR/LBR has allocated three labels for a | |||
| to the MT FEC that was used and not due to any intrisic particular | particular destination; those labels are L_primary, L_blue, and | |||
| value for the label. Assume that an ABR/LBR has allocated three | L_red. When the ABR/LBR advertises label bindings to routers in the | |||
| labels for a particular destination; those labels are L_primary, | area with the best route to the destination, the ABR/LBR provides | |||
| L_blue, and L_red. When the ABR/LBR advertises label bindings to | L_primary for the default topology, L_blue for the MRT-Blue MT-ID and | |||
| routers in the area with the best route to the destination, the ABR/ | L_red for the MRT-Red MT-ID, exactly as expected. However, when the | |||
| LBR provides L_primary for the default topology, L_blue for the Blue | ABR/LBR advertises label bindings to routers in other areas, the ABR/ | |||
| MRT MT-ID and L_red for the Red MRT MT-ID, exactly as expected. | LBR advertises L_primary for the Rainbow MRT MT-ID, which is then | |||
| However, when the ABR/LBR advertises label bindings to routers in | used for the default topology, for the MRT-Blue MT-ID and for the | |||
| other areas, the ABR/LBR advertises L_primary for the default | MRT-Red MT-ID. | |||
| topology, for the Blue MRT MT-ID, and for the Red MRT MT-ID. The | ||||
| ABR/LBR installs next-hops from the best area for L_primary based on | ||||
| the default topology, for L_blue based on the Blue MRT forwarding | ||||
| topology, and for L_red based on the Red MRT forwarding topology. | ||||
| Therefore, packets from the non-best area will arrive at the ABR/LBR | ||||
| with a label L_primary and will be forwarded into the best area along | ||||
| the default topology. By controlling what labels are advertised, the | ||||
| ABR/LBR can thus enforce that packets exiting the area do so on the | ||||
| shortest-path default topology. | ||||
| If IP-in-IP forwarding is used, then the ABR/LBR behavior is | The ABR/LBR installs all next-hops from the best area: primary next- | |||
| dependent upon the outermost IP address. If the outermost IP address | hops for L_primary, MRT-Blue next-hops for L_blue, and MRT-Red next- | |||
| is an MRT loopback address of the ABR/LBR, then the packet is | hops for L_red. Because the ABR/LBR advertised (Rainbow MRT MT-ID, | |||
| decapsulated and forwarded based upon the inner IP address, which | FEC) with L_primary to neighbors not in the best area, packets from | |||
| should go on the default SPT topology. If the outermost IP address | those neighbors will arrive at the ABR/LBR with a label L_primary and | |||
| is not an MRT loopback address of the ABR/LBR, then the packet is | will be forwarded into the best area along the default topology. By | |||
| simply forwarded along the associated forwarding topology. A PLR | controlling what labels are advertised, the ABR/LBR can thus enforce | |||
| sending traffic to a destination outside its local area/level will | that packets exiting the area do so on the shortest-path default | |||
| pick the MRT and use the associated MRT loopback address of the ABR/ | topology. | |||
| LBR immediately before the proxy-node on that MRT. | ||||
| If IP forwarding is used, then the ABR/LBR behavior is dependent upon | ||||
| the outermost IP address. If the outermost IP address is an MRT | ||||
| loopback address of the ABR/LBR, then the packet is decapsulated and | ||||
| forwarded based upon the inner IP address, which should go on the | ||||
| default SPT topology. If the outermost IP address is not an MRT | ||||
| loopback address of the ABR/LBR, then the packet is simply forwarded | ||||
| along the associated forwarding topology. A PLR sending traffic to a | ||||
| destination outside its local area/level will pick the MRT and use | ||||
| the associated MRT loopback address of the selected ABR/LBR connected | ||||
| to the external destination. | ||||
| Thus, regardless of which of these two forwarding mechanisms are | Thus, regardless of which of these two forwarding mechanisms are | |||
| used, there is no need for additional computation or per-area | used, there is no need for additional computation or per-area | |||
| forwarding state. | forwarding state. | |||
| +----[C]---- --[D]--[E] --[D]--[E] | +----[C]---- --[D]--[E] --[D]--[E] | |||
| | \ / \ / \ | | \ / \ / \ | |||
| p--[A] Area 10 [ABR1] Area 0 [H]--p +-[ABR1] Area 0 [H]-+ | p--[A] Area 10 [ABR1] Area 0 [H]--p +-[ABR1] Area 0 [H]-+ | |||
| | / \ / | \ / | | | / \ / | \ / | | |||
| +----[B]---- --[F]--[G] | --[F]--[G] | | +----[B]---- --[F]--[G] | --[F]--[G] | | |||
| skipping to change at page 18, line 38 ¶ | skipping to change at page 17, line 32 ¶ | |||
| / \ / \ | / \ / \ | |||
| [ABR1] Area 0 [H]-+ +-[ABR1] [H] | [ABR1] Area 0 [H]-+ +-[ABR1] [H] | |||
| / | | \ | / | | \ | |||
| [F]->[G] V V -<[F]<-[G] | [F]->[G] V V -<[F]<-[G] | |||
| | | | | | | |||
| | | | | | | |||
| [p]<------+ +--------->[p] | [p]<------+ +--------->[p] | |||
| (d) Blue MRT in Area 0 (e) Red MRT in Area 0 | (d) Blue MRT in Area 0 (e) Red MRT in Area 0 | |||
| Figure 4: ABR Forwarding Behavior and MRTs | Figure 3: ABR Forwarding Behavior and MRTs | |||
| The other potential forwarding mechanisms require additional | The other forwarding mechanism described in Section 6 is using | |||
| computation by the penultimate router along the in-local-area MRT | Topology-Identification Labels. This mechanism would require that | |||
| immediately before the ABR/LBR is reached. The penultimate router | any router whose MRT-Red or MRT-Blue next-hop is an ABR/LBR would | |||
| can determine that the ABR/LBR will forward the packet out of area/ | need to determine whether the ABR/LBR would forward the packet out of | |||
| level and, in that case, the penultimate router can remove the MRT | the area/level. If so, then that router should pop off the topology- | |||
| marking but still forward the packet along the MRT next-hop to reach | identification label before forwarding the packet to the ABR/LBR. | |||
| the ABR. For instance, in Figure 4, if node H fails, node E has to | ||||
| put traffic towards prefix p onto the red MRT. But since node D | For example, in Figure 3, if node H fails, node E has to put traffic | |||
| knows that ABR1 will use a best from another area, it is safe for D | towards prefix p onto MRT-Red. But since node D knows that ABR1 will | |||
| to remove the MRT marking and just send the packet to ABR1 still on | use a best from another area, it is safe for D to pop the Topology- | |||
| the red MRT but unmarked. ABR1 will use the shortest path in Area | Identification Label and just forward the packet to ABR1 along the | |||
| 10. | MRT-Red next-hop. ABR1 will use the shortest path in Area 10. | |||
| In all cases for ISIS and most cases for OSPF, the penultimate router | In all cases for ISIS and most cases for OSPF, the penultimate router | |||
| can determine what decision the adjacent ABR will make. The one case | can determine what decision the adjacent ABR will make. The one case | |||
| where it can't be determined is when two ASBRs are in different non- | where it can't be determined is when two ASBRs are in different non- | |||
| backbone areas attached to the same ABR, then the ASBR's Area ID may | backbone areas attached to the same ABR, then the ASBR's Area ID may | |||
| be needed for tie-breaking (prefer the route with the largest OPSF | be needed for tie-breaking (prefer the route with the largest OPSF | |||
| area ID) and the Area ID isn't announced as part of the ASBR link- | area ID) and the Area ID isn't announced as part of the ASBR link- | |||
| state advertisement (LSA). In this one case, suboptimal forwarding | state advertisement (LSA). In this one case, suboptimal forwarding | |||
| along the MRT in the other area would happen. If this is a realistic | along the MRT in the other area would happen. If that becomes a | |||
| deployment scenario, OSPF extensions could be considered. | realistic deployment scenario, OSPF extensions could be considered. | |||
| This is not covered in [I-D.atlas-ospf-mrt]. | ||||
| 10. Issues with Area Abstraction | 10. Prefixes Multiply Attached to the MRT Island | |||
| MRT fast-reroute provides complete coverage in a area that is | How a computing router S determines its local MRT Island for each | |||
| 2-connected. Where a failure would partition the network, of course, | supported MRT profile is already discussed in Section 7. | |||
| no alternate can protect against that failure. Similarly, there are | ||||
| ways of connecting multi-homed prefixes that make it impractical to | ||||
| protect them without excessive complexity. | ||||
| 50 | There are two types of prefixes or FECs that may be multiply attached | |||
| |----[ASBR Y]---[B]---[ABR 2]---[C] Backbone Area 0: | to an MRT Island. The first type are multi-homed prefixes that | |||
| | | ABR 1, ABR 2, C, D | usually connect at a domain or protocol boundary. The second type | |||
| | | | represent routers that do not support the profile for the MRT Island. | |||
| | | Area 20: A, ASBR X | The key difference is whether the traffic, once out of the MRT | |||
| | | | Island, remains in the same area/level and might reenter the MRT | |||
| p ---[ASBR X]---[A]---[ABR 1]---[D] Area 10: B, ASBR Y | Island if a loop-free exit point is not selected. | |||
| 5 p is a Type 1 AS-external | ||||
| Figure 5: AS external prefixes in different areas | One property of LFAs that is necessary to preserve is the ability to | |||
| protect multi-homed prefixes against ABR failure. For instance, if a | ||||
| prefix from the backbone is available via both ABR A and ABR B, if A | ||||
| fails, then the traffic should be redirected to B. This can also be | ||||
| done for backups via MRT. | ||||
| Consider the network in Figure 5 and assume there is a richer | If ASBR protection is desired, this has additonal complexities if the | |||
| connective topology that isn't shown, where the same prefix is | ASBRs are in different areas. Similarly, protecting labeled BGP | |||
| announced by ASBR X and ASBR Y which are in different non-backbone | traffic in the event of an ASBR failure has additional complexities | |||
| areas. If the link from A to ASBR X fails, then an MRT alternate | due to the per-ASBR label spaces involved. | |||
| could forward the packet to ABR 1 and ABR 1 could forward it to D, | ||||
| but then D would find the shortest route is back via ABR 1 to Area | ||||
| 20. The only real way to get it from A to ASBR Y is to explicitly | ||||
| tunnel it to ASBR Y. | ||||
| Tunnelling to the backup ASBR is for future consideration. The | As discussed in [RFC5286], a multi-homed prefix could be: | |||
| previously proposed PHP approach needs to have an exception if BGP | ||||
| policies (e.g. BGP local preference) determines which ASBR to use. | ||||
| Consider the case in Figure 6. If the link between A and ASBR X (the | ||||
| preferred border router) fails, A can put the packets to p onto an | ||||
| MRT alternate, even tunnel it towards ASBR Y. Node B, however, must | ||||
| not remove the MRT marking in this case, as nodes in Area 0, | ||||
| including ASBR Y itself would not know that their preferred ASBR is | ||||
| down. | ||||
| Area 20 BB Area 0 | o An out-of-area prefix announced by more than one ABR, | |||
| p ---[ASBR X]-X-[A]---[B]---[ABR 1]---[D]---[ASBR Y]--- p | ||||
| BGP prefers ASBR X for prefix p | o An AS-External route announced by 2 or more ASBRs, | |||
| Figure 6: Failure of path towards ASBR preferred by BGP | o A prefix with iBGP multipath to different ASBRs, | |||
| The fine details of how to solve multi-area external prefix cases, or | o etc. | |||
| identifying certain cases as too unlikely and too complex to protect | ||||
| is for further consideration. | ||||
| 11. Partial Deployment and Islands of Compatible MRT FRR routers | There are also two different approaches to protection. The first is | |||
| to do endpoint selection to pick a router to tunnel to where that | ||||
| router is loop-free with respect to the failure-point. Conceptually, | ||||
| the set of candidate routers to provide LFAs expands to all routers, | ||||
| with an MRT alternate, attached to the prefix. | ||||
| A natural concern with new functionality is how to have it be useful | The second is to use a proxy-node, that can be named via MPLS label | |||
| when it is not deployed across an entire IGP area. In the case of | or IP address, and pick the appropriate label or IP address to reach | |||
| MRT FRR, where it provides alternates when appropriate LFAs aren't | it on either MRT-Blue or MRT-Red as appropriate to avoid the failure | |||
| available, there are also deployment scenarios where it may make | point. A proxy-node can represent a destination prefix that can be | |||
| sense to only enable some routers in an area with MRT FRR. A simple | attached to the MRT Island via at least two routers. It is termed a | |||
| example of such a scenario would be a ring of 6 or more routers that | named proxy-node if there is a way that traffic can be encapsulated | |||
| is connected via two routers to the rest of the area. | to reach specifically that proxy-node; this could be because there is | |||
| an LDP FEC for the associated prefix or because MRT-Red and MRT-Blue | ||||
| IP addresses are advertised in an as-yet undefined fashion for that | ||||
| proxy-node. Traffic to a named proxy-node may take a different path | ||||
| than traffic to the attaching router; traffic is also explicitly | ||||
| forwarded from the attaching router along a predetermined interface | ||||
| towards the relevant prefixes. | ||||
| First, a computing router S must determine its local island of | For IP traffic, multi-homed prefixes can use endpoint selection. For | |||
| compatible MRT fast-reroute routers. A router that has a common | IP traffic that is destined to a router outside the MRT Island, if | |||
| profile flag and is connected either to S or to another router | that router is the egress for a FEC advertised into the MRT Island, | |||
| already determined to be in S's local island can be added to S's | then the named proxy-node approach can be used. | |||
| local island. | ||||
| Destinations inside the local island can obviously use MRT | For LDP traffic, there is always a FEC advertised into the MRT | |||
| alternates. Destinations outside the local island can be treated | Island. The named proxy-node approach should be used, unless the | |||
| like a multi-homed prefix with caveats to avoid looping. For LDP | computing router S knows the label for the FEC at the selected | |||
| labels including both destination and topology, the routers at the | endpoint. | |||
| borders of the local island need to originate labels for the original | ||||
| FEC and the associated MRT-specific labels. Packets sent to an LDP | ||||
| label marked as blue or red MRT to a destination outside the local | ||||
| island will have the last router in the local island swap the label | ||||
| to one for the destination and forward the packet along the outgoing | ||||
| interface on the MRT towards a router outside the local island that | ||||
| was represented by the proxy-node. | ||||
| For IP in IP encapsulations, remote destinations' loopback addresses | If a FEC is advertised from outside the MRT Island into the MRT | |||
| for the MRTs cannot be used, even if they were available. Instead, | Island and the forwarding mechanism specified in the profile includes | |||
| the MRT loopback address of the router attached to a proxy-node, | LDP, then the routers learning that FEC MUST also advertise labels | |||
| which represents destinations outside the local island, can be used. | for (MRT-Red, FEC) and (MRT-Blue, FEC) to neighbors inside the MRT | |||
| Packets sent to the router's MRT loopback address will have their | Island. If the forwarding mechanism includes LDP, any router | |||
| outer IP header removed and will need to be explicitly forwarded | receiving a FEC corresponding to a router outside the MRT Island or | |||
| along the outgoing interface on the MRT towards a router outside the | to a multi-homed prefix MUST compute and install the transit MRT-Blue | |||
| local island that was represented by the proxy-node. This behavior | and MRT-Red next-hops for that FEC; the associated FECs ( (MT-ID 0, | |||
| requires essentially remembering the MT-ID indicated by the outer IP | FEC), (MRT-Red, FEC), and (MRT-Blue, FEC)) MUST also be provided via | |||
| address. An alternate option would be to advertise different | LDP to neighbors inside the MRT Island. | |||
| loopback addresses to be associated with the proxy-node; the outer IP | ||||
| address would still be removed but it would indicate the outgoing | ||||
| interface to use and no lookup would be necessary on the internal IP | ||||
| address while maintaining MT-ID context. | ||||
| A key question is which routers outside the MRT island can packets be | 10.1. Endpoint Selection | |||
| forwarded to so that they are not forwarded back into the MRT island. | ||||
| An example of the necessary network graph transformations are given | ||||
| in Figure 7. There are two parts to the computation. First, the MRT | ||||
| island is collapsed into a single node; this assumes that the cost of | ||||
| transiting the MRT island is nothing and is pessimistic but allows | ||||
| for simpler computation. Then, for each destination (other than the | ||||
| MRT island), the routers adjacent to the MRT island are checked to | ||||
| see if they are loop-free with respect to the MRT island and the | ||||
| destination. The loop-free neighbors of the MRT island that are | ||||
| closest to the destination are selected. Then, a graph of just the | ||||
| MRT island is augmented with proxy-nodes that are attached via the | ||||
| outgoing interfaces to the selected loop-free neighbors. Finally, | ||||
| the MRTs rooted at each proxy-node are computed on that augmented MRT | ||||
| island graph. Essentially, the MRT island must have a loop-free | ||||
| neighbor to be able to have an alternate. | ||||
| [G]---[E]---(B)---(C)---(D) | Endpoint Selection is a local matter for a router in the MRT Island | |||
| | \ | | | | since it pertains to selecting and using an alternate and does not | |||
| | \ | | | | affect the transit MRT-Red and MRT-Blue forwarding topologies. | |||
| | \ | | | | ||||
| [H]---[F]---(A)---(S)----| | ||||
| (1) Network Graph with Partial Deployment | Let the computing router be S and the next-hop F be the node whose | |||
| failure is to be avoided. Let the destination be prefix p. Have A | ||||
| be the router to which the prefix p is attached for S's shortest path | ||||
| to p. | ||||
| [E],[F],[G],[H] : No support for MRT-FRR | The candidates for endpoint selection are those to which the | |||
| (A),(B),(C),(D),(S): MRT Island - supports MRT-FRR | destination prefix is attached in the area/level. For a particular | |||
| candidate B, it is necessary to determine if B is loop-free to reach | ||||
| p with respect to S and F for node-protection or at least with | ||||
| respect to S and the link (S, F) for link-protection. If B will | ||||
| always prefer to send traffic to p via a different area/level, then | ||||
| this is definitional. Otherwise, distance-based computations are | ||||
| necessary and an SPF from B's perspective may be necessary. The | ||||
| following equations give the checks needed; the rationale is similar | ||||
| to that given in [RFC5286]. | ||||
| [G]---[E]----| |---(B)---(C)---(D) | Loop-Free for S: D_opt(B, p) < D_opt(B, S) + D_opt(S, p) | |||
| | \ | | | | | | ||||
| | \ | ( MRT Island ) [ proxy ] | | | ||||
| | \ | | | | | | ||||
| [H]---[F]----| |---(A)---(S)----| | ||||
| (2) Graph for determining (3) Graph for MRT computation | Loop-Free for F: D_opt(B, p) < D_opt(B, F) + D_opt(F, p) | |||
| loop-free neighbors | ||||
| Figure 7: Computing alternates to destinations outside the MRT Island | The latter is equivalent to the following, which avoids the need to | |||
| compute the shortest path from F to p. | ||||
| Loop-Free for F: D_opt(B, p) < D_opt(B, F) + D_opt(S, p) - D_opt(S, | ||||
| F) | ||||
| Finally, the rules for Endpoint selection are given below. The basic | ||||
| idea is to repair to the prefix-advertising router selected for the | ||||
| shortest-path and only to select and tunnel to a different endpoint | ||||
| if necessary (e.g. A=F or F is a cut-vertex or the link (S,F) is a | ||||
| cut-link). | ||||
| 1. Does S have a node-protecting alternate to A? If so, select | ||||
| that. Tunnel the packet to A along that alternate. For example, | ||||
| if LDP is the forwarding mechanism, then push the label (MRT-Red, | ||||
| A) or (MRT-Blue, A) onto the packet. | ||||
| 2. If not, then is there a router B that is loop-free to reach p | ||||
| while avoiding both F and S? If so, select B as the end-point. | ||||
| Determine the MRT alternate to reach B while avoiding F. Tunnel | ||||
| the packet to B along that alternate. For example, with LDP, | ||||
| push the label (MRT-Red, B) or (MRT-Blue, B) onto the packet. | ||||
| 3. If not, then does S have a link-protecting alternate to A? If | ||||
| so, select that. | ||||
| 4. If not, then is there a router B that is loop-free to reach p | ||||
| while avoiding S and the link from S to F? If so, select B as | ||||
| the endpoint and the MRT alternate that for reaching B from S | ||||
| avoiding the link (S,F). | ||||
| The endpoint selected will receive a packet destined to itself and, | ||||
| being the egress, will pop that MPLS label (or have signaled Implicit | ||||
| Null) and forward based on what is underneath. This suffices for IP | ||||
| traffic where the MPLS labels understood by the endpoint router are | ||||
| not needed. | ||||
| 10.2. Named Proxy-Nodes | ||||
| A clear advantage to using a named proxy-node is that it is possible | ||||
| to explicitly forward from the MRT Island along an interface to a | ||||
| loop-free island neighbor (LFIN) when that interface may not be a | ||||
| primary next-hop. For LDP traffic where the label indicates both the | ||||
| topology and the FEC, it is necessary to either use a named proxy- | ||||
| node or deal with learning remote MPLS labels. | ||||
| A named proxy-node represents one or more destinations and, for LDP | ||||
| forwarding, has a FEC associated with it that is signaled into the | ||||
| MRT Island. Therefore, it is possible to explicitly label packets to | ||||
| go to (MRT-Red, FEC) or (MRT-Blue, FEC); at the border of the MRT | ||||
| Island, the label will swap to meaning (MT-ID 0, FEC). It would be | ||||
| possible to have named proxy-nodes for IP forwarding, but this would | ||||
| require extensions to signal two IP addresses to be associated with | ||||
| MRT-Red and MRT-Blue for the proxy-node. A named proxy-node can be | ||||
| uniquely represented by the two routers in the MRT Island to which it | ||||
| is connected. The extensions to signal such IP addresses are not | ||||
| defined in [I-D.atlas-ospf-mrt]. The details of what label-bindings | ||||
| must be originated are described in [I-D.atlas-mpls-ldp-mrt]. | ||||
| Computing the MRT next-hops to a named proxy-node and the MRT | ||||
| alternate for the computing router S to avoid a particular failure | ||||
| node F is extremely straightforward. The details of the simple | ||||
| constant-time functions, Select_Proxy_Node_NHs() and | ||||
| Select_Alternates_Proxy_Node(), are given in | ||||
| [I-D.enyedi-rtgwg-mrt-frr-algorithm]. A key point is that computing | ||||
| these MRT next-hops and alternates can be done as new named proxy- | ||||
| nodes are added or removed without requiring a new MRT computation or | ||||
| impacting other existing MRT paths. This maps very well to, for | ||||
| example, how OSPFv2 [[RFC2328] Section 16.5] does incremental updates | ||||
| for new summary-LSAs. | ||||
| The key question is how to attach the named proxy-node to the MRT | ||||
| Island; all the routers in the MRT Island MUST do this consistently. | ||||
| No more than 2 routers in the MRT Island can be selected; one should | ||||
| only be selected if there are no others that meet the necessary | ||||
| criteria. The named proxy-node is logically part of the area/level. | ||||
| There are two sources for candidate routers in the MRT Island to | ||||
| connect to the named proxy-node. The first set are those routers | ||||
| that are advertising the prefix; the cost assigned to each such | ||||
| router is the announced cost to the prefix. The second set are those | ||||
| routers in the MRT Island that are connected to routers not in the | ||||
| MRT Island but in the same area/level; such routers will be defined | ||||
| as Island Border Routers (IBRs). The routers connected to the IBRs | ||||
| that are not in the MRT Island and are in the same area/level are | ||||
| Island Neighbors (INs). | ||||
| Since packets sent to the named proxy-node along MRT-Red or MRT-Blue | ||||
| may come from any router inside the MRT Island, it is necessary that | ||||
| whatever router to which an IBR forwards the packet be loop-free with | ||||
| regard to the whole MRT Island for the destination. Thus, an IBR is | ||||
| a candidate router only if it possesses at least one IN whose path to | ||||
| the prefix does not enter the MRT Island. The cost assigned to each | ||||
| (IBR, IN) pair is the D_opt(IN, prefix) plus Cost(IBR, IN). | ||||
| From the set of prefix-advertising routers and the IBRs, the two | ||||
| lowest cost routers are selected and ties are broken based upon the | ||||
| lowest Router ID. For ease of discussion, such selected routers are | ||||
| proxy-node attachment routers and the two selected will be named A | ||||
| and B. | ||||
| A proxy-node attachment router has a special forwarding role. When a | ||||
| packet is received destined to (MRT-Red, prefix) or (MRT-Blue, | ||||
| prefix), if the proxy-node attachment router is an IBR, it MUST swap | ||||
| to the default topology (e.g. swap to the label for (MT-ID 0, prefix) | ||||
| or remove the outer IP encapsulation) and forward the packet to the | ||||
| IN whose cost was used in the selection. If the proxy-node | ||||
| attachment router is not an IBR, then the packet MUST be removed from | ||||
| the MRT forwarding topology and sent along the interface that caused | ||||
| the router to advertise the prefix; this interface might be out of | ||||
| the area/level/AS. | ||||
| 10.2.1. Computing if an Island Neighbor (IN) is loop-free | ||||
| As discussed, the Island Neighbor needs to be loop-free with regard | ||||
| to the whole MRT Island for the destination. Conceptually, the cost | ||||
| of transiting the MRT Island should be regarded as 0. This can be | ||||
| done by collapsing the MRT Island into a single node, as seen in | ||||
| Figure 4, and then computing SPFs from each Island Neighbor and from | ||||
| the MRT Island itself. | ||||
| [G]---[E]---(V)---(U)---(T) | ||||
| | \ | | | | ||||
| | \ | | | | ||||
| | \ | | | | ||||
| [H]---[F]---(R)---(S)----| | ||||
| (1) Network Graph with Partial Deployment | ||||
| [E],[F],[G],[H] : No support for MRT | ||||
| (R),(S),(T),(U),(V): MRT Island - supports MRT | ||||
| [G]---[E]----| |---(V)---(U)---(T) | ||||
| | \ | | | | | | ||||
| | \ | ( MRT Island ) [ proxy ] | | | ||||
| | \ | | | | | | ||||
| [H]---[F]----| |---(R)---(S)----| | ||||
| (2) Graph for determining (3) Graph for MRT computation | ||||
| loop-free neighbors | ||||
| Figure 4: Computing alternates to destinations outside the MRT Island | ||||
| The simple way to do this without manipulating the topology is to | ||||
| compute the SPFs from each IN and a node in the MRT Island (e.g. the | ||||
| GADAG root), but use a link metric of 0 for all links between routers | ||||
| in the MRT Island. The distances computed via SPF this way will be | ||||
| refered to as Dist_mrt0. | ||||
| An IN is loop-free with respect to a destination D if: Dist_mrt0(IN, | ||||
| D) < Dist_mrt0(IN, MRT Island Router) + Dist_mrt0(MRT Island Router, | ||||
| D). Any router in the MRT Island can be used since the cost of | ||||
| transiting between MRT Island routers is 0. The GADAG Root is | ||||
| recommended for consistency. | ||||
| 10.3. MRT Alternates for Destinations Outside the MRT Island | ||||
| A natural concern with new functionality is how to have it be useful | ||||
| when it is not deployed across an entire IGP area. In the case of | ||||
| MRT FRR, where it provides alternates when appropriate LFAs aren't | ||||
| available, there are also deployment scenarios where it may make | ||||
| sense to only enable some routers in an area with MRT FRR. A simple | ||||
| example of such a scenario would be a ring of 6 or more routers that | ||||
| is connected via two routers to the rest of the area. | ||||
| Destinations inside the local island can obviously use MRT | ||||
| alternates. Destinations outside the local island can be treated | ||||
| like a multi-homed prefix and either Endpoint Selection or Named | ||||
| Proxy-Nodes can be used. Named Proxy-Nodes MUST be supported when | ||||
| LDP forwarding is supported and a label-binding for the destination | ||||
| is sent to an IBR. | ||||
| Naturally, there are more complicated options to improve coverage, | Naturally, there are more complicated options to improve coverage, | |||
| such as connecting multiple MRT islands across tunnels, but it is not | such as connecting multiple MRT islands across tunnels, but the need | |||
| clear that the additional complexity is necessary. | for the additional complexity has not been justified. | |||
| 12. Network Convergence and Preparing for the Next Failure | 11. Network Convergence and Preparing for the Next Failure | |||
| After a failure, MRT detours ensure that packets reach their intended | After a failure, MRT detours ensure that packets reach their intended | |||
| destination while the IGP has not reconverged onto the new topology. | destination while the IGP has not reconverged onto the new topology. | |||
| As link-state updates reach the routers, the IGP process calculates | As link-state updates reach the routers, the IGP process calculates | |||
| the new shortest paths. Two things need attention: micro-loop | the new shortest paths. Two things need attention: micro-loop | |||
| prevention and MRT re-calculation. | prevention and MRT re-calculation. | |||
| 12.1. Micro-forwarding loop prevention and MRTs | 11.1. Micro-forwarding loop prevention and MRTs | |||
| As is well known[RFC5715], micro-loops can occur during IGP | As is well known[RFC5715], micro-loops can occur during IGP | |||
| convergence; such loops can be local to the failure or remote from | convergence; such loops can be local to the failure or remote from | |||
| the failure. Managing micro-loops is an orthogonal issue to having | the failure. Managing micro-loops is an orthogonal issue to having | |||
| alternates for local repair, such as MRT fast-reroute provides. | alternates for local repair, such as MRT fast-reroute provides. | |||
| There are two possible micro-loop prevention mechanism discussed in | There are two possible micro-loop prevention mechanisms discussed in | |||
| [RFC5715]. The first is Ordered FIB [I-D.ietf-rtgwg-ordered-fib]. | [RFC5715]. The first is Ordered FIB [I-D.ietf-rtgwg-ordered-fib]. | |||
| The second is Farside Tunneling which requires tunnels or an | The second is Farside Tunneling which requires tunnels or an | |||
| alternate topology to reach routers on the farside of the failure. | alternate topology to reach routers on the farside of the failure. | |||
| Since MRTs provide an alternate topology through which traffic can be | Since MRTs provide an alternate topology through which traffic can be | |||
| sent and which can be manipulated separately from the SPT, it is | sent and which can be manipulated separately from the SPT, it is | |||
| possible that MRTs could be used to support Farside Tunneling. | possible that MRTs could be used to support Farside Tunneling. | |||
| Details of how to do so are outside of this document. | Details of how to do so are outside the scope of this document. | |||
| 12.2. MRT Recalculation | Micro-loop mitigation mechanisms can also work when combined with | |||
| MRT. | ||||
| 11.2. MRT Recalculation | ||||
| When a failure event happens, traffic is put by the PLRs onto the MRT | When a failure event happens, traffic is put by the PLRs onto the MRT | |||
| topologies. After that, each router recomputes its shortest path | topologies. After that, each router recomputes its shortest path | |||
| tree (SPT) and moves traffic over to that. Only after all the PLRs | tree (SPT) and moves traffic over to that. Only after all the PLRs | |||
| have switched to using their SPTs and traffic has drained from the | have switched to using their SPTs and traffic has drained from the | |||
| MRT topologies should each router install the recomputed MRTs into | MRT topologies should each router install the recomputed MRTs into | |||
| the FIBs. | the FIBs. | |||
| At each router, therefore, the sequence is as follows: | At each router, therefore, the sequence is as follows: | |||
| 1. Receive failure notification | 1. Receive failure notification | |||
| 2. Recompute SPT | 2. Recompute SPT | |||
| 3. Install new SPT | 3. Install new SPT | |||
| 4. Recompute MRTs | 4. If the network was stable before the failure occured, wait a | |||
| configured (or advertised) period for all routers to be using | ||||
| their SPTs and traffic to drain from the MRTs. | ||||
| 5. Wait configured period for all routers to be using their SPTs and | 5. Recompute MRTs | |||
| traffic to drain from the MRTs. | ||||
| 6. Install new MRTs. | 6. Install new MRTs. | |||
| While the recomputed MRTs are not installed in the FIB, protection | While the recomputed MRTs are not installed in the FIB, protection | |||
| coverage is lowered. Therefore, it is important to recalculate the | coverage is lowered. Therefore, it is important to recalculate the | |||
| MRTs and install them quickly. | MRTs and install them quickly. | |||
| 13. Acknowledgements | 12. Acknowledgements | |||
| The authors would like to thank Hannes Gredler, Jeff Tantsura, Ted | The authors would like to thank Mike Shand for his valuable review | |||
| Qian, Kishore Tiruveedhula, Santosh Esale, Nitin Bahadur, Harish | and contributions. | |||
| Sitaraman and Raveendra Torvi for their suggestions and review. | ||||
| 14. IANA Considerations | The authors would like to thank Joel Halpern, Hannes Gredler, Ted | |||
| Qian, Kishore Tiruveedhula, Shraddha Hegde, Santosh Esale, Nitin | ||||
| Bahadur, Harish Sitaraman, Raveendra Torvi and Chris Bowers for their | ||||
| suggestions and review. | ||||
| 13. IANA Considerations | ||||
| This doument includes no request to IANA. | This doument includes no request to IANA. | |||
| 15. Security Considerations | 14. Security Considerations | |||
| This architecture is not currently believed to introduce new security | This architecture is not currently believed to introduce new security | |||
| concerns. | concerns. | |||
| 16. References | 15. References | |||
| 16.1. Normative References | 15.1. Normative References | |||
| [I-D.enyedi-rtgwg-mrt-frr-algorithm] | [I-D.enyedi-rtgwg-mrt-frr-algorithm] | |||
| Atlas, A., Envedi, G., Csaszar, A., and A. Gopalan, | Atlas, A., Envedi, G., Csaszar, A., Gopalan, A., and C. | |||
| "Algorithms for computing Maximally Redundant Trees for | Bowers, "Algorithms for computing Maximally Redundant | |||
| IP/LDP Fast- Reroute", | Trees for IP/LDP Fast- Reroute", draft-enyedi-rtgwg-mrt- | |||
| draft-enyedi-rtgwg-mrt-frr-algorithm-02 (work in | frr-algorithm-03 (work in progress), July 2013. | |||
| progress), October 2012. | ||||
| [RFC5286] Atlas, A. and A. Zinin, "Basic Specification for IP Fast | [RFC5286] Atlas, A. and A. Zinin, "Basic Specification for IP Fast | |||
| Reroute: Loop-Free Alternates", RFC 5286, September 2008. | Reroute: Loop-Free Alternates", RFC 5286, September 2008. | |||
| [RFC5714] Shand, M. and S. Bryant, "IP Fast Reroute Framework", | [RFC5714] Shand, M. and S. Bryant, "IP Fast Reroute Framework", RFC | |||
| RFC 5714, January 2010. | 5714, January 2010. | |||
| 16.2. Informative References | 15.2. Informative References | |||
| [EnyediThesis] | [EnyediThesis] | |||
| Enyedi, G., "Novel Algorithms for IP Fast Reroute", | Enyedi, G., "Novel Algorithms for IP Fast Reroute", | |||
| Department of Telecommunications and Media Informatics, | Department of Telecommunications and Media Informatics, | |||
| Budapest University of Technology and Economics Ph.D. | Budapest University of Technology and Economics Ph.D. | |||
| Thesis, February 2011, | Thesis, February 2011, | |||
| <http://timon.tmit.bme.hu/theses/thesis_book.pdf>. | <http://timon.tmit.bme.hu/theses/thesis_book.pdf>. | |||
| [I-D.atlas-mpls-ldp-mrt] | ||||
| Atlas, A., Tiruveedhula, K., Tantsura, J., and IJ. | ||||
| Wijnands, "LDP Extensions to Support Maximally Redundant | ||||
| Trees", draft-atlas-mpls-ldp-mrt-00 (work in progress), | ||||
| July 2013. | ||||
| [I-D.atlas-ospf-mrt] | ||||
| Atlas, A., Hegde, S., Chris, C., and J. Tantsura, "OSPF | ||||
| Extensions to Support Maximally Redundant Trees", draft- | ||||
| atlas-ospf-mrt-00 (work in progress), July 2013. | ||||
| [I-D.atlas-rtgwg-mrt-mc-arch] | [I-D.atlas-rtgwg-mrt-mc-arch] | |||
| Atlas, A., Kebler, R., Wijnands, I., Csaszar, A., and G. | Atlas, A., Kebler, R., Wijnands, I., Csaszar, A., and G. | |||
| Envedi, "An Architecture for Multicast Protection Using | Envedi, "An Architecture for Multicast Protection Using | |||
| Maximally Redundant Trees", | Maximally Redundant Trees", draft-atlas-rtgwg-mrt-mc- | |||
| draft-atlas-rtgwg-mrt-mc-arch-00 (work in progress), | arch-02 (work in progress), July 2013. | |||
| March 2012. | ||||
| [I-D.bryant-ipfrr-tunnels] | ||||
| Bryant, S., Filsfils, C., Previdi, S., and M. Shand, "IP | ||||
| Fast Reroute using tunnels", draft-bryant-ipfrr-tunnels-03 | ||||
| (work in progress), November 2007. | ||||
| [I-D.ietf-mpls-ldp-multi-topology] | [I-D.ietf-mpls-ldp-multi-topology] | |||
| Zhao, Q., Fang, L., Zhou, C., Li, L., and K. Raza, "LDP | Zhao, Q., Fang, L., Zhou, C., Li, L., and K. Raza, "LDP | |||
| Extensions for Multi Topology Routing", | Extensions for Multi Topology Routing", draft-ietf-mpls- | |||
| draft-ietf-mpls-ldp-multi-topology-06 (work in progress), | ldp-multi-topology-08 (work in progress), May 2013. | |||
| December 2012. | ||||
| [I-D.ietf-rtgwg-ipfrr-notvia-addresses] | [I-D.ietf-rtgwg-ipfrr-notvia-addresses] | |||
| Bryant, S., Previdi, S., and M. Shand, "A Framework for IP | Bryant, S., Previdi, S., and M. Shand, "A Framework for IP | |||
| and MPLS Fast Reroute Using Not-via Addresses", | and MPLS Fast Reroute Using Not-via Addresses", draft- | |||
| draft-ietf-rtgwg-ipfrr-notvia-addresses-10 (work in | ietf-rtgwg-ipfrr-notvia-addresses-11 (work in progress), | |||
| progress), December 2012. | May 2013. | |||
| [I-D.ietf-rtgwg-lfa-applicability] | ||||
| Filsfils, C. and P. Francois, "LFA applicability in SP | ||||
| networks", draft-ietf-rtgwg-lfa-applicability-06 (work in | ||||
| progress), January 2012. | ||||
| [I-D.ietf-rtgwg-ordered-fib] | [I-D.ietf-rtgwg-ordered-fib] | |||
| Shand, M., Bryant, S., Previdi, S., Filsfils, C., | Shand, M., Bryant, S., Previdi, S., Filsfils, C., | |||
| Francois, P., and O. Bonaventure, "Framework for Loop-free | Francois, P., and O. Bonaventure, "Framework for Loop-free | |||
| convergence using oFIB", draft-ietf-rtgwg-ordered-fib-09 | convergence using oFIB", draft-ietf-rtgwg-ordered-fib-12 | |||
| (work in progress), January 2013. | (work in progress), May 2013. | |||
| [I-D.ietf-rtgwg-remote-lfa] | [I-D.ietf-rtgwg-remote-lfa] | |||
| Bryant, S., Filsfils, C., Previdi, S., Shand, M., and S. | Bryant, S., Filsfils, C., Previdi, S., Shand, M., and S. | |||
| Ning, "Remote LFA FRR", draft-ietf-rtgwg-remote-lfa-01 | Ning, "Remote LFA FRR", draft-ietf-rtgwg-remote-lfa-02 | |||
| (work in progress), December 2012. | (work in progress), May 2013. | |||
| [I-D.litkowski-rtgwg-node-protect-remote-lfa] | ||||
| Litkowski, S., "Node protecting remote LFA", draft- | ||||
| litkowski-rtgwg-node-protect-remote-lfa-00 (work in | ||||
| progress), April 2013. | ||||
| [LFARevisited] | [LFARevisited] | |||
| Retvari, G., Tapolcai, J., Enyedi, G., and A. Csaszar, "IP | Retvari, G., Tapolcai, J., Enyedi, G., and A. Csaszar, "IP | |||
| Fast ReRoute: Loop Free Alternates Revisited", Proceedings | Fast ReRoute: Loop Free Alternates Revisited", Proceedings | |||
| of IEEE INFOCOM , 2011, <http://opti.tmit.bme.hu/ | of IEEE INFOCOM , 2011, <http://opti.tmit.bme.hu/~tapolcai | |||
| ~tapolcai/papers/retvari2011lfa_infocom.pdf>. | /papers/retvari2011lfa_infocom.pdf>. | |||
| [LightweightNotVia] | [LightweightNotVia] | |||
| Enyedi, G., Retvari, G., Szilagyi, P., and A. Csaszar, "IP | Enyedi, G., Retvari, G., Szilagyi, P., and A. Csaszar, "IP | |||
| Fast ReRoute: Lightweight Not-Via without Additional | Fast ReRoute: Lightweight Not-Via without Additional | |||
| Addresses", Proceedings of IEEE INFOCOM , 2009, | Addresses", Proceedings of IEEE INFOCOM , 2009, | |||
| <http://mycite.omikk.bme.hu/doc/71691.pdf>. | <http://mycite.omikk.bme.hu/doc/71691.pdf>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | ||||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | ||||
| [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. | ||||
| [RFC3137] Retana, A., Nguyen, L., White, R., Zinin, A., and D. | ||||
| McPherson, "OSPF Stub Router Advertisement", RFC 3137, | ||||
| June 2001. | ||||
| [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP | ||||
| Synchronization", RFC 5443, March 2009. | ||||
| [RFC5715] Shand, M. and S. Bryant, "A Framework for Loop-Free | [RFC5715] Shand, M. and S. Bryant, "A Framework for Loop-Free | |||
| Convergence", RFC 5715, January 2010. | Convergence", RFC 5715, January 2010. | |||
| [RFC6571] Filsfils, C., Francois, P., Shand, M., Decraene, B., | ||||
| Uttaro, J., Leymann, N., and M. Horneffer, "Loop-Free | ||||
| Alternate (LFA) Applicability in Service Provider (SP) | ||||
| Networks", RFC 6571, June 2012. | ||||
| Appendix A. General Issues with Area Abstraction | ||||
| When a multi-homed prefix is connected in two different areas, it may | ||||
| be impractical to protect them without adding the complexity of | ||||
| explicit tunneling. This is also a problem for LFA and Remote-LFA. | ||||
| 50 | ||||
| |----[ASBR Y]---[B]---[ABR 2]---[C] Backbone Area 0: | ||||
| | | ABR 1, ABR 2, C, D | ||||
| | | | ||||
| | | Area 20: A, ASBR X | ||||
| | | | ||||
| p ---[ASBR X]---[A]---[ABR 1]---[D] Area 10: B, ASBR Y | ||||
| 5 p is a Type 1 AS-external | ||||
| Figure 5: AS external prefixes in different areas | ||||
| Consider the network in Figure 5 and assume there is a richer | ||||
| connective topology that isn't shown, where the same prefix is | ||||
| announced by ASBR X and ASBR Y which are in different non-backbone | ||||
| areas. If the link from A to ASBR X fails, then an MRT alternate | ||||
| could forward the packet to ABR 1 and ABR 1 could forward it to D, | ||||
| but then D would find the shortest route is back via ABR 1 to Area | ||||
| 20. This problem occurs because the routers, including the ABR, in | ||||
| one area are not yet aware of the failure in a different area. | ||||
| The only way to get it from A to ASBR Y is to explicitly tunnel it to | ||||
| ASBR Y. If the traffic is unlabeled or the appropriate MPLS labels | ||||
| are known, then explicit tunneling MAY be used as long as the | ||||
| shortest-path of the tunnel avoids the failure point. In that case, | ||||
| A must determine that it should use an explicit tunnel instead of an | ||||
| MRT alternate. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Alia Atlas (editor) | Alia Atlas (editor) | |||
| Juniper Networks | Juniper Networks | |||
| 10 Technology Park Drive | 10 Technology Park Drive | |||
| Westford, MA 01886 | Westford, MA 01886 | |||
| USA | USA | |||
| Email: akatlas@juniper.net | Email: akatlas@juniper.net | |||
| Robert Kebler | Robert Kebler | |||
| Juniper Networks | Juniper Networks | |||
| 10 Technology Park Drive | 10 Technology Park Drive | |||
| Westford, MA 01886 | Westford, MA 01886 | |||
| USA | USA | |||
| Email: rkebler@juniper.net | Email: rkebler@juniper.net | |||
| Gabor Sandor Enyedi | Gabor Sandor Enyedi | |||
| Ericsson | Ericsson | |||
| Konyves Kalman krt 11. | Konyves Kalman krt 11. | |||
| Budapest 1097 | Budapest 1097 | |||
| Hungary | Hungary | |||
| Email: Gabor.Sandor.Enyedi@ericsson.com | Email: Gabor.Sandor.Enyedi@ericsson.com | |||
| Andras Csaszar | Andras Csaszar | |||
| Ericsson | Ericsson | |||
| skipping to change at page 27, line 4 ¶ | skipping to change at page 29, line 32 ¶ | |||
| 300 Holger Way | 300 Holger Way | |||
| San Jose, CA 95134 | San Jose, CA 95134 | |||
| USA | USA | |||
| Email: jeff.tantsura@ericsson.com | Email: jeff.tantsura@ericsson.com | |||
| Maciek Konstantynowicz | Maciek Konstantynowicz | |||
| Cisco Systems | Cisco Systems | |||
| Email: maciek@bgp.nu | Email: maciek@bgp.nu | |||
| Russ White | ||||
| Verisign | ||||
| 12061 Bluemont Way | ||||
| Reston, VA 20190 | ||||
| USA | ||||
| Email: riwhite@verisign.com | ||||
| Mike Shand | Russ White | |||
| VCE | ||||
| Email: mike@mshand.org.uk | Email: russw@riw.us | |||
| End of changes. 147 change blocks. | ||||
| 634 lines changed or deleted | 845 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/ | ||||