RFC 7431

Multicast-Only Fast Reroute

πŸ“… published August 2015, from ietf

RFC 7431: Multicast-Only Fast Reroute πŸ¦‹

Okay bestie, this one is from the Internet Engineering Task Force (IETF) and it's a whole vibe. πŸ’–

  • Authors: A. Karan, C. Filsfils, IJ. Wijnands (who's the editor, "Ed."), and B. Decraene 🫢
  • Companies: Cisco Systems, Inc. (Karan, Filsfils, and Wijnands) and Orange (Decraene) 🏒
  • Category: Informational (so it's published for info, not as a Standards Track spec) πŸ“š
  • ISSN: 2070-1721
  • Date: August 2015 πŸ“…
  • Obsoletes / Updates: nothing is listed in this title block πŸ™ˆ

Abstract ✨

Okay so as IPTV deployments keep growing in number and size, service providers want solutions that cut down on service disruption caused by faults in the IP network carrying the packets for these services. This document describes a mechanism for minimizing packet loss in a network when node or link failures happen. Multicast-only Fast Reroute (MoFRR) works by making simple enhancements to multicast routing protocols such as Protocol Independent Multicast (PIM) and Multipoint LDP (mLDP). πŸ’…

Status of This Memo

This document is not an Internet Standards Track specification. It's published for informational purposes. πŸ“

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community, and it went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). Not every document the IESG approves is a candidate for any level of Internet Standard. See Section 2 of RFC 5741 for the details. 🌸

Info about the current status of this document, any errata, and how to give feedback on it can be found at http://www.rfc-editor.org/info/rfc7431. ✨

Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved. πŸŽ€

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they're in effect on the date of publication of this document. Please read these carefully, because they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they're provided without warranty as described in the Simplified BSD License. βš–οΈ

Table of Contents 🧚

   1. Introduction ....................................................3
      1.1. Conventions Used in This Document ..........................3
      1.2. Terminology ................................................3
   2. Basic Overview ..................................................4
   3. Determination of the Secondary UMH ..............................5
      3.1. ECMP-Mode MoFRR ............................................5
      3.2. Non-ECMP-Mode MoFRR ........................................5
   4. Upstream Multicast Hop Selection ................................6
      4.1. PIM ........................................................6
      4.2. mLDP .......................................................6
   5. Detecting Failures ..............................................6
   6. MoFRR Applicability to Dual-Plane Topology ......................7
   7. Other Topologies ...............................................10
   8. Capacity Planning for MoFRR ....................................11
   9. PE Nodes .......................................................11
   10. Other Applications ............................................11
   11. Security Considerations .......................................12
   12. References ....................................................12
      12.1. Normative References .....................................12
      12.2. Informative References ...................................12
   Acknowledgments ...................................................13
   Contributors ......................................................13
   Authors' Addresses ................................................14

1. Introduction ✨

Different solutions have been developed and deployed to level up service guarantees, both for multicast video traffic and Video on Demand traffic. Most of them are geared toward finding an alternate path around one or more failed network elements (link, node, or path failures). 🎬

This document describes a mechanism for minimizing packet loss in a network when node or link failures happen. Multicast-only Fast Reroute (MoFRR) works by making simple changes to the way selected routers use multicast protocols such as PIM and mLDP. No changes to the protocols themselves are required. πŸ’œ With MoFRR, in lots of cases, multicast routing protocols don't necessarily have to depend on or wait around for unicast routing protocols to detect network failures. See Section 5 for more on that. πŸ¦‹

On a Merge Point, MoFRR logic figures out a primary Upstream Multicast Hop (UMH) and a secondary UMH, and it joins the tree via both at the same time. Data packets get received over the primary and secondary paths. Only the packets from the primary UMH get accepted and forwarded down the tree, and the packets from the secondary UMH get discarded. The UMH determination is different for PIM and mLDP, and Section 4 explains it. When a failure is detected on the path to the primary UMH, the repair happens by swapping the secondary UMH into the primary role and the primary into the secondary. Since the repair is local, it's fast, which greatly improves convergence times when node or link failures hit the path to the primary UMH. 🌈

1.1. Conventions Used in This Document

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. πŸ“–

1.2. Terminology πŸŽ€

  • MoFRR: Multicast-only Fast Reroute.
  • ECMP: Equal-Cost Multipath.
  • mLDP: Multipoint Label Distribution Protocol.
  • PIM: Protocol Independent Multicast.
  • UMH: Upstream Multicast Hop. A candidate next-hop that can be used to reach the root of the tree.
  • tree: Either a PIM (S,G)/(*,G) tree or an mLDP Point-to-Multipoint (P2MP) or Multipoint-to-Multipoint (MP2MP) LSP.
  • OIF: Outgoing interface. An interface used to forward multicast packets down the tree towards the receivers. This is either a PIM (S,G)/(*,G) tree or an mLDP P2MP or MP2MP LSP.
  • LFA: Loop-Free Alternate, as defined in [RFC5286]. In unicast Fast Reroute, this is an alternate next-hop that can be used to reach a unicast destination without using the protected link or node.
  • Merge Point: A router that joins a multicast stream via two divergent upstream paths.
  • RPF: Reverse Path Forwarding.
  • RP: Rendezvous Point.
  • LSP: Label Switched Path.
  • LSR: Label Switching Router.
  • BFD: Bidirectional Forwarding Detection.
  • IGP: Interior Gateway Protocol.
  • MVPN: Multicast Virtual Private Network.
  • POP: Point Of Presence, an access point into the network.

2. Basic Overview 🌸

The basic idea of MoFRR is for a Merge Point router to join a multicast tree via two divergent upstream paths, so it gets maximum redundancy. How that alternate upstream gets picked is defined in Section 3. 🧠

To max out robustness against any failure, the two paths should be as diverse as possible. Ideally, they shouldn't merge upstream. Sometimes the topology guarantees maximal redundancy, and other times you need extra configuration or techniques to enforce it. Check out Section 6 for more on how MoFRR applies depending on the network topology. πŸ—ΊοΈ

A Merge Point router should only accept and forward on one of the upstream paths at a time, so it avoids duplicate packet forwarding. The MoFRR logic picks the primary and secondary UMH, and it normally bases that on unicast routing to find loop-free candidates. Section 4 covers this. ✨

Heads up, though: the impact of extra data on the network gets softened when tree membership is densely populated. And when part of the network already has redundant data flowing, join latency for new members drops, because a tree Merge Point is probably not far away. πŸ’•

3. Determination of the Secondary UMH πŸ‘‘

The secondary UMH is a Loop-Free Alternate (LFA) as per [RFC5286]. πŸ’…

3.1. ECMP-Mode MoFRR

If the IGP installs two ECMP paths to the source, then as per [RFC5286] the LFA is a primary next-hop. If the multicast tree is enabled for ECMP-mode MoFRR, the router installs the paths as the primary and secondary UMHs. Before the failure, only packets received from the primary UMH path get processed, while packets received from the secondary UMH get dropped. πŸ™Œ

The selected primary UMH SHOULD be the same as it would be if the MoFRR extension were not enabled. 🫢

If more than two ECMP paths exist, one is selected as primary and another as secondary UMH. The selection of the primary and secondary is a local decision. Information from the IGP link-state topology could be leveraged to optimize this selection, so the primary and secondary paths are maximally divergent and don't lead to the same upstream node. Note that MoFRR does not restrict the number of UMH paths that get joined. Implementations may use as many paths as are configured. πŸ”₯

3.2. Non-ECMP-Mode MoFRR

A router X configured for non-ECMP-mode MoFRR for a multicast tree joins a primary path to its primary UMH and a secondary path to its LFA UMH. To prevent control-plane loops, a router MUST stop joining the secondary UMH if this UMH is the only member in the OIF list. πŸ›‘

To illustrate why this rule exists, let's look at the example in Figure 3. If two Provider Edge routers, PE1 and PE2, have received an IGMP request for a multicast tree, they'll both join the primary path on their plane and a secondary path to the neighbor PE. If their receivers leave at the same time, it's possible for the multicast tree on PE1 and PE2 to never get deleted, because the PEs keep refreshing each other via the secondary path joins. (Remember that a secondary path join is not distinguishable from a primary join.) πŸ™ˆ

4. Upstream Multicast Hop Selection 🧚

An Upstream Multicast Hop (UMH) is a candidate next-hop that can be used to reach the root of the tree. This is normally based on unicast routing to find loop-free candidate(s). With MoFRR procedures, we select a primary and a backup UMH. The procedures for determining the UMH are different for PIM and mLDP. ✨

4.1. PIM

The UMH selection in PIM is also known as the Reverse Path Forwarding (RPF) procedure. Based on a unicast route lookup on either the source address or the Rendezvous Point (RP) [RFC4601], an upstream interface is selected for sending the PIM Joins/Prunes AND accepting the multicast packets. The interface the packets are received on is used to pass or fail the RPF check. If packets are received on an interface that wasn't selected as the primary by the RPF procedure, the packets are discarded. 🌊

4.2. mLDP

okay so mLDP does UMH selection too, and it also leans on unicast routing πŸ—ΊοΈ but here's the twist: it's not about which interface the packet shows up on πŸ™…β€β™€οΈ it's about MPLS labels 🏷️ So an upstream Label Switching Router (LSR) gets elected using the procedures in [RFC6388] πŸ¦‹ The elected upstream LSR for a Label Switched Path (LSP) gets its own unique local MPLS label allocated. Then multicast packets only get forwarded if their MPLS label matches the one that was allocated for that LSP's (primary) upstream LSR. Label match or bust πŸ’…βœ¨

5. Detecting Failures

okay bestie, once both paths are up, the next big question is how the router notices the primary path died so it knows when to hop over to the backup 🚨 This is a local thing, but this section explores a few options πŸ”

The first option (and honestly the simplest) is to detect a failure on the local interface, the same way unicast Fast Reroute does it πŸ”Œ Detection can happen through loss of signal or loss of probing packets (e.g., BFD) πŸ“‘ You can mix this one with the other options below 🫢 And just like unicast fast reroute, 50 msec switchover is possible ⚑

A second option is comparing the packets coming in on the primary and secondary streams, but only forwarding one of them: the first one received, no matter which interface it came in on 🏁 Zero packet loss is possible for RTP-based streams 🀯 that's literally iconic

A third option assumes a minimum known packet rate for a given data stream πŸ“Š If a packet doesn't show up on the primary RPF within that time window, the router assumes the primary path failed and switches to the secondary RPF interface πŸ”„ 50 msec switchover may be possible for high-rate streams (e.g., IPTV where SD video has a continuous inter-packet gap of about 3 msec) πŸ“Ί but in general the delay depends on the rate of the multicast stream 🌸

A fourth option uses the huge speed-ups in IGP convergence πŸš€ When the IGP withdraws the primary path to the source, the MoFRR-enabled router switches to the backup path and changes its UMH to the secondary UMH πŸ‘‘ Since the secondary path is already in place, and assuming it's disjoint from the primary path, convergence doesn't have to wait for building a new tree, so the times are smaller 🧚 Sub-second to sub-200 msec switchover should be possible πŸ’–

6. MoFRR Applicability to Dual-Plane Topology

okay so MoFRR applicability depends on the topology πŸ—ΊοΈ It's the same as LFA FRR, which is discussed in [RFC6571] πŸ¦‹

The next section is going to talk about MoFRR in dual-plane network topologies ✨

MoFRR works best in dual-plane topologies, like the figures below πŸ’œ MoFRR can be enabled on any router in the network 🌐 In the figures below, MoFRR is shown enabled on the Provider Edge (PE) routers, just to show one way it can be deployed πŸŽ€

                        S
                  P    / \ P
                      /   \
               ^    G1     R1  ^
               P    /       \  P
                   /         \
                  G2----------R2   ^
                  | \         | \  P
              ^   |  \        |  \
              P   |   G3----------R3
                  |    |      |    |
                  |    |      |    | ^
                  G4---|------R4   | P
                ^   \  |        \  |
                P    \ |         \ |
                      G5----------R5
                  ^   |           | ^
                  P   |           | P
                      |           |
                     Gi           Ri
                      \ \__    ^  /|
                       \   \   S1/ | ^
                      ^ \  ^\   /  |P2
                      P1 \ S2\_/__ |
                          \   /   \|
                           PE1     PE2

   P = Primary path
   S = Secondary path

       Figure 1: Two-Plane Network Design

so this design has two planes, a primary plane and a secondary plane, and they're fully disjoint all the way into the POPs πŸ™οΈ This two-plane design is super common in service provider networks because it gets rid of single points of failure in their core network πŸ’ͺ The links marked P are the normal (primary) path where the PIM Joins flow from the POPs toward the source 🧭 Multicast streams, especially for the densely watched channels, usually flow along both planes anyway πŸ“Ί

The only change MoFRR adds is on the links marked S, where the PE routers join a secondary path to their secondary ECMP UMH πŸ”€ So each PE gets two copies of the same stream, one from the primary plane and one from the secondary plane πŸ‘―β€β™€οΈ Because of normal UMH behavior, the stream received over the primary path is accepted and forwarded to the downstream receivers βœ… The copy from the secondary UMH gets discarded πŸ—‘οΈ

When a router detects a routing failure on the path to its primary UMH, it switches to the secondary UMH and accepts packets for that stream πŸ” If the failure gets repaired, the router may switch back πŸ’… The primary and secondary UMHs only have local context, not end-to-end context 🫧

As you can see, MoFRR gets faster convergence by pre-building the secondary multicast tree and receiving traffic on that secondary path πŸƒβ€β™€οΈπŸ’¨ The example above is the simple case where each PE has two ECMP paths toward the source, one along the primary plane and one along the secondary πŸ¦‹ When the topology is asymmetric or is a ring, this ECMP nature doesn't hold, and you need extra rules to decide when and where to join the secondary path πŸŒ€

MoFRR is really appealing in these topologies for a few reasons 🫢

  1. Ease of deployment and simplicity: the functionality is only required on the PE devices, although it may be configured on all routers in the topology. Furthermore, each PE device can be enabled separately; there is no need for network-wide coordination in order to deploy MoFRR. Interoperability testing is not required as there are no PIM or mLDP protocol changes. 🧁
  2. End-to-end failure detection and recovery: any failure along the path from the source to the PE can be detected and repaired with the secondary disjoint stream. (See the second, third, and fourth options in Section 5.) πŸ›Ÿ
  3. Capacity efficiency: as illustrated in the previous example, the multicast trees corresponding to IPTV channels cover the backbone and distribution topology in a very dense manner. As a consequence, the secondary path grafts onto the normal multicast trees (i.e., trees signaled by PIM or mLDP without the MoFRR extension) at the aggregation level and hence does not demand any extra capacity either on the distribution links or in the backbone. The secondary path simply uses the capacity that is normally used, without any duplication. This is different from conventional FRR mechanisms that often duplicate the capacity requirements when the backup path crosses links/nodes that already carry the primary/normal tree, and thus twice as much capacity is required. πŸ’Έ
  4. Loop-free: the secondary path join is sent on an ECMP disjoint path. By definition, the neighbor receiving this request is closer to the source and hence will not cause a loop. πŸ”πŸš«

this topology we just analyzed is super frequent and can be modeled like Figure 2 πŸŽ€ The PE has two ECMP disjoint paths to the source, and each ECMP path uses a disjoint plane of the network πŸ’œ

                        Source
                        /    \
                    Plane1  Plane2
                       |      |
                       A1    A2
                         \  /
                          PE

   Figure 2: PE is Dual-Homed to Dual-Plane Backbone

another frequent one is in Figure 3 🧚 PEs are grouped by pairs, and in each pair, each PE connects to a different plane πŸͺž Each PE has one single shortest path to a source (via its connected plane), so there's no ECMP like in Figure 2 😭 But there's still a way to get MoFRR benefits, because each PE can offer a disjoint secondary path to the PE on the other plane (via the disjoint path) 🌈

The MoFRR secondary neighbor selection process needs an extension here, since you can't just rely on an ECMP path as the secondary neighbor πŸ™ˆ This extension is called non-ECMP-mode MoFRR and it's described in Section 3.2 πŸ“–

                        Source
                        /    \
                    Plane1  Plane2
                       |      |
                       A1    A2
                       |      |
                      PE1----PE2

  Figure 3: PEs Are Connected in Pairs to Dual-Plane Backbone

7. Other Topologies

okay as mentioned in Section 6, MoFRR works best in dual-plane topologies 🫢 If MoFRR gets applied to non-dual-plane networks, the secondary path might be hit by the same failure that hit the primary path 😬 In that case, there's no guarantee that the backup path gives you uninterrupted traffic flow without loss or duplication πŸ’€

8. Capacity Planning for MoFRR

the previous section described two very frequent designs (Figures 2 and 3) that give maximum MoFRR benefits πŸ‘‘

Designers with topologies different from Figures 2 and 3 can still benefit from MoFRR, thanks to capacity planning tools πŸ› οΈ

These tools can simulate each PE's ability to build two disjoint branches of the same tree 🧠 The simulation could cover hundreds of PEs and hundreds of sources 🌟

This gives you an assessment of the MoFRR protection coverage of a given network, for a set of sources πŸ“Š

If the protection coverage looks insufficient, the designer can use the tool to optimize the topology (add links, change IGP metrics) πŸ”§βœ¨

9. PE Nodes

many Service Providers design their topology so that PEs have disjoint paths to the multicast sources 🌐 MoFRR takes advantage of these disjoint paths without any PIM or mLDP protocol modification πŸ™Œ Interoperability testing is therefore not required 🧾 In such topologies, MoFRR only needs to be deployed on the PE devices, and each PE device can be enabled one by one πŸ¦‹

10. Other Applications ✨

okay so all the examples in this doc are about PE devices πŸ’…, but it's pretty clear MoFRR could be turned on for aggregation or core routers too πŸ¦‹

MoFRR can be a big deal in data center networks 🏒🫢 With cheaper Ethernet and more ports packed into every router, there's more meshed connectivity than ever. If you've got a three-level setup with access, distribution, and core layers, there's a ton of affordable bandwidth linking those layers together. That means more ECMP paths at multiple layers, which gives you several layers of redundancy protecting against link and node failures at each one, for minimal redundancy cost πŸ€‘βœ¨

the redundancy cost stays low because only one packet is forwarded on each link along the primary and secondary data paths. so no data gets duplicated on any link, and you still get make-before-break protection for a very small cost πŸŽ€

⚠️ a MoFRR router only accepts packets from the primary path and throws away packets from the secondary path. because of that, management tools like ping and mtrace won't work when you try to verify the secondary path πŸ™ˆ

the MoFRR principle may also be applied to MVPNs 🌈

11. Security Considerations πŸ”πŸ’€

okay this part is serious bestie 😭 there are no security considerations for this design beyond what's already covered in the main PIM specification [RFC4601] and the mLDP specification [RFC6388]. so if you're worried about security, go read those two specs first πŸ“–πŸ«Ά

12. References πŸ“š

12.1. Normative References

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119,
           DOI 10.17487/RFC2119, March 1997,
           <http://www.rfc-editor.org/info/rfc2119>.

[RFC5286]  Atlas, A., Ed., and A. Zinin, Ed., "Basic Specification
           for IP Fast Reroute: Loop-Free Alternates", RFC 5286,
           DOI 10.17487/RFC5286, September 2008,
           <http://www.rfc-editor.org/info/rfc5286>.

12.2. Informative References

[RFC4601]  Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
           "Protocol Independent Multicast - Sparse Mode (PIM-SM):
           Protocol Specification (Revised)", RFC 4601,
           DOI 10.17487/RFC4601, August 2006,
           <http://www.rfc-editor.org/info/rfc4601>.

[RFC6388]  Wijnands, IJ., Ed., Minei, I., Ed., Kompella, K., and B.
           Thomas, "Label Distribution Protocol Extensions for Point-
           to-Multipoint and Multipoint-to-Multipoint Label Switched
           Paths", RFC 6388, DOI 10.17487/RFC6388, November 2011,
           <http://www.rfc-editor.org/info/rfc6388>.

[RFC6571]  Filsfils, C., Ed., Francois, P., Ed., Shand, M., Decraene,
           B., Uttaro, J., Leymann, N., and M. Horneffer, "Loop-Free
           Alternate (LFA) Applicability in Service Provider (SP)
           Networks", RFC 6571, DOI 10.17487/RFC6571, June 2012,
           <http://www.rfc-editor.org/info/rfc6571>.

Acknowledgments 🫢

thanks to Dave Oran and Alvaro Retana for reviewing and commenting on this doc πŸ’–

the authors especially want to shout out Dino Farinacci, John Zwiebel, and Greg Shepherd for kicking off the MoFRR concept πŸ‘‘βœ¨

Contributors πŸŽ€

here's the list of contributors, in alphabetical order πŸ’…

Dino Farinacci
Email: farinacci@gmail.com

Wim Henderickx
Alcatel-Lucent
Copernicuslaan 50
Antwerp  2018
Belgium
Email: wim.henderickx@alcatel-lucent.com

Uwe Joorde
Deutsche Telekom
Dahlweg 100
D-48153 Muenster
Germany
Email: Uwe.Joorde@telekom.de

Nicolai Leymann
Deutsche Telekom
Winterfeldtstrasse 21
Berlin  10781
Germany
Email: N.Leymann@telekom.de

Jeff Tantsura
Ericsson
300 Holger Way
San Jose, CA  95134
United States
Email: jeff.tantsura@ericsson.com

Authors' Addresses πŸ¦‹

Apoorva Karan
Cisco Systems, Inc.
3750 Cisco Way
San Jose, CA  95134
United States

Email: apoorva@cisco.com


Clarence Filsfils
Cisco Systems, Inc.
De kleetlaan 6a
Diegem  BRABANT 1831
Belgium

Email: cfilsfil@cisco.com


IJsbrand Wijnands (editor)
Cisco Systems, Inc.
De Kleetlaan 6a
Diegem  1831
Belgium

Email: ice@cisco.com


Bruno Decraene
Orange
38-40 rue du General Leclerc
Issy Moulineaux  Cedex 9, 92794
France

Email: bruno.decraene@orange.com

that's the whole MoFRR tea, bestie πŸŒˆπŸ’– you're officially up to date on it ✨

πŸ“¦ where this page comes from