<?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-01"
     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>

    <date day="20" month="May" year="2022"/>

    <abstract>
      <t>MVPN deployment faces some problems while used in provider's IPv6
      infrastructure networks. This document describes these problems, and the
      solutions to solve these problems.</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 the solutions to solve these problems.</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"/>, the following processes are not
        suitable if IPv6 infrastructure addresses are used in provider's
        networks:</t>

        <t><list style="numbers">
            <t>In paragraph 7 of section 11.1.3, it described 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". In NLRI of
            C-multicast route, Source AS field is 4 bytes length, while the
            Originating Router's IP Address field of Intra-AS I-PMSI A-D route
            is 16 bytes length in provider's IPv6 networks.</t>

            <t>In paragraph 2 of section 11.2, it described that "To support
            non-segmented inter-AS tunnels, 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". 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>In <xref target="RFC7716"/>, zero RD is introduced in BGP
        MVPN NLRIs to enable Global Table Multicast service in provider's
        networks. In IPv6 infrastructure networks, Leaf PEs cannot send two
        distinct C-multicast route to two individual upstream root PEs for
        selctive forwarding, because the RD of the two roots is the same.</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 Reflector
        routers, if the BGP MVPN route send to all IPv4 and IPv6 BGP peer
        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 Reflector routers.</t>
      </section>

      <section title="Modification of C-Multicast route NLRI">
        <t>To support non-segmented inter-AS tunnels in IPv6 infrastructure
        network, the C-Multicast route NLRI is redefined as following:</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>If the Originating Router's IP Address field of the found
            Intra-AS I-PMSI A-D route is an IPv4 address, the Root
            Distinguisher field MUST be treated as Source AS field and section
            11.1.3 of <xref target="RFC6514"/> MUST be followed.</t>

            <t>If the Originating Router's IP Address field of the found
            Intra-AS I-PMSI A-D route is an IPv6 address and the root PE and
            leaf PE are in the same AS, the Root Distinguisher field MUST be
            treated as Source AS field and section 11.1.3 of <xref
            target="RFC6514"/> MUST be followed.</t>

            <t>If the Originating Router's IP Address field of the found
            Intra-AS I-PMSI A-D route is an IPv6 address and the root PE and
            leaf PE are in the different ASs, a four bytes distinct value MUST
            be assigned by leaf PE for each root PE, the Root Distinguisher
            field in C-Multicast NLRI is filled with this value and a distinct
            C-multicast route will be send to individual upstream root PE.</t>
          </list></t>

        <t>When receiving a C-Multicast route from E-BGP neighbors, the ASBR
        checks whether an IPv6 VRF Route Import Extended Community 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 treats 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 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 propagates 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 is sent to the IPv6 BGP
            neighbors; otherwise, it is 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 is sent to the IPv6 BGP
            neighbors; otherwise, it is sent to the IPv4 BGP neighbors.</t>
          </list></t>

        <t>In the reflector routers, 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>
