<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" docName="draft-ietf-pim-mofrr-tilfa-14" number="9860" consensus="true" category="info" ipr="trust200902" obsoletes="" updates="" xml:lang="en" symRefs="true" sortRefs="true" tocInclude="true" version="3">


  <front>
    <title abbrev="MoFRR Based on TI-LFA">Multicast-Only Fast Reroute (MoFRR) Based on
    Topology Independent Loop&nbhy;Free Alternate (TI-LFA) Fast Reroute</title>
    <seriesInfo name="RFC" value="9860"/>
    <author initials="Y." surname="Liu" fullname="Yisong Liu">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>liuyisong@chinamobile.com</email>
      </address>
    </author>
    <author initials="M." surname="McBride" fullname="Mike McBride">
      <organization abbrev="Futurewei">Futurewei Inc.</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>michael.mcbride@futurewei.com</email>
      </address>
    </author>
    <author initials="Z." surname="Zhang" fullname="Zheng (Sandy) Zhang">
      <organization abbrev="ZTE">ZTE Corporation</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>zhang.zheng@zte.com.cn</email>
      </address>
    </author>
    <author initials="J." surname="Xie" fullname="Jingrong Xie">
      <organization abbrev="Huawei">Huawei Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>xiejingrong@huawei.com</email>
      </address>
    </author>
    <author initials="C." surname="Lin" fullname="Changwang Lin">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>
    <date year="2025" month="October"/>
    <area>RTG</area>
    <workgroup>pim</workgroup>

