<?xml version="1.0" encoding="US-ASCII"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<?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-xie-v6ops-evn6-00" ipr="trust200902">
  <front>
    <title abbrev="EVN6">EVN6: A Framework of Mapping of Ethernet Virtual
    Network to IPv6 Underlay</title>

    <author fullname="Chongfeng Xie" initials="C" surname="Xie">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>

          <city>Beijing</city>

          <code>102209</code>

          <country>China</country>
        </postal>

        <email>xiechf@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Xing Li" initials="X" surname="Li">
      <organization>CERNET Center/Tsinghua University</organization>

      <address>
        <postal>
          <street>Shuangqing Road No.30, Haidian District</street>

          <city>Beijing</city>

          <code>100084</code>

          <country>China</country>
        </postal>

        <email>xing@cernet.edu.cn</email>
      </address>
    </author>

    <author fullname="Congxiao Bao" initials="C" surname="Bao">
      <organization>CERNET Center/Tsinghua University</organization>

      <address>
        <postal>
          <street>Shuangqing Road No.30, Haidian District</street>

          <city>Beijing</city>

          <code>100084</code>

           <country>China</country>

        </postal>

        <email>congxiao@cernet.edu.cn</email>
      </address>
    </author>

    <author fullname="Mark Smith" initials="M" surname="Smith">
      <organization></organization>

      <address>
        <postal>
         
          <street>PO BOX 521</street>

          <city>Heidelberg</city>

          <code>3084</code>

           <country>Australia</country>

        </postal>

        <email>markzzzsmith@gmail.com</email>
      </address>
    </author>



    <date day="9" month="November" year="2023"/>

  
    <area>OPS Area</area>

    <workgroup>v6ops Working Group</workgroup>

  
    <keyword>RFC</keyword>

    <abstract>
      <t>This document describes the mechanism of mapping of Ethernet Virtual
      Network to IPv6 Underlay for transmission. Unlike the existing methods,
      this approach places the Ethernet frames to be transmitted directly in
      the payload of IPv6 packets, i.e., L2 over IPv6, and uses stateless
      mapping to generate IPv6 source and destination addresses from the
      host's MAC addresses, Ethernet Virtual Network identifier and site
      prefixes. The IPv6 packets generated in this way carry Ethernet frames
      and are routed to the destination site across public IPv6 network.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Ethernet Virtual Network is network model of Layer-2 built on top of
      the underlay to provide connectivity between dispersed customer sites
      across public network. This overlay L2 virtual network is used to carry
      the Ethernet data traffic from the individual hosts in an encapsulated
      format over a logical tunnel, as if they were connected using the same
      LAN. Ethernet Virtual Network can serve scenarios such as campus
      networks, enterprise branch interconnections, data center networks, wide
      area IP bearer networks, and SD-WAN.&nbsp;There have been multiple
      solutions, they may differ in the types of underlying networks or
      encapsulation methods, besides, they usually serve different
      scenarios.</t>

      <t>VXLAN <xref target="RFC7348"> </xref> is a network virtualization
      technology which has been used mainly in data centers. VXLAN uses
      MAC-in-UDP encapsulation for packets, specifically, it encapsulates
      original Ethernet frames into UDP packets. It then encapsulates the UDP
      packets with the IP header and Ethernet header of the physical network
      as outer headers, enabling these packets to be routed across the network
      like ordinary IP packets.</t>

      <t>VPLS <xref target="RFC4762"/> make use of MPLS and VPN protocols to
      provide a virtual LAN between multiple locations. It is basically a way
      to provide Ethernet-based multi-point to multi-point communication over
      MPLS networks&#8203;. VPLS operates by creating a virtual
      &lsquo;switch&rsquo; at the customer&rsquo;s edge (CE) and the
      provider&rsquo;s edge (PE) of their respective networks.</t>

      <t>The new framework, namely EVN6, proposed in this document aims to
      efficiently carry Ethernet Virtual Networks in IPv6 networks. It
      provides a methodology for dynamically creating a tunnel on the IPv6
      network to transparently forward Ethernet frame when communication is
      required between a source and destination node in a Ethernet Virtual
      Network. In this scheme, Ethernet frame to be transmitted is directly
      placed in the payload field of IPv6 packet without adding additional
      payload, the MAC address of the hosts that needs to communicate, the
      identification of the Ethernet Virtual Network and the IPv6 prefix of
      the site can be directly mapped to the IPv6 addresses. With EVN6
      implementation, any two host can communicate, regardless of the
      underlying IPv6 network structure and other details. This document
      specifies EVN6&rsquo;s overall architecture, typical workflow and
      Layer-2 broadcast processing, etc.</t>

      <section 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>
      </section>
    </section>

    <section title="Terminology">
      <t>The following terms are defined and used in this document,</t>

      <t>EVN6: Multi-site Ethernet Virtual Network built on IPv6 Network</t>

      <t>E-ADPT: Ethernet Adaptor</t>

      <t>IID: Interface Identifier(Section 2.5.1 of <xref
      target="RFC4291"/>)</t>

      <t>VEI: Virtual Ethernet Identification, VEI is used to identify and
      distinguish different Ethernet Virtual Network instances across the
      entire network, the length of VEI is 32 bits</t>

      <t>MAC-VRF: A Virtual Routing and Forwarding table for Media Access
      Control (MAC) addresses on a PE&#65288;Section 3 of <xref
      target="RFC8365"/>&#65289;, it stores IPv6 site prefix, VEI of the
      Ethernet Virtual Network and other information of each MAC address</t>

      <t>PE: Provider Edge Router</t>
    </section>

    <section title="Overall Architecture">
      <t>As a common underlay infrastructure, IPv6 network should
      simultaneously support multiple Ethernet Virtual Networks. To
      distinguish different Ethernet Virtual Network instances, VEI with a
      length of 32-bits is used to globally identify them, and it can identify
      up to 4.29 billion Ethernet Virtual Networks.</t>

      <t>Generally, Ethernet Virtual Network consists of multiple sites
      distributed in different geographically locations, and each site is
      connected to the IPv6 network through local PE at the edge of the IPv6
      network. The PE device supports Ethernet Virtual Network services by
      introducing E-ADPT functional subsystem. E-ADPT directly encapsulates
      the Ethernet data frames to be transmitted by the customer site into
      IPv6 packets and sends them to the IPv6 network. For the received IPv6
      packets destined to one of this local sites, E-ADPT removes their packet
      header and restores the original Ethernet frames.</t>

      <t><figure>
          <artwork><![CDATA[                                                                                                                                                       
               ---------------                    ---------
+---+ Pref6-1 |  +----+-----+ |                  |         | Pref6-2 +---+      
| H1+---------+--+  E-ADPT  | |                  |         +---------+ H2|
+---+  Site1  |  +----------+ |                  |         |  Site2  +---+
              |   |     |     |                  |         |   
              |   | +-------+ |                  |         |
              |   | |MAC-VRF| |                  |         |  
              |   | +-------+ |                  |         |
              |+-------------+|   -----------    |         |
              ||IPv6 Network ||  /           \   |         |
              ||    Layer    |--|IPv6 network |--|         |
              |+-------------+|  \           /   |         |
               ---------------    -----------     ---------
                     PE1                              PE2 
                              
                   Figure 1: EVN6 System Architecture]]></artwork>
        </figure></t>

      <t>For a given Ethernet Virtual Network, E-ADPT uses the IPv6 site
      prefix, i.e., Pref6 to identify different sites, so the Pref6 of
      different sites within a given Ethernet Virtual Network is also
      different. There are no special requirements for the type of address
      block used for Pref6, as long as it belongs to the global unicast
      address type and is reachable in global routing system. The Pref6 for
      each site can be allocated from the IPv6 address space owned by the
      operator. It should be noted that the length of Pref6 can be flexibly
      selected, it can be equal to or less than 64 bits. For Ethernet Virtual
      Network which has multiple sites, there is a 1: N relationship between
      the VEI and the site prefix of its sites.</t>

      <t>In order to send Ethernet frames to the correct destination site
      through the IPv6 network, MAC-VRF table in PE is used to store the MAC
      addresses of all hosts in the Ethernet Virtual Network, the
      corresponding VEI of the Ethernet Virtual Network and Pref6 of the sites
      they belong to. The format of each record in MAC-VRF is shown in figure
      2, it contains MAC address, the VEI value, prefix of the corresponding
      site.<figure>
          <artwork><![CDATA[
   +-----------------------------------------------------------+
   | MAC Address |    VEI    | Length of Pref6 |     Pref6     |
   +-----------------------------------------------------------+
                                               Pref6:Site Prefix
    
         Figure 2: Data Structure of the Record in MAC-VRF]]></artwork>
        </figure></t>

      <t>For E-ADPT, MAC-VRF provides a data foundation for encapsulating
      Ethernet frames into corresponding IPv6 packets, the data in it should
      be available before sending Ethernet frame to other sites, so the
      mechanism requires the sites to pre-send host MAC/Pref6 Mapping
      Advertisement to other sites. After receiving mapping relationship data
      of a host sent by other PEs, the PE stores the mapping data in the local
      MAC-VRF. The exchange of MAC/Pref6 can be carried out through the
      control layer, such as extending EVPN<xref target="RFC7432"/>, however,
      this has been out of the scope of this document and will be discussed in
      other documents. When receiving Ethernet frame data sent by the host
      within the site, PE uses the destination MAC address as an index to
      search for the local MAC-VRF table. If a corresponding entry is found,
      PE extracts its site prefix Pref6 and VEI value, then uses the process
      in section 4.2 to encapsulate the Ethernet frame in an IPv6 packet.
      Afterwards, the IPv6 data packet is transmitted to the IPv6 network.</t>
    </section>

    <section title="Operation">
      <t>In this section, the Ethernet Virtual Network in figure 3 is used as
      an example to illustrate the workflow, its profile includes: the VEI
      value is N1, it has three branch sites connected to PE1, PE2, and PE3,
      with site prefixes Pref6-1, Pref6-2, and Pref6-3, respectively. Hosts
      H1, H2, H3 and H4 are located at sites 1, site 2 and site 3,
      respectively.<figure>
          <artwork><![CDATA[                                                                           
                      +-------------------+  
                      |                   |  
                      |                +--+--+                   +----+ 
+---+              +--+--+             |     |   Site2(Pref6-2)  |    |
|   |Site1(Pref6-1)|     |             | PE2 +-------------------+ H2 |
| H1+--------------+ PE1 |             |     |                   |    | Mac2
|   |              |     |             +--+--+                   +----+
+---+              +--+--+                |                      +----+         
 Mac1                 |        IPv6       |                      |    |
                      |       network     |                  ----+ H3 |     
                      |                +--+--+              |    |    | MAC3
                      |                |     |Site3(Pref6-3)|    +----+
                      |                | PE3 +--------------|     
                      |                |     |              |    +----+ 
                      |                +--+--+              |    |    |                                
                      |                   |                  ----+ H4 |
                      +-------------------+                      |    | MAC4
                                                                 +----+                                                                

              Figure 3: Diagram of Typical EVN6 Instance]]></artwork>
        </figure></t>

      <t>The workflow of EVN6 is illustrated as follows:</t>

      <section title="Network Creation Procedures">
        <t>Step 1: EVN6 network creation on each PE device</t>

        <t>When creating an Ethernet Virtual Network instance on an IPv6
        network, it should firstly enable the EVN6 function is in PE1, PE2,
        and PE3, then configure the relevant information of the Ethernet
        Virtual Network on this site, configure the Ethernet Virtual Network
        identifier VEI as N1, and set the site prefix Pref6 on the interface
        of the PE that the site accesses, indicating that the VEI of the
        Ethernet Virtual Network to which the site belongs to is N1, and its
        local site prefix is Pref6. This process can be configured manually or
        using specific systems such as network management. When the EVN6
        instance is running, the sites within it exchange host MAC/Pref6
        Mapping through the connected PEs, as described in Section 3.</t>
      </section>

      <section title="Data Transmission Procedures">
        <t>Step 2: Host information search</t>

        <t>Host H2 in site 2 sends an Ethernet frame with the destination
        being Host H1 in site 1. Its frame header contains the MAC source
        address and MAC destination address, which are the MAC addresses of
        hosts H2 and H1, respectively. In this case, PE2 is the source PE and
        PE1 is the destination PE. After receiving the Ethernet frame in Site
        2, PE2 uses the destination MAC address as an index to search for the
        local MAC-VRF table. If a corresponding entry is found, the Pref6 of
        remote site (i.e. Pref6-1) and VEI information are extracted; If not
        found, do not encapsulate and forward.</t>

        <t>Step 3: Address mapping and frame encapsulation</t>

        <t>In EVN6, each Ethernet frame needs to be associated with the VEI of
        the Ethernet Virtual Network to which the frame originates. Upon
        receiving the Ethernet frame, PE2 can determine its VEI value based on
        local configuration. Then the VEI obtained is divided into two
        sub-segments: VEI-S1 and VEI-S2, the first 16 bits are VEI-S1, and the
        last 16 bits are VEI-S2. VEI-S1 and VEI-S2 will be respectively put
        into IPv6 source and destination address of the new IPv6 packet as
        below.</t>

        <t indent="2">-The IPv6 source address is created by stateless
        mapping. Specifically, 64-bits Pref6-2 is put into the network prefix
        field, 16-bits VEI-S1 and source MAC address of the Ethernet frame is
        put into the field of Interface Identifier, i.e. IID, in order.</t>

        <t indent="2">-The IPv6 destination address is created by stateless
        mapping too. Specifically, 64-bits Pref6-1 is put into the network
        prefix field, 16-bits VEI-S2 and destination MAC address of the
        Ethernet frame is put into the field of Interface Identifier, i.e.
        IID, in order.</t>

        <t>The format of IPv6 source and destination addresses generated are
        shown in figure 4.</t>

        <t><figure>
            <artwork><![CDATA[
                         0                   64       80          127
                         +-------------------+--------+------------+
     IPv6 Source Address |      Pref6 of     | VEI-S1 | Source MAC |                    
                         |     Source PE     |        |  Address   |
                         +-------------------+--------+------------+
                                             |<---------IID------->|

                         0                   64       80          127
                         +-------------------+--------+------------+
IPv6 Destination Address |      Pref6 of     | VEI-S2 | Destination|                    
                         |   Destination PE  |        | MAC Address|
                         +-------------------+--------+------------+
                                             |<--------IID-------->|

      Figure 4: Format of IPv6 Source and Destination Addresses]]></artwork>
          </figure></t>

        <t>Moreover, the Ethernet frame is put into the payload of IPv6 packet
        and the value of the "Next header" in the header is set to 143,
        indicating that the payload of the IPv6 packet is an Ethernet
        frame.</t>

        <t><figure>
            <artwork><![CDATA[    
                             +-------------------------------+
                             |        Ethernet Frame         |                    
                             +-------------------------------+
                                              |
                                              V
           +-----------------+-------------------------------+
           |  IPv6 Header    |    Palyload(Ethernet Frame)   |                    
           +-----------------+-------------------------------+

         Figure 5: Encapsulation of Ethernet Frame into IPv6 Packet]]></artwork>
          </figure></t>

        <t>After the IPv6 packet is generated, it is sent to the IPv6 network
        via the underlying IPv6 network layer.</t>

        <t>Step 4: Packet forwarding in IPv6 network</t>

        <t>When receiving an IPv6 packet, routers in an IPv6 network use the
        destination address in the packet to look up the routing table and
        forward it. Since the IPv6 destination address contains the site
        prefix of the destination site, i.e. Pref6-1 in this case, which
        provides the egress PE of the packet, routers can forward the IPv6
        packet carrying the Ethernet frame to the destination PE, i.e. PE1 in
        this case. It should be noted that this process does not require
        additional functionality for non-PE routers in the network, nor does
        it require extra IPv6 routing information to be added to the IPv6
        network.</t>
      </section>

      <section title="Data Receiving Procedures">
        <t>Step 5: Packet de-capsulation and Ethernet frame restoration</t>

        <t>As shown in figure 6, when receiving a IPv6 packet, the receiving
        PE, i.e., PE1, checks whether the destination address prefix matches
        the site prefix Pref6-1 on PE1? If yes, it extracts VEI-s1 and VEI-s2
        from the IIDs of the source and destination IPv6 addresses, and
        concatenates them into VEI, then check if the VEI value is equal to
        N1? If yes, it then checks if the "Next header" value in the IPv6
        header is 143? If yes, it then discards the IPv6 header, takes out the
        Ethernet frame, and sends the Ethernet frame to H1 within Site 1 based
        on its destination MAC address. Otherwise, the packet is discarded due
        to abnormal situation.</t>

        <t><figure>
            <artwork><![CDATA[
                               +--------------------------+
                               |PE1 receices a IPv6 packet|
                               +--------------------------+
                                             |
                                             V
                                          +-----+                      
                                        /Does the \        
                           N           /destination\                         
                   -------------------+   address   +
                  |                   \    match   /
                  V                    \  Pref6-1 /
    +------------------------+           +------+
    |PE1 continues forwarding|             Y|  
    |forwarding IPv6 packet  |              V                        
    +------------------------+  +-------------------------+         
                                |PE1 extracts VEI from the|
                                |IIDs of IPv6 source and  |
                                |destination addresses    |
                                +-------------------------+
                                             |
                                             V
                                           +--+                       
                          N              /      \                              
                   ---------------------+ VEI=N1?+
                  |                      \      /
                  V                        +--+
    +----------------------------+          Y|
    |The packet is discarded due|           |
    |to abnormal situation       |           V                      
    +----------------------------+        +-----+  
                                        /   The   \        
                          N            /  value of \                         
                   -------------------+"Next header"+
                  |                    \  is 143?  /
                  V                     \         /
    +----------------------------+        +-----+   
    |The packet is discarded due |          Y|
    |to abnormal situation       |           |
    +----------------------------+           V
                    +------------------------------------------+
                    |PE1 decapsulates IPv6 packet and sends the| 
                    | released Ethernet frame to H1 based on   |
                    | the destination MAC address              |
                    +------------------------------------------+                                                            
         
       Figure 6: Process of Ethernet Frame Restoration in PE]]></artwork>
          </figure></t>
      </section>
    </section>

    <section title="Link layer Broadcast ">
      <t>Link layer broadcast is used to send data to all hosts in the Layer-2
      network where they are located. The destination address of the broadcast
      frame is FF-FF-FF-FF-FF-FF, and all hosts in the same Layer-2 network
      will receive the broadcast frame. Link layer broadcast is often used for
      IPv4 ARP and IPv6 neighbor discovery with ICMPv6 packet of type NS (type
      135) [RFC4861]<xref target="RFC4861"/>. In Ethernet Virtual Network
      scenarios, it needs to support link layer broadcast as well.</t>

      <t>When PE receives a broadcast frame from a local site, it analyzes the
      VEI of the Ethernet Virtual Network to which the MAC belongs and uses
      the VEI value as an index to retrieve all other N sites of the Ethernet
      Virtual Network in MAC-VRF: Site-1, Site-2, &hellip;, Site-N. Then, for
      each remote site, the following operations should be performed
      recurrently by the source PE,</t>

      <t indent="2">1) Generate new IPv6 packets with the site prefix of the
      remote site using the method of section 4.2.</t>

      <t indent="2">2) Forward the IPv6 packet to the IPv6 network.</t>

      <t>Through the above N cycles the broadcast Ethernet frame is
      encapsulated into IPv6 packets and send the data out, then all other
      member remote sites will receive the Layer-2 broadcast data.</t>
    </section>

    <section title="Security Considerations">
      <t>In the EVN6 framework, PE devices located at the edge of the network
      encapsulate Ethernet frames in IPv6 packets and support transmission
      between different sites. When generating the outer IPv6 header, the PE
      device maps information such as the IPv6 address prefix of the site, the
      Mac address of the host, and the identity of the virtual network to the
      IPv6 address of the outer encapsulation header, which applies to both
      the source and destination addresses. In this way, the outer IPv6
      address is dynamically generated based on information such as MAC
      address. For any host to host communication, even if the source and
      destination hosts are in the same virtual private network, when their
      source and destination address pairs are different, the generated outer
      encapsulated IP address is also different. The outer IPv6 address varies
      with the MAC address of the Ethernet frame, This is different from the
      traditional encapsulation scheme of pre-configuring tunnel IP addresses,
      as statically configured tunnel endpoint addresses are likely to become
      the target of DDOS attacks. In EVN6, tunnel encapsulation adopts
      dynamically generated tunnel endpoint IPv6 addresses, which avoids the
      occurrence of DDOS attacks caused by statically pre-configured tunnel
      addresses. From this perspective, this solution improves the security of
      Ethernet virtual networks.</t>
    </section>

    <section title="IANA Considerations">
      <t>There are no other special IANA considerations.</t>
    </section>

    <section title="Acknowledgment">
      <t/>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.8174"?>

      <?rfc include="reference.RFC.4291"?>

      <?rfc include="reference.RFC.7432"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.4762"?>

      <?rfc include="reference.RFC.4861"?>

      <?rfc include="reference.RFC.7348"?>

      <?rfc include="reference.RFC.7364"?>

      <?rfc include="reference.RFC.7365"?>

      <?rfc include="reference.RFC.8365"?>

      <?rfc include="reference.RFC.8926"?>
    </references>
  </back>
</rfc>
