<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-duan-bess-mvpn-ipv6-infras-06"
     ipr="trust200902" updates="6514">
  <front>
    <title abbrev="MVPN in IPv6 Infrastructure">BGP MVPN in IPv6
    Infrastructure Networks: Problems and Solution Approaches</title>

    <author fullname="Fanghong Duan" initials="F." surname="Duan">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>
        </postal>

        <email>duanfanghong@huawei.com</email>
      </address>
    </author>

    <author fullname="Jingrong Xie" initials="J." surname="Xie">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <code/>

          <country/>
        </postal>

        <email>xiejingrong@huawei.com</email>
      </address>
    </author>

    <author fullname="Siyu Chen" initials="S." surname="Chen">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>
        </postal>

        <email>chensiyu27@huawei.com</email>
      </address>
    </author>

    <date day="24" month="May" year="2024"/>

    <abstract>
      <t>MVPN deployment faces some problems while used in provider's IPv6
      infrastructure networks. This document describes these problems, and
      corresponding solutions.</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in BCP 14
      <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when,
      they appear in all capitals, as shown here.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>BGP MVPN procedure is defined in <xref target="RFC6514"/>. As a
      mature MVPN technology, it has been accepted by most operators and
      vendors. In <xref target="RFC6515"/>, BGP MVPN is updated for IPv6
      infrastructure networks. However, the deployment of BGP MVPN in IPv6
      network still faces some problems. This document describes these
      problems and corresponding solutions.</t>
    </section>

    <section title="Terminology">
      <t>Readers of this document are assumed to be familiar with the
      terminology and concepts of the documents listed as Normative
      References.</t>
    </section>

    <section title="Problems and Solutions">
      <t/>

      <section title="Problems">
        <t>In <xref target="RFC6514"/> and <xref target="RFC6515"/>, the
        following issues are critical for IPv6 infrastructure scenarios while
        a non-segmented inter-AS P-tunnel is being established between root PE
        and its leaf PEs, of which the reason is that the Source AS field (4
        octets) of C-multicast route cannot hold a IPv6 address (16
        octets).</t>

        <t><list style="numbers">
            <t>In order to distinguish the C-multicast routes for a specific
            multicast c-flow (C-S, C-G) sent to different root PEs, section
            11.1.3 of <xref target="RFC6514"/> proposed that "To support
            non-segmented inter-AS tunnels, the Source AS field in the
            C-multicast route is set to value of the Originating Router's IP
            Address field of the found Intra-AS I-PMSI A-D route". However, in
            NLRI of C-multicast route, Source AS field is 4 octets in length,
            while the Originating Router's IP Address field of Intra-AS I-PMSI
            A-D route is 16 octets length in provider's IPv6 networks. The
            4-octet Source AS field cannot hold the Originating Router's IP
            Address in IPv6 network.</t>

            <t>In order to control the propagation of C-multicast routes
            between different ASes, section 11.2 of <xref target="RFC6514"/>
            proposed that "Instead of matching the RD and Source AS carried in
            the C-multicast route against the RD and Source AS of an Inter-AS
            I-PMSI A-D route, the ASBR should match it against the RD and the
            Originating Router's IP Address of the Intra-AS I-PMSI A-D
            routes". However, Source AS field in NLRI of C-multicast route
            cannot be translated to the Originating Router's IP Address of the
            Intra-AS I-PMSI A-D routes in provider's IPv6 networks, because of
            the mismatch of their field length.</t>
          </list></t>

        <t>In the process of evolution to IPv6, IPv4 and IPv6 infrastructure
        addresses will coexist in the provider's network. The following figure
        is an example of BGP MVPN evolution to IPv6.</t>

        <t><figure align="left"
            title="BGP MVPN Evolution to IPv6 Infrastructure">
            <artwork><![CDATA[ +-----------+           +---+     +---+           +-----------+
 | +-------+ |           |   |     |   |           | +-------+ |
 | | O-MVRF| |=BGP Peer4=|   |     |   |=BGP Peer4=| | O-MVRF| |
 | +-------+ |           |   |     |   |           | +-------+ |
 |           |           |   |     |   |           |           |
 |    PE1    |           |RR1| ... |RRn|           |    PE2    |
 |           |           |   |     |   |           |           |
 | +-------+ |           |   |     |   |           | +-------+ |
 | | N-MVRF| |=BGP Peer6=|   |     |   |=BGP Peer6=| | N-MVRF| |
 | +-------+ |           |   |     |   |           | +-------+ |
 +-----------+           +---+     +---+           +-----------+
 O-MVRF = Old Multicast VRF using IPv4 infrastructure addresses
 N-MVRF = New Multicast VRF using IPv6 infrastructure addresses  
]]></artwork>
          </figure>During the evolution process, IPv4 and IPv6 parallel BGP
        sessions are established between Provider Edge routers and route
        reflectors(RR). If the BGP MVPN routes are sent to all IPv4 and IPv6
        BGP peers without any control, the number of the PATHs of these routes
        will be doubled with each reflection while BGP ADD-PATH <xref
        target="RFC7911"/> procedure is enabled on route reflectors.</t>
      </section>

      <section title="Modification of C-Multicast Route NLRI">
        <t>The solution to distinguish the C-multicast routes sent to
        different root PEs is related to the way to distinguish UMH routes for
        a specific multicast source (C-S) sent from different root PEs, which
        the later is not a problem of IPv6 infrastructure specific. In <xref
        target="RFC6514"/>, it recommended that the RDs of root PEs of a same
        MVPN were configured distinctly to perform selective forwarding
        selection, which was broken by GTM procedures defined in <xref
        target="RFC7716"/> because the UMH routes sent from different root PEs
        through BGP SAFI 1 or SAFI 2 lack RD informations. There are also some
        MVPN deployment cases that the RDs of root PEs may be configuered with
        a same value for provisioning reasons. According to above description,
        whether the RDs of PEs of a MVPN are same or not are two different
        deployment cases. This document addresses the C-multicast routes
        distinguishing issue for both cases. How to distinguish UMH routes in
        the cases of root PEs with same RD is out of the scope of this
        document, because it is not IPv6 infrastructure specific.</t>

        <t>To support non-segmented inter-AS tunnels in IPv6 infrastructure
        network, the C-multicast route NLRI is redefined as follow:</t>

        <t><figure align="center">
            <artwork><![CDATA[      +-----------------------------------+
      |      RD   (8 octets)              |
      +-----------------------------------+
      |   Root Distinguisher (4 octets)   |
      +-----------------------------------+
      | Multicast Source Length (1 octet) |
      +-----------------------------------+
      |   Multicast Source (variable)     |
      +-----------------------------------+
      |  Multicast Group Length (1 octet) |
      +-----------------------------------+
      |  Multicast Group   (variable)     |
      +-----------------------------------+]]></artwork>
          </figure>In the above figure, the Root Distinguisher field replaces
        the Source As field defined in <xref target="RFC6514"/>. When
        constructing a C-multicast route, leaf PE follows the following
        specification:</t>

        <t><list style="numbers">
            <t>For the cases of IPv4 infrastructure or Intra-AS P-tunnel
            establishment in IPv6 infrastructure, the Root Distinguisher field
            MUST be treated as Source AS field and section 11.1.3 of <xref
            target="RFC6514"/> MUST be fully followed.</t>

            <t>For non-segmented Inter-AS P-tunnel establishment in IPv6
            infrastructure scenarios, if the RDs of ingress PEs are distinct
            (which can be detected from UMH routes), the Root Distinguisher
            field MUST be filled with the number of ingress AS.</t>

            <t>For non-segmented Inter-AS P-tunnel establishment in IPv6
            infrastructure scenarios, if the RDs of ingress PEs are same, a
            4-octet distinct value MUST be assigned by leaf PE for each root
            PE. For example, each leaf PE uses a same well-known / configured
            hash algorithm to transform the IPv6 root IP to 4-octet distinct
            value for each ingress PE, or a provisioning method is used to
            globally assign different 4-octet IDs for each ingress PE. The
            Root Distinguisher field in C-multicast NLRI is filled with this
            value and a distinct C-multicast route will be sent to individual
            upstream root PE.</t>
          </list></t>

        <t>The solution to control the propagation of C-multicast route
        between different ASes is to use the IPv6 address included in IPv6 VRF
        Route Import Extended Community insteading of Source AS field of
        C-multicast NLRI while locating Intra-AS AD route of the corresponding
        root PE the C-multicast sent to on ASBRs. This document recommends
        that the Local Administrator field of IPv6 VRF Route Import Extended
        Community is set to a non-zero value by root PEs even in GTM
        scenarios, of which the value is local assigned distinctly by root PE
        for both each MVPN and GTM instance. Accordingly, the IPv6 root
        address of a C-multicast route can be extracted from the only IPv6 VRF
        Route Import Extended Community carring a non-zero Local Administrator
        field.</t>

        <t>When receiving a C-multicast route from E-BGP neighbors, the ASBR
        checks whether an IPv6 VRF Route Import Extended Community with a
        non-zero Local Administrator field is included in this route and takes
        following actions:</t>

        <t><list style="numbers">
            <t>If the IPv6 VRF Route Import Extended Community does not exist
            in the C-multicast route, the ASBR will treat the Root
            Distinguisher field as Source AS field and follows the description
            in section 11.2 of <xref target="RFC6514"/>.</t>

            <t>If the IPv6 VRF Route Import Extended Community does exist in
            the C-multicast route, the ASBR will match the IPv6 address
            carried in this extended community and the RD in C-multicast route
            NLRI against the Originating Router's IP Address and the RD of the
            Intra-AS I-PMSI A-D routes. If the corresponding Intra-AS I-PMSI
            A-D route exists, the ASBR will propagate the C-multicast route in
            its local AS.</t>
          </list></t>
      </section>

      <section title="Route Reflection Control">
        <t>To reduce BGP MVPN routes in Parallel IPv4 and IPv6 BGP sessions
        scenario, the following actions should be taken by sender PEs:</t>

        <t><list style="numbers">
            <t>For Intra-AS I-PMSI A-D Route, S-PMSI A-D Route and Leaf A-D
            Route, if the Originating Router's IP Address field in the route
            is filled with an IPv6 address, it will be sent to the IPv6 BGP
            neighbors; otherwise, it will be sent to the IPv4 BGP
            neighbors.</t>

            <t>For Inter-AS I-PMSI A-D Route and Source Active A-D Route, it
            is sent to both IPv6 BGP neighbors and IPv4 BGP neighbors.</t>

            <t>For C-multicast route, if the IPv6 VRF Route Import Extended
            Community exists in the route, it will be sent to the IPv6 BGP
            neighbors; otherwise, it will be sent to the IPv4 BGP
            neighbors.</t>
          </list></t>

        <t>In the route reflectors, the part of routes which are received from
        IPv6 BGP neighbors will be reflected to other IPv6 BGP neighbors and
        the other part of routes which are received from IPv4 BGP neighbors
        will be reflected to other IPv4 BGP neighbors.</t>
      </section>
    </section>

    <section title="Security Considerations">
      <t>This document introduces no new security considerations beyond those
      already specified in [RFC6514] and [RFC6515].</t>

      <t/>
    </section>

    <section title="IANA Considerations">
      <t>This document contains no actions for IANA.</t>

      <t/>
    </section>

    <section title="Acknowledgements">
      <t>Your name here</t>

      <t/>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.6514'?>

      <?rfc include='reference.RFC.6515'?>

      <?rfc include='reference.RFC.7716'?>

      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.8174'?>

      <?rfc include='reference.RFC.7911'?>
    </references>
  </back>
</rfc>