<keyword>PIM</keyword>
<keyword>MoFRR</keyword>
<keyword>LFA</keyword>
<keyword>TI-LFA</keyword>
<keyword>SR-MPLS</keyword>
<keyword>SRv6</keyword>
<keyword>RPF Vector</keyword>
<keyword>Join attribute</keyword>

    <abstract>
      <t>
   This document specifies the use of Topology Independent Loop-Free
   Alternate (TI-LFA) mechanisms with Multicast-only Fast Reroute
   (MoFRR) for Protocol Independent Multicast (PIM). The TI-LFA
   provides Fast Reroute (FRR) protection for unicast traffic in IP networks
   by precomputing backup paths that avoid potential failures. By
   integrating TI-LFA with MoFRR, this document extends the benefits of FRR
   mechanisms to multicast traffic, enabling enhanced
   resilience and minimized packet loss in multicast networks. The
   document outlines an optional approach to implement TI-LFA in
   conjunction with MoFRR for PIM, ensuring that multicast traffic is
   rapidly rerouted in the event of a failure.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
   Multicast-only Fast Reroute (MoFRR), as defined in <xref target="RFC7431"
   format="default"/>, offers a mechanism to reduce multicast packet loss in
   the event of node or link failures by introducing simple enhancements to
   multicast routing protocols, such as Protocol Independent Multicast (PIM)
   <xref target="RFC7761" format="default"/>. However, the MoFRR mechanism
   <xref target="RFC7431"/>, which selects the secondary multicast next hop
   based solely on the Loop-Free Alternate (LFA) FRR defined in <xref
   target="RFC7431" format="default"/>, has limitations in certain multicast
   deployment scenarios (see <xref target="sect-2" format="default"/>).</t>
      <t>
   This document introduces a new mechanism for MoFRR using FRR for Topology
   Independent Loop-Free Alternate (TI-LFA) <xref target="RFC9855" format="default"/>.
   Unlike conventional methods, TI-LFA is independent of network
   topology, enabling broader coverage across diverse network
   environments. This mechanism is applicable to PIM networks, including cases where PIM
  operates directly over IP in Segment Routing (SR) networks.</t>
      <t>
   The TI-LFA mechanism is designed for standard link-state Interior
   Gateway Protocol (IGP) shortest path and SR scenarios. For each
   destination advertised by the IGP in a network, TI-LFA pre-installs
   a backup forwarding entry for the protected destination, which is ready to be
   activated upon the detection of a link failure used to reach that
   destination. This document leverages the backup path computed by TI-LFA
   through the IGP as a secondary Upstream Multicast Hop (UMH) for
   PIM. By sending PIM secondary Join messages hop by hop on the TI-LFA
   backup path, a FRR backup path can be created for PIM
   multicast.</t>
      <t>
   The techniques described in this document are limited to protecting
   links and nodes within a link-state IGP area. Protecting domain exit
   routers and/or links attached to other routing domains is beyond the
   scope of this document. All the Segment Identifiers (SIDs) required
   are contained within the Link State Database (LSDB) of the IGP.</t>
      <t>
   The approach does not alter the existing management and operation of
   LFA, TI-LFA, and Remote LFA (RLFA) <xref target="RFC7916" format="default"/> <xref target="RFC8102" format="default"/>  <xref target="RFC9855" format="default"/>. Additionally,
   during post-failure reconvergence, micro-loops <xref target="RFC5715" format="default"/> may form
   due to transient forwarding inconsistencies across routers. PIM
   micro-loop prevention is out of scope for this document.</t>
      <t>
   Note that this document introduces an optional approach for backup
   Join paths, designed to enhance the protection scope of existing
   multicast systems. It is fully compatible with current protocol
   implementations and does not necessitate any changes to the
   protocols or forwarding functions on intermediate nodes. All nodes
   along the backup Join paths must support the Reverse Path Forwarding (RPF) Vector Attribute as
   defined in <xref target="RFC5496" format="default"/> and <xref target="RFC7891" format="default"/>. If there is a choice between
   vector and non-vector Join messages on the intermediate nodes, the
   non-vector option should be prioritized, which implies that
   protection paths will remain inactive. This document does not modify
   the handling of conflicts in PIM Join messages. For guidance on
   conflicts in Join attributes, please refer to 
   <xref target="RFC5384" section="3.3.3"/>.</t>
      <section anchor="sect-1.1" numbered="true" toc="default">
        <name>Terminology</name>
        <t>
   This document utilizes the terminology as defined in <xref target="RFC7431" format="default"/> and
   incorporates the concepts established in <xref target="RFC7490" format="default"/>. The definitions
   of individual terms are not reiterated within this document.</t>
      </section>
    </section>
    <section anchor="sect-2" numbered="true" toc="default">
      <name>Problem Statement</name>
      <section anchor="sect-2.1" numbered="true" toc="default">
        <name>LFA for MoFRR</name>
        <t>
   <xref target="RFC7431" section="3"/> specifies that a secondary UMH in PIM
   for MoFRR is a Loop-Free Alternate (LFA). However, the conventional LFA
   mechanism requires that at least one neighbor's next hop to the destination
   node is a loop-free next hop. Due to existing limitations of the LFA
   mechanism in network deployments, such as topology dependency and
   incomplete destination coverage, the LFA mechanism can only be deployed in
   certain network topology environments. In specific network topologies, the
   secondary UMH cannot be computed in PIM for MoFRR, preventing PIM from
   establishing a standby multicast tree, and thus preventing the
   implementation of MoFRR protection. Consequently, the MoFRR functionality
   <xref target="RFC7431" format="default"/> in PIM is applicable only in
   network topologies where LFA is feasible.</t>
        <t>
   The limitations of the MoFRR applicability <xref target="RFC7431" format="default"/> can be
   illustrated using the example network depicted in <xref target="ure-example-network-topology"/>. In this
   example, the metric of the R1-R4 link is 20, the metric of the R5-R6
   link is 100, and the metrics of the other links are 10. All link
   metrics are bidirectional.</t>
        <t>
   For multicast source S1 and receiver R, the primary path of the PIM
   Join packet is R3-&gt;R2-&gt;R1, and the secondary path is R3-&gt;R4-&gt;R1,
   which corresponds to the LFA path of unicast routing. In this
   scenario, MoFRR <xref target="RFC7431" format="default"/> operates effectively.</t>
        <t>
   For multicast source S2 and receiver R, the primary path of the PIM Join
   packet is R3-&gt;R2. However, an LFA does not exist. If R3 sends the packet
   to R4, R4 will forward it back to R3 because the IGP shortest path from R4
   to R1 is R4-&gt;R3-&gt;R2. In this case, MoFRR <xref target="RFC7431"
   format="default"/> cannot calculate a secondary UMH. Similarly, for
   multicast source S3 and receiver R, the MoFRR mechanism <xref
   target="RFC7431" format="default"/> is ineffective.</t>
        <figure anchor="ure-example-network-topology">
          <name>Example Network Topology</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
              10           20
         [S1]----(R1)-------------(R4)
                  |                |
                  |                |
                  |10              |10
              10  |                |
         [S2]----(R2)-------------(R3)----[R]
                  |        10      |   10
                  |                |
                  |10              |10
              10  |                |
         [S3]----(R5)-----(R6)----(R7)
                      100      10
]]></artwork>
        </figure>
      </section>
      <section anchor="sect-2.2" numbered="true" toc="default">
        <name>TI-LFA for MoFRR</name>
        <t>
   The alternate path provided by the TI-LFA mechanism is represented
   as a segment list, which includes the Node SID of the P-space node
   and the Adjacency SIDs of the links between the P-space and Q-space
   nodes. When a remote PQ node exists in both P-space and Q-space, the
   segment list requires only the PQ node's Node SID.</t>
      <t>
   PIM can look up the corresponding node's IP address in the unicast
   route base according to the Node SID and the IP addresses of the
   endpoints of the corresponding link in the unicast route base
   according to the Adjacency SIDs. However, multicast protocol packets
   cannot be directly forwarded along the path of the segment list.</t>
      <t>
   To establish a standby multicast tree, PIM Join messages need to be
   transmitted hop by hop. However, not all nodes and links on the unicast
   alternate path are included in the segment list. If PIM protocol packets
   are transmitted solely in unicast mode, they effectively traverse the
   unicast tunnel like unicast traffic and do not pass through the
   intermediate nodes of the tunnel. Consequently, the intermediate nodes on
   the alternate path cannot forward multicast traffic because they lack PIM
   state entries. PIM must create entries on each device hop by hop,
   generating an incoming interface and an outgoing interface list, to form a
   complete end-to-end multicast tree for forwarding multicast
   traffic. Therefore, simply sending PIM Join packets using the segment list,
   as done with unicast traffic, is insufficient to establish a standby
   multicast tree.</t>
      </section>
    </section>
    <section anchor="sect-3" numbered="true" toc="default">
      <name>A Solution</name>
      <section anchor="sect-3.1" numbered="true" toc="default">
        <name>Overview</name>
      <t>
   A secondary UMH serves as a candidate next hop that can be used to
   reach the root of a multicast tree. In this document, the secondary
   UMH is derived from unicast routing, utilizing the segment list
   computed by TI-LFA.</t>
      <t>
   The path information from the segment list is incorporated into the
   PIM packets to guide hop-by-hop RPF selection. The IP address
   corresponding to the Node SID can be used as the segmented root
   node, while the IP addresses of the interfaces at both endpoints of
   the link associated with the Adjacency SID can be used as the local
   upstream interface and upstream neighbor.</t>
      <t>
   <xref target="RFC5496" format="default"/> defines the PIM RPF Vector Attribute, which can carry the
   node's IP address corresponding to the Node SID. Additionally,
   <xref target="RFC7891" format="default"/> defines the Explicit RPF Vector, which can carry the
   peer's IP address corresponding to the Adjacency SID.</t>
      <t>
   For instance, in the network illustrated in <xref
   target="ure-example-network-topology"/>, the secondary path for the PIM
   Join packet towards multicast source S2 cannot be computed by MoFRR <xref
   target="RFC7431" format="default"/>, as previously described. Using
   TI-LFA, R3 sends the packet to R4 while including an RPF Vector that
   contains the IP address of R1, which serves as R3's PQ node for the
   protected R3-R2 link. R4 then forwards the packet to R1 via the R1-R4 link
   according to the unicast route associated with the RPF Vector. R1
   subsequently forwards the packet to R2, thus establishing the secondary
   path R3-&gt;R4-&gt;R1-&gt;R2.</t>
        <t>
   Additionally, for multicast source S3 and receiver R, the primary
   path of the PIM Join packet is R3-&gt;R2-&gt;R5. Using TI-LFA, R3 sends
   the PIM Join packet to R7 while including two RPF Vectors:</t>
        <ul spacing="normal">
          <li>
            <t>The first RPF Vector contains the IP address of R6, which serves
      as R3's P-node for the protected R3-R2 link.</t>
          </li>
          <li>
            <t>The second RPF Vector contains the interface IP addresses of R6
      and R5, which serve as R3's Q-node for the protected R3-R2 link.</t>
          </li>
        </ul>
        <t>
   The first RPF Vector guides the PIM Join path through R3-&gt;R7-&gt;R6,
   while the second RPF Vector guides the PIM Join path through R6-&gt;R5,
   thereby establishing the secondary path R3-&gt;R7-&gt;R6-&gt;R5.</t>
        <t>
   This document leverages the above RPF Vector standards, obviating
   the need for PIM protocol extensions. This approach allows the
   establishment of a standby multicast tree based on the segment list
   calculated by TI-LFA, thereby providing comprehensive MoFRR
   protection for multicast services across diverse network
   environments.</t>
      </section>
      <section anchor="sect-3.2" numbered="true" toc="default">
        <name>Procedure</name>
      <t>
   Consider a segment list calculated by TI-LFA as (NodeSID(A),
   AdjSID(A-B)). Node A belongs to the P-space, and node B belongs to
   the Q-space. The IP address corresponding to NodeSID(A) can be
   retrieved from the local LSDB of the IGP and assumed
   to be IP-a. Similarly, the IP addresses of the two endpoints of the
   link corresponding to AdjSID(A-B) can also be retrieved from the
   local LSDB and assumed to be IP-La and IP-Lb.</t>
      <t>
   Within the PIM process, IP-a is treated as the standard RPF Vector
   Attribute and added to the PIM Join packet. IP-La is considered the
   local address of the incoming interface, and IP-Lb is regarded as
   the address of the upstream neighbor. Consequently, IP-Lb can be
   included in the PIM Join packet as the Explicit RPF Vector
   Attribute.</t>
      <t>
   The PIM protocol initially selects the RPF incoming interface and
   upstream neighbor towards IP-a and proceeds hop by hop to establish
   the PIM standby multicast tree until reaching node A. At node A, IP-
   Lb is treated as the PIM upstream neighbor. Node A identifies the
   incoming interface in the unicast routing table based on IP-Lb, and
   IP-Lb is used as the RPF upstream address for the PIM Join packet
   directed towards node B.</t>
      <t>
   Upon receiving the PIM Join packet at node B, the PIM protocol,
   finding no additional RPF Vector Attributes, selects the RPF
   incoming interface and upstream neighbor towards the multicast
   source directly. The protocol then continues hop by hop to
   establish the PIM standby multicast tree, extending to the router
   directly connected to the source.</t>
        <t>
   When a remote PQ node exists in both P-space and Q-space, the
   processing can be simplified to involve only node A.</t>
      </section>
    </section>
    <section anchor="sect-4" numbered="true" toc="default">
      <name>Illustration</name>
      <t>
   This section provides an illustration of MoFRR based on TI-LFA. The
   example topology is depicted in <xref target="ure-example-topology"/>. The metric for the R3-R4
   link is 100, while the metrics for the other links are 10. All link
   metrics are bidirectional.</t>
      <figure anchor="ure-example-topology">
        <name>Example Topology</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
                  <-----Primary Path--- (S,G) Join

          [S]---(R1)---(R2)******(R6)-------[R]
                         |        |
                  <---   |        |   |
                     |   |        |   |
                     |   |       (R5) |
                     |   |        |   |
                     |   |        |   |
                     |   |        |   |
                     | (R3)------(R4) |
                     |                |
                     --Secondary Path--
]]></artwork>
      </figure>
      <t>
	The IP addresses and SIDs involved in the MoFRR calculation are
	configured as follows:</t>
	
<t>IPv4 data plane (SR-MPLS <xref target="RFC8660"/>):</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
  Node    IP Address   Node SID
  R4      IP4-R4       Label-R4

  Link    IP Address   Adjacency SID
  R3->R4  IP4-R3-R4    Label-R3-R4
  R4->R3  IP4-R4-R3    Label-R4-R3
]]></artwork>
<t>IPv6 data plane (SRv6 <xref target="RFC8986"/>):</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
  Node    IP Address   Node SID (End)
  R4      IP6-R4       SID-R4

  Link    IP Address   Adjacency SID (End.X)
  R3->R4  IP6-R3-R4    SID-R3-R4
  R4->R3  IP6-R4-R3    SID-R4-R3
]]></artwork>
      
      <t>The primary path of the PIM Join packet is R6-&gt;R2-&gt;R1, and the
      secondary path is R6-&gt;R5-&gt;R4-&gt;R3-&gt;R2-&gt;R1.  However, the
      conventional LFA does not function properly for the secondary path
      because the shortest path to R2 from R5 (or from R4) still traverses the
      R6-R2 link. In this scenario, R6 must calculate the secondary UMH using
      the proposed MoFRR method based on TI-LFA.</t>
      <t>
   According to the TI-LFA algorithm, the P-space and Q-space are illustrated
   in <xref target="ure-p-space-and-q-space"/>. The TI-LFA repair path
   consists of the Node SID of R4 and the Adjacency SID of R4-&gt;R3. On the
   Segment Routing over MPLS (SR-MPLS) data plane, the repair segment list is
   (Label-R4, Label-R4-R3). On the Segment Routing over IPv6 (SRv6) data
   plane, the repair segment list is (SID-R4, SID-R4-R3).</t>
      <figure anchor="ure-p-space-and-q-space">
        <name>P-Space and Q-Space</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
                        ........
                        .      .
              [S]---(R1)---(R2)******(R6)---[R]
                        .   |  .     |
                        .   |  .  +++|++++
                        .   |  .  +  |   +
                        .   |  .  + (R5) +
                        .   |  .  +  |   +
                        .   |  .  +  |   +
                        .   |  .  +  |   +
                        . (R3)------(R4) +
                        .      .  +      +
                        ........  ++++++++
                        Q-Space    P-Space
]]></artwork>
      </figure>
      <t>
   In the PIM process, the IP addresses associated with the repair
   segment list are retrieved from the IGP LSDB.</t>
      <t>
   On the IPv4 data plane, the Node SID Label-R4 corresponds to IP4-R4,
   which will be carried in the RPF Vector Attribute. The Adjacency SID
   Label-R4-R3 corresponds to the local address IP4-R4-R3 and the
   remote peer address IP4-R3-R4, with IP4-R3-R4 carried in the
   Explicit RPF Vector Attribute.</t>
      <t>
   On the IPv6 data plane, the End SID SID-R4 corresponds to IP6-R4,
   which will be carried in the RPF Vector Attribute. The End.X SID
   SID-R4-R3 corresponds to the local address IP6-R4-R3 and the remote
   peer address IP6-R3-R4, with IP6-R3-R4 carried in the Explicit RPF
   Vector Attribute.</t>

   <t>Subsequently, R6 installs the secondary UMH using these RPF Vectors.</t>

      <figure anchor="ure-forwarding-pim-join-packet-along-secondary-path-ipv4">
        <name>Forwarding PIM Join Packet Along Secondary Path (IPv4)</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
          +---------+
          |Type = 0 |
          |IP4-R4   |
          +---------+    +---------+
          |Type = 4 |    |Type = 4 |
          |IP4-R3-R4|    |IP4-R3-R4|
          +---------+    +---------+   No RPF Vector

       R6----->R5---->R4------------>R3----->R2---->R1
]]></artwork>
      </figure>
      <t>
   On the IPv4 data plane, the forwarding of the PIM Join packet along
   the secondary path is shown in <xref target="ure-forwarding-pim-join-packet-along-secondary-path-ipv4"/>.</t>
      <t>
   R6 inserts two RPF Vector Attributes in the PIM Join packet: IP4-R4
   of Type 0 (RPF Vector Attribute) and IP4-R3-R4 of Type 4 (Explicit
   RPF Vector Attribute). R6 then forwards the packet along the
   secondary path.</t>
      <t>
   When R5 receives the packet, it performs a unicast route lookup of
   the first RPF Vector IP4-R4 and sends the packet to R4.</t>
      <t>
   R4, being the owner of IP4-R4, removes the first RPF Vector from the
   packet and forwards it according to the next RPF Vector. R4 sends
   the packet to R3 based on the next RPF Vector IP4-R3-R4, as its PIM
   neighbor R3 corresponds to IP4-R3-R4.</t>
      <t>
   When R3 receives the packet, as the owner of IP4-R3-R4, it removes
   the RPF Vector. The packet, now devoid of RPF Vectors, is forwarded
   to the source through R3-&gt;R2-&gt;R1 based on unicast routes.</t>
      <t>
   After the PIM Join packet reaches R1, a secondary multicast tree,
   R1-&gt;R2-&gt;R3-&gt;R4-&gt;R5-&gt;R6, is established hop by hop for (S, G) using
   MoFRR based on TI-LFA.</t>
      <figure anchor="ure-forwarding-pim-join-packet-along-secondary-path-ipv6">
        <name>Forwarding PIM Join Packet Along Secondary Path (IPv6)</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
          +---------+
          |Type = 0 |
          |IP6-R4   |
          +---------+    +---------+
          |Type = 4 |    |Type = 4 |
          |IP6-R3-R4|    |IP6-R3-R4|
          +---------+    +---------+   No RPF Vector

       R6----->R5---->R4------------>R3----->R2---->R1
]]></artwork>
      </figure>
      <t>
   On the IPv6 data plane, the forwarding of the PIM Join packet along
   the secondary path is illustrated in <xref target="ure-forwarding-pim-join-packet-along-secondary-path-ipv6"/>. The procedure is
   analogous to that of the IPv4 data plane.</t>
      <t>
   When a remote PQ node exists in both P-space and Q-space, the
   processing can be simplified to involve only the PQ node. In this
   case, only a single RPF Vector needs to be carried, and all other
   processing steps remain unchanged.</t>
    </section>
    <section anchor="sect-5" numbered="true" toc="default">
      <name>Management and Operational Considerations</name>
      <t>
   The management of the proposed approach is consistent with <xref
   target="RFC7916" format="default"/>.  However, in the operation of this
   approach, the node on the backup Join paths must have an independent
   configuration strategy for installing RPF Vector Attributes in the PIM Join
   packet and controlling the sending of this PIM Join message.</t>
    
   <t>All nodes on the backup Join paths must be able to parse the PIM Join
    message with the RPF Vector Attribute.  If the nodes do not understand the
    RPF Vector Attribute in the PIM Join packet, then they must discard the
    RPF Vector Attribute because failing to remove the RPF Vectors could cause
    upstream nodes to send the Join packet back towards these nodes causing
    loops.</t>

      <t>
   If an administrator is manually specifying the path that the Join messages
   need to be sent on, it is recommended that the administrator computes the
   path to include nodes that support the Explicit RPF Vector and check that
   the state is created correctly on each node along the path.  Tools like
   Mtrace <xref target="RFC8487" format="default"/> can be used for debugging
   and to ensure that the Join state is set up correctly.</t>
    </section>
    <section anchor="sect-6" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
   This document has no IANA actions.</t>
    </section>
    <section anchor="sect-7" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
   This document does not introduce additional security concerns. It
   does not change the security properties of PIM. For general PIM - Sparse Mode (PIM-SM)
   protocol security considerations, see <xref target="RFC7761" format="default"/>. The security
   considerations of LFA, RLFA, and MoFRR described in <xref target="RFC5286" format="default"/>,
   <xref target="RFC7490" format="default"/>, and <xref target="RFC7431" format="default"/> should apply to this document.</t>
      <t>
   When deploying TI-LFA, packets may be sent over nodes and links they
   were not transported through before, potentially raising the
   following security issues:</t>
      <ol spacing="normal" type="1"><li anchor="issue1">
          <t>Spoofing and false route advertisements</t>
          <ul spacing="normal">
            <li>
              <t>Dependencies of LFA/RLFA/TI-LFA on routing information</t>
              <ul spacing="normal">
                <li>
                  <t>LFAs depend on accurate routing information to determine
                  alternate paths. If an attacker can inject false routing
                  information (e.g., by spoofing link-state advertisements),
                  it could cause the network to select suboptimal or malicious
                  paths for LFAs.</t>
                </li>
                <li>
                  <t>RLFA and TI-LFA also depend on accurate routing
                  information, particularly for determining the tunneling
                  paths or explicit paths. False route advertisements could
                  mislead the network into using insecure or compromised
                  paths.</t>
                </li>
              </ul>
            </li>
          </ul>
        </li>
        <li anchor="issue2">
          <t>On-path attacks</t>
          <ul spacing="normal">
            <li>
              <t>Use of alternate paths</t>
              <ul spacing="normal">
                <li>
                  <t>By rerouting traffic through alternate paths, especially
          those that traverse multiple hops (as in RLFA and TI-LFA),
          the risk of on-path attacks increases if any of the
          intermediate routers on the alternate path are compromised.</t>
                </li>
                <li>
                  <t>TI-LFA, which uses explicit paths, might expose traffic to
          routers that were not originally part of the primary path,
          potentially allowing for interception or alteration of the
          traffic.</t>
                </li>
              </ul>
            </li>
          </ul>
        </li>
        <li anchor="issue3">
          <t>Confidentiality and integrity</t>
          <ul spacing="normal">
            <li>
              <t>Traffic encapsulation</t>
              <ul spacing="normal">
                <li>
                  <t>RLFA and TI-LFA involve encapsulating traffic, which may
          expose it to vulnerabilities if the encapsulation mechanisms
          are not secure. For instance, if IPsec or another secure
          encapsulation method is not used, an attacker might be able
          to intercept or alter the traffic in transit.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Protection of explicit paths</t>
              <ul spacing="normal">
                <li>
                  <t>TI-LFA relies on explicit paths that are typically
                  defined using SR. If these paths are not
                  properly protected, an attacker could manipulate the segment
                  list to reroute traffic through malicious nodes.</t>
                </li>
              </ul>
            </li>
          </ul>
        </li>
        <li anchor="issue4">
          <t>Increased attack surface</t>
          <ul spacing="normal">
            <li>
              <t>Extended topology</t>
              <ul spacing="normal">
                <li>
                  <t>By introducing LFA, RLFA, and TI-LFA, the network increases
          its reliance on additional routers and links, thereby
          expanding the potential attack surface. Compromise of any
          router in these alternate paths could expose traffic to
          unauthorized access or disruption.</t>
                </li>
              </ul>
            </li>
          </ul>
        </li>
      </ol>
      <t>
   To address security issues <xref target="issue1" format="none">1</xref> and
   <xref target="issue2" format="none">2</xref> mentioned above, control plane
   protocols need to provide security protection. To mitigate the risks
   associated with false route advertisements and on-path attacks, it is
   recommended to use secure routing protocols (e.g., OSPFv3 with IPsec, IS-IS
   HMAC-SHA256, or PIM with IPsec) that provide authentication and integrity
   protection for routing updates.</t>
      <t>
   To address security issues <xref target="issue3" format="none">3</xref> and <xref
   target="issue4" format="none">4</xref> mentioned above, these mechanisms need to run
   within a trusted network. The security of LFA, RLFA, and TI-LFA mechanisms
   heavily relies on the trustworthiness of the underlying routing
   infrastructure. As the solution described in the document is based on SR
   technology, readers should be aware of the security considerations related
   to this technology (see <xref target="RFC8402" format="default"/>) and its data
   plane instantiations (see <xref target="RFC8660" format="default"/>, <xref
   target="RFC8754" format="default"/>, and <xref target="RFC8986"
   format="default"/>).</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
<reference anchor="RFC9855" target="https://www.rfc-editor.org/info/rfc9855">
  <front>
      <title>Topology Independent Fast Reroute Using Segment Routing</title>
      <author initials="A." surname="Bashandy" fullname="Ahmed Bashandy">
         <organization>Individual</organization>
      </author>
      <author initials="S." surname="Litkowski" fullname="Stephane Litkowski">
         <organization>Cisco Systems</organization>
      </author>
      <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
         <organization>Cisco Systems</organization>
      </author>
      <author initials="P." surname="Francois" fullname="Pierre Francois">
         <organization>INSA Lyon</organization>
      </author>
      <author initials="B." surname="Decraene" fullname="Bruno Decraene">
         <organization>Orange</organization>
      </author>
      <author initials="D." surname="Voyer" fullname="Daniel Voyer">
         <organization>Bell Canada</organization>
      </author>
    <date month="October" year="2025"/>
  </front>
  <seriesInfo name="RFC" value="9855"/>
  <seriesInfo name="DOI" value="10.17487/RFC9855"/>
</reference>

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5286.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5384.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5496.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7431.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7490.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7761.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7891.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7916.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8660.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8754.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8986.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5715.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8102.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8487.xml"/>
      </references>
    </references>
    <section numbered="false" anchor="contributors" toc="default">
      <name>Contributors</name>

    <contact fullname="Mengxiao Chen">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>chen.mengxiao@h3c.com</email>
      </address>
    </contact>

    </section>
  </back>
</rfc>

