<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2545 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2545.xml">
<!ENTITY RFC4291 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4291.xml">
<!ENTITY RFC4364 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4364.xml">
<!ENTITY RFC4659 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4659.xml">
<!ENTITY RFC4684 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4684.xml">
<!ENTITY RFC4760 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4760.xml">
<!ENTITY RFC4798 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4798.xml">
<!ENTITY RFC4925 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4925.xml">
<!ENTITY RFC8126 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8126.xml">
<!ENTITY RFC5492 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5492.xml">
<!ENTITY RFC5549 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5549.xml">
<!ENTITY RFC5565 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5565.xml">
<!ENTITY RFC6074 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6074.xml">
<!ENTITY RFC6513 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6513.xml">
<!ENTITY RFC6514 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6514.xml">
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8277 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8277.xml">
<!ENTITY RFC8950 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8950.xml">
<!ENTITY DYN-CAP SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-idr-dynamic-cap.xml">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- used by XSLT processors -->
<!-- OPTIONS, known as processing instructions (PIs) go here. -->
<!-- For a complete list and description of PIs,
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable PIs that most I-Ds might want to use. -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC): -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references: -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space: 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of popular PIs -->
<rfc category="bcp" docName="draft-mishra-bess-ipv4-only-pe-design-00" ipr="trust200902">
  <front>
    <title abbrev="IPv4-Only PE IPv6 NLRI IPv4NH">IPv4-Only PE Design for IPv6-NLRI with IPv4-NH</title>

    <author fullname="Gyan Mishra" initials="G. " surname="Mishra">
      <organization>Verizon Inc.</organization>
      <address>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>

   <author fullname="Jeff Tantsura" initials="J. " surname="Tantsura">
      <organization>Microsoft, Inc.</organization>
      <address>
        <email>jefftant.ietf@gmail.com</email>
      </address>
    </author>

    <date year="2022"/>
    <area/>
    <workgroup>BESS Working Group</workgroup>
    <!-- <keyword/> -->
    <abstract>
	   <t>
	   As Enterprises and Service Providers try to decide whether or not to upgrade their brown field or green 
	   field MPLS/SR core to an IPv6 transport, Multiprotocol BGP (MP-BGP)now plays an important role in the transition of 
	   their Provider (P) core network as well as Provider Edge (PE) Edge network from IPv4 to IPv6. 
	   Operators must be able to continue to support IPv4 customers  when both the Core and Edge networks are IPv4-Only.  
	  </t>		   
       <t>     
       This document details an important External BGP (eBGP) PE-CE Edge IPv4-Only peering design that leverages the MP-BGP capability exchange by using IPv4 peering as pure transport, allowing 
       both IPv4 Network Layer Reachability Information (NLRI) and IPv6 Network Layer Reachability Information (NLRI)to be carried over the same (Border Gateway Protocol) BGP TCP session.  
       The design change provides the same Dual Stacking functionality that exists today with separate IPv4 and IPv6 BGP sessions as we have today. 
       With this design change from a control plane perspective a single IPv4 is required for both IPv4 and IPv6 routing updates and from a data plane forwarindg perspective an IPv4 address
       need only be configured on the PE and CE interface for both IPv4 and IPv6 packet forwarding.  
       </t>
   	  
       <t>  	      
       This document provides a IPv4-Only PE design solution for use cases where operators are not yet ready to migrate to IPv6 or SRv6 core and would like to stay on IPv4-Only Core short to long term and maybe even indefinitely.
       With this design, operators can now remain with an IPv4-Only Core and do not have to migrate to an IPv6-Only Core. From a technical standpoint the underlay can remain IPv4 and still transport IPv6 NLRI to support IPv6 customers, and so does not need to be migrated to IPv6-Only underlay.  
       With this IPv4-Only PE Design solution , IPv4 addressing only needs to be provisioned for the IPv4-Only PE-CE eBGP Edge peering design, thereby eliminating IPv6 provisioning at the Edge.  This core and edge IPv4-Only peering design can apply to any eBGP peering, public 
       internet or private, which can be either Core networks, Data Center networks, Access networks or can be any eBGP peering scenario.  This document provides vendor specific test cases 
       for the IPv4-Only peering design as well as test results for the five major vendors stakeholders in the routing and switching indusrty, Cisco, Juniper, Arista, Nokia and Huawei.  
       With the test results provided for the IPv4-Only Edge peering design, the goal is that all other vendors around the world that have not been tested will begin to adopt and implement 
       this new Best Current Practice for eBGP IPv4-Only Edge peering.  
       </t>

       <t>               
       This Best Current Practice IPv4-only eBGP peering design specification will help in use cases where operators are not yet ready to migrate to IPv6 or SRv6 core or for very lage operator core 
       with thousdands of nodes where it maybe impractical to change the underlay infrastructure to IPv6, and can now keep the existing IPv4 data plane IP, MPLS or SR-MPLS underlay intact indefinitely.    
      </t>
      
    </abstract>

  </front>
  <middle>
    <section anchor="intro" title="Introduction">
	<t>	
	As Enterprises and Service Providers upgrade their brown field or green 
	field MPLS/SR core to an IPv6 transport such as MPLS LDPv6, SR-MPLSv6 or SRv6, 
	Multiprotocol BGP (MP-BGP) now plays an important role in the transition 
	of the Provider (P) core networks and Provider Edge (PE) edge networks from IPv4 to IPv6.  Operators have a requirement to support IPv6 customers and must be able to support 
	IPv6 address family and Sub-Address-Family Virtual Private Network (VPN)-IPv6, and Multicast VPN IPv6 customers.  
	</t>
	
   <t>				 
	With this IPv4-only BGP peering design, only IPv4 is configured on the PE-CE interface, the Provider Edge (PE) - Customer Edge (CE), the IPv4 BGP peer is now used to carry 
	IPv6 (Network Layer Reachability Information) NLRI over an IPv4 next hop using 4 byte IPv4 next hop encoding while continuing to forward both IPv4 and IPv6 packets.
	In the framework of this design the PE is no longer Dual Stacked.  However in the case of the CE, PE-CE link CE side of the link is no longer Dual Stacked, however all other internal links within the CE
	domain may or maynot be Dual stacked.    
	</t>  
       <t>	   
	   MP-BGP specifies that the set of usable next-hop address families is determined by the Address Family 
	   Identifier (AFI) and the Subsequent Address Family Identifier (SAFI).  
	   Historically the AFI/SAFI definitions for the IPv4 address family only 
	   have provisions for advertising a Next Hop address that belongs to 
	   the IPv4 protocol when advertising IPv4 or VPN-IPv4.  <xref target="RFC8950"/> specifies the extensions 
	   necessary to allow advertising IPv4 NLRI, Virtual Private Network Unicast (VPN-IPv4) NLRI, Multicast Virtual Private Network (MVPN-IPv4) NLRI with a Next Hop
       address that belongs to the IPv6 protocol.  This comprises of an
       extended next hop encoding MP-REACH BGP capability exchange to allow the address of the
       Next Hop for IPv4 NLRI, VPN-IPv4 NLRI and MVPN-IPv4 NLRI to also belong to the IPv6
       Protocol.  <xref target="RFC8950"/> defines the encoding of the Next Hop to determine 
       which of the protocols the address actually belongs to, and a new BGP 
       Capability allowing MP-BGP Peers to discover dynamically whether they can
       exchange IPv4 NLRI and VPN-IPv4 NLRI with an IPv6 Next Hop.  
  	   </t>       	      
  
   <t>   
   With the IPv4-Only PE design, IPv6 NLRI will be carried over an IPv4 Next-hop.  <xref target="RFC4798"/> and <xref target="RFC4659"/> specify how an IPv4 address can be
   encoded inside the next-hop IPv6 address field when IPv6 NLRI needs
   to be advertised with an IPv4 next hop.  <xref target="RFC4798"/> defines how the
   IPv4-mapped IPv6 address format specified in the IPv6 addressing
   architecture <xref target="RFC4798"/> can be used for that purpose when the &lt;AFI/SAFI&gt; is IPv6-Unicast &lt;2/1&gt;, Multicast &lt;2/2&gt;, and Labeled Unicast &lt;2/4&gt;.  
   <xref target="RFC4659"/> defines how the IPv4-mapped IPv6 address format as well as a null Route Distinguisher as ::FFFF:192.168.1.1
   (RD) can be used for that purpose when the &lt;AFI/SAFI&gt; is VPN-IPv6 &lt;2/128&gt; MVPN-IPv6 &lt;2/129&gt;.
   This IPv4-Only PE specification utilizes IPv6 NLRI over IPv4 Next hop encoding adopted by the industy to not use IPv4 mapped IPv6 address defined above, 
   and instead use 4 byte IPv4 address for the next hop which ultimately set the precedence for the adoption of <xref target="RFC8950"/> for 4to6 Softwire IPv4 NLRI over IPv6 next-hop.
   The IPv4 next hop encoding for cases where the NLRI advertised is different from the next hop encoding such as where IPv6 NLRI is advertied with IPv4 next hop 
   for for &lt;AFI/SAFI&gt; is IPv6-Unicast &lt;2/1&gt;, Multicast &lt;2/2&gt;, and Labeled Unicast &lt;2/4&gt;.  
   <xref target="RFC4659"/> defines Null(RD) for &lt;AFI/SAFI&gt; is VPN-IPv6 &lt;2/128&gt; MVPN-IPv6 &lt;2/129&gt; but now with a an official
   new IANA Capability code TBD as value 10 "IPv4 Next Hop Encoding".  The IETF standards have not been updated with an IANA allocation Capability code for the IPv4 next hop encoding
   so this specification fixes that with an IANA allocated codepoint which will now be used for this IPv4-Only PE design. 
   </t>       	      
  
   
   <t>
   With this IPv4-Only PE Design, BGP peer session can now be treated as a pure TCP transport and carry both IPv4 and IPv6 NLRI at the Provider Edge (PE) - Customer Edge (CE) over a single IPv4 TCP session.  
   This allows for the elimination of dual stack from the PE-CE peering point, 
   and now enable the peering to be IPv4-ONLY. The elimination of IPv6 on the PE-CE 
   peering points translates into OPEX expenditure savings of point-to-point 
   infrastructure links as well as /127 address space savings and administration 
   and network management of both IPv4 and IPv6 BGP peers.  This reduction decreases 
   the number of PE-CE BGP peers by fifty percent, which is a tremendous cost 
   savings for operators.  This also translates into Major CAPEX savings as now operators do not have to migrate their underlay to IPv6 and can remain indefinitely on IPv4-Only Core.   
   </t>

   <t>
   While the savings exists at the Edge eBGP PE-CE peering, on the core side PE to Route Reflector (RR) peering carrying 
   &lt;AFI/SAFI&gt; IPv4 &lt;2/1&gt;, VPN-IPV4 &lt;2/128&gt;, and Multicasat VPN &lt;2/129&gt;, 
   there is no savings as the Provider (P) Core is IPv4 Only and thus can only have an IPv4 peer standard 4 byte next hop encoding to
   carrying IPv4 NLRI IPV4 &lt;2/1&gt;, VPN-IPV4 &lt;2/128&gt;, and Multicasat 
   VPN &lt;2/129&gt; over an IPv4 next hop.  
   </t>

       <t>  	      
       This core and edge IPv4-Only peering design paradigm change can apply to any eBGP peering, public 
       internet or private, which can be either Core networks, Data Center networks, Access networks or can be any eBGP peering scenario.  This document provides detailed vendor specific test cases 
       and test results for the IPv4-Only peering design as well as successful test results between five major vendors stakeholders in the routing and switching indusrty, Cisco, Juniper, Arista, Nokia and Huawei.  
       With the test results provided for the IPv4-Only Edge peering design, the goal is that all other vendors around the world that have not been tested will begin to adopt and implement 
       this new best practice for eBGP IPv4-Only Edge peering.  
       </t>


	</section>
	<section anchor="requirements" 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 anchor="termo" title="Terminology">
	<t>	
	Terminolgoy used in defining the IPv6-Only Edge specification.  
	</t>
	
	  <t>AFBR: Address Family Border Router Provider Edge (PE).</t>
	  
	  <t>Edge: PE-CE Edge Network Provider Edge - Customer Edge</t>
	  
	  <t>Core: P Core Network Provider (P)</t>
	  
      <t>4to6 Softwire : IPv4 edge over an IPv6-Only core</t>

      <t>6to4 Softwire: IPv6 edge over an IPv4-Only core</t>

      <t>E2E: End to End</t>
      

 	</section>
 			   
		  <section anchor="IPv6onlyall" title="IPv6-Only Edge Peering Architecture">
			  
		     <section anchor="problem" title="Problem Statement">	 
	
	<t>			 
	This specification addresses a real issue that has been discussed at many operator with extremely large core networks around the world related migration to IPv6 underlay transport which can be put off indefinitely.  
    Operators around the world are clamoring for a solution that can help solve issues related to IPv4 address depletion at 
    these large IXP peering points.  With this solution, infrastructure networks such as Core networks, DC networks, Access networks as well as any  
    PE-CE public or private network can now utilize this IPv4-Only Edge solution and reap the benefits immediately on IPv6 address space saving and CAPEX and OPEX savings.  
	</t>	 
			 
 
 		     <figure anchor="dual-stack" title="Problem Statement - Dual Stack Peering">
       <artwork align="center">
		   
		                   Problem Statement
		   
		 Dual Stacked            Dual Stacked
		      CE                      PE
 
                   +-------+ IPv4 BGP Peer +-------+
                   |       |---------------|       |
                   |   CE  | IPv6 BGP Peer |  PE   |
                   |       |---------------|       | 
                   +-------+               +-------+
                  IPv4 forwarding            IPv4 forwarding 
                  IPv6 forwarding            IPv6 forwarding
 
          </artwork>
     </figure>       
     
        		     <figure anchor="vpn-problem" title="Problem Statement - E2E Dual Stack Edge">
       <artwork align="center">
		   
                               ________		   
    Dual Stacked     _____    /        \                Dual Stacked
      PE / CE       /     \__/          \___              PE / CE        
  +----+  +----+   /                        \        +------+   +-----+
  |    |  |    |  |0====VPN Overlay Tunnel ==0|      |      |   |     |
  |    |  |    |  |                             \    |      |   |     |
  | CE |--| PE |--\         IPv6-Only Core      |----|  PE  |---|  CE |
  |    |  |    |    \0=========Underlay =======0|    |      |   |     |
  +----+  +----+     \                        __/    +------+   +-----+
  IPv4 IPv6 BGP peer  \ IP / MPLS / SR domain /     IPv4 and IPv6 BGP peer
  IPv4 forwarding      \__         __       /          IPv4 forwarding
  IPv6 forwarding         \_______/  \_____/           IPv6 forwarding 
 
 

          </artwork>
     </figure>  
 

 	     	</section>
 	
	   	
	     <section anchor="solution" title="IPv4-Only PE-CE Design Solution">	
			 
    <t>			 
	The IPv4-Only Edge design solution provides a means of E2E single protocol design solution extension of <xref target="RFC5565"/> Softwire Mesh framework from the PE-CE Edge to the Core from ingres so egress through the entire operators domain.
	This solution eliminates all IPv4 addressing from end to end while still providing the same Dual Stack functionality of IPv4 and IPv6 packet forwarding from a data plane perspective by
	leveraging the <xref target="RFC8950"/> extended next hop encoding so that IPv4 NLRI can be advertised over a single IPv6 pure transport TCP session.  This IPv4-Only E2E architecture eliminates all
	IPv4 peering and IPv4 addressing E2E from the ingress CE to ingress PE to egress PE to egress CE and all hops along the operator E2E path.    
	</t>				    	
 
  		     <figure anchor="all-s" title="IPv4-Only Solution Applicability">
       <artwork align="center">
		   
		             Solution applicable to 
		  any Edge peering scenario - IXP, Core, DC, Access, etc
 
                   +-------+                +-------+
                   |       |  IPv4 Only     |       |
                   |   CE  |----------------|  PE   |
                   |       |  IPv4 BGP Peer |       | 
                   +-------+                +-------+
                  IPv4 forwarding            IPv4 forwarding 
                  IPv6 forwarding            IPv6 forwarding
 
          </artwork>
     </figure>       
 
 
 
  		     <figure anchor="ixp-vpn-sol" title="E2E VPN Solution">
       <artwork align="center">
		   
                               ________		   
     IPv4-Only       _____    /        \                 IPv4-Only
      PE / CE       /     \__/          \___              PE / CE        
  +----+  +----+   /                        \        +------+   +-----+
  |    |  |    |  |0====VPN Overlay Tunnel ==0|      |      |   |     |
  |    |  |    |  |                             \    |      |   |     |
  | CE |--| PE |--\         IPv4-Only Core      |----|  PE  |---|  CE |
  |    |  |    |    \0=========Underlay ===== ==0    |      |   |     |
  +----+  +----+     \                        __/    +------+   +-----+
  IPv6 BGP peer        \IP / MPLS / SR domain /        IPv6 BGP peer
  IPv4 forwarding      \__         __       /          IPv4 forwarding
  IPv6 forwarding         \_______/  \_____/           IPv6 forwarding 
 
 

          </artwork>
     </figure>  
         	         
     	</section>			  

		  <section anchor="rfc5565intro" title="IPv4-Only Edge Peering Design">

            <section anchor="rfc5565walk" title="IPv4-Only Edge Peering Packet Walk">
		   			  
	<t>	
   The IPv4-Only Edge Peering design utilizes two key E2E Softwire Mesh Framework scenario's, 4to6 softwire and 6to4 softwire.	
   The Softwire mesh framework concept is based on the overlay and underlay MPLS or SR based technology framework, where the underlay is the transport layer and the overlay is a 
   Virtual Private Network (VPN) layer, and is the the tunneled virtualization layer containing the customer payload.  The concept of a 6to4 Softwire is based on transmission 
   of IPv6 packets at the edge of the network by tunneling the IPv6 packets over an IPv4-Only Core.  The concept of a 4to6 Softwire is also based on transmission 
   of IPv4 packets at the edge of the network by tunneling the IPv4 packets over an IPv6-Only Core. 
 	</t>  

   <t>   
   This document describes End to End (E2E) test scenarios that follow a packet flow from IPv4-Only attachment circuit from ingress PE-CE to egress PE-CE tracing the routing protocol control plane and data plane forwarding 
   of IPv4 packets in a 4to6 softwire or 6to4 softwire within the IPv4-Only or IPv6-Only Core network.  
   In both secneario we are focusing on IPv4 packets and the control plane and data plane forwarding aspects of IPv4 packets from the PE-CE Edge network over an IPv4-Only P (Provider) 
   core network or IPv6-Only P (Provider) core network.  With this IPv4-Only Edge peering design, the Softwire Mesh Framework is not extended beyond the Provider Edge (PE) and continues to terminate on the PE router.  
	</t>

         	</section>

       <section anchor="rfc5565v4" title="6to4 Softwire IPv4-Only Core packet walk">

	<t>6to4 softwire where IPv4-Edge eBGP IPv4 peering where IPv6 packets at network Edge traverse a IPv4-Only Core</t> 
	
	<t>	
   In the scenario where IPv6 packets originating from a PE-CE edge are tunneled over an MPLS or Segment Routing IPv4 underlay core network, the PE and CE only have an IPv6 address configured on the interface.
   In this scenario the IPv6 packets that ingress the CE from within the CE AS are over an IPv4-Only interface and are forwarded to an IPv6 NLRI destination prefix learned from the Pure Transport Single IPv4 BGP Peer. 
   In the IPv4-Only Edge peering architecture the PE is IPv4-Only as all PE-CE interfaces are IPv4-Only.  However, on the CE, the PE-CE interface is the only interface that is IPv4-Only and all other interfaces 
   may or may not be IPv4-Only.  Following the data plane packet flow, IPv4 packets are forwarded from the ingress CE to the IPv4-Only ingress PE where the VPN label imposition push per prefix, per-vrf, per-CE 
   occurs and the labeled packet is forwarded over a 6to4 softwire IPv4-Only core, to the egress PE where the VPN label disposition pop occurs and the native IPv4 packet is forwarded to the egress CE.  
   In the reverse direction IPv4 packets are forwarded from the egress CE to egress PE where the VPN label imposition per prefix, per-vrf, per-CE push occurs and the labeled packet is forwarded back over 
   the 6to4 softwire IPv4-Only core, to the ingress PE where the VPN label disposition pop occurs and the native IPv4 packet is forwarded to the ingress CE. . The functionality of the IPv4 forwarding plane 
   in this scenario is identical from a data plane forwarding perspective to Dual Stack IPv4 forwarding scenario.
	</t>
		   
		     <figure anchor="soft4" title="6to4 Softwire - IPv6 Edge over an IPv4-Only Core">
       <artwork align="center">

                          +--------+   +--------+
                          |  IPv4  |   |  IPv4  |
                          | Client |   | Client |
                          | Network|   | Network|
                          +--------+   +--------+
                              |   \     /   |
                              |    \   /    |
                              |     \ /     |
                              |      X      |
                              |     / \     |
                              |    /   \    |
                              |   /     \   |
                          +--------+   +--------+
                          |  AFBR  |   |  AFBR  |
                       +--| IPv4/6 |---| IPv4/6 |--+
                       |  +--------+   +--------+  |
       +--------+      |                           |       +--------+
       |  IPv4  |      |                           |       |  IPv4  |
       | Client |      |                           |       | Client |
       | Network|------|            IPv4           |-------| Network|
       +--------+      |            only           |       +--------+
                       |                           |
                       |  +--------+   +--------+  |
                       +--|  AFBR  |---|  AFBR  |--+
                          | IPv4/6 |   | IPv4/6 |
                          +--------+   +--------+
                            |   \     /   |
                            |    \   /    |
                            |     \ /     |
                            |      X      |
                            |     / \     |
                            |    /   \    |
                            |   /     \   |
                         +--------+   +--------+
                         |  IPv6  |   |  IPv4  |
                         | Client |   | Client |
                         | Network|   | Network|
                         +--------+   +--------+

  
         </artwork>
     </figure>                   
    
         	</section>
 

   	        	
 
        <section anchor="rfc5565v6" title="4to6 Softwire IPv6-Only Core packet walk">
						
	<t>4to6 softwire where IPv4-Edge eBGP IPv4 peering where IPv6 packets at network Edge traverse a IPv6-Only Core</t> 

	<t>	
   In the scenario where IPv6 packets originating from a PE-CE edge are tunneled over an MPLS or Segment Routing IPv4 underlay core network, the PE and CE only have an IPv4 address configured on the interface.
   In this scenario the IPv6 packets that ingress the CE from within the CE AS are over an IPv4-Only interface and are forwarded to an IPv6 NLRI destination prefix learned from the Pure Transport Single IPv4 BGP Peer. 
   In the IPv4-Only Edge peering architecture the PE is IPv4-Only as all PE-CE interfaces are IPv4-Only.  However, on the CE, the PE-CE interface is the only interface that is IPv4-Only and all other interfaces 
   may or may not be IPv4-Only.  Following the data plane packet flow, IPv6 packets are forwarded from the ingress CE to the IPv4-Only ingress PE where the VPN label imposition push per prefix, per-vrf, per-CE 
   occurs and the labeled packet is forwarded over a 4to6 softwire IPv6-Only core, to the egress PE where the VPN label disposition pop occurs and the native IPv6 packet is forwarded to the egress CE.  
   In the reverse direction IPv6 packets are forwarded from the egress CE to egress PE where the VPN label imposition per prefix, per-vrf, per-CE push occurs and the labeled packet is forwarded back over 
   the 4to6 softwire IPv6-Only core, to the ingress PE where the VPN label disposition pop occurs and the native IPv6 packet is forwarded to the ingress CE. . The functionality of the IPv4 forwarding plane 
   in this scenario is identical from a data plane forwarding perspective to Dual Stack IPv4 / IPv6 forwarding scenario.
	</t>

				        	                 
		     <figure anchor="soft6" title="4to6 Softwire - IPv4 Edge over an IPv6-Only Core">
       <artwork align="center">
                     
                          +--------+   +--------+
                          |  IPv4  |   |  IPv4  |
                          | Client |   | Client |
                          | Network|   | Network|
                          +--------+   +--------+
                              |   \     /   |
                              |    \   /    |
                              |     \ /     |
                              |      X      |
                              |     / \     |
                              |    /   \    |
                              |   /     \   |
                          +--------+   +--------+
                          |  AFBR  |   |  AFBR  |
                       +--| IPv4/6 |---| IPv4/6 |--+
                       |  +--------+   +--------+  |
       +--------+      |                           |       +--------+
       |  IPv6  |      |                           |       |  IPv6  |
       | Client |      |                           |       | Client |
       | Network|------|            IPv6           |-------| Network|
       +--------+      |            only           |       +--------+
                       |                           |
                       |  +--------+   +--------+  |
                       +--|  AFBR  |---|  AFBR  |--+
                          | IPv4/6 |   | IPv4/6 |
                          +--------+   +--------+
                            |   \     /   |
                            |    \   /    |
                            |     \ /     |
                            |      X      |
                            |     / \     |
                            |    /   \    |
                            |   /     \   |
                         +--------+   +--------+
                         |  IPv4  |   |  IPv4  |
                         | Client |   | Client |
                         | Network|   | Network|
                         +--------+   +--------+

               

        </artwork>
     </figure>           


  	</section>	 	
  </section>

 	<section anchor="diff" title="RFC5549 and RFC8950 Applicability to IPv4-Only PE Design">

		<section anchor="applicability" title="IPv4-Only Edge Peering design next-hop encoding">
	
	<t>
	This section describes <xref target="RFC8950"/> next hop encoding updates to <xref target="RFC5549"/> applicability to this specification. 
    IPv4-Only eBGP Edge PE-CE peering to carry IPv4 Unicast NLRI &lt;AFI/SAFI&gt; IPv4 &lt;1/1&gt; over an IPv6 next hop BGP capability extended hop encoding IANA capability codepoint value 5 defined
    is applicable to both <xref target="RFC5549"/> and <xref target="RFC8950"/> as IPv4 Unicast NLRI &lt;AFI/SAFI&gt; IPv4 &lt;1/1&gt; does not change in the RFC updates.
	</t>  
 
 	<t>
    IPv4 packets over an IPv6-Only core 4to6 Softwire E2E packet flow is part of the IPv6-Only PE design and this same style next hop encoding applies to 6to4 Softwire IPv6 NLRI over IPv4 next hop with 4 byte Next hop encoding and not IPv4 mapped IPv6 address. 
    <xref target="RFC8950"/> updates <xref target="RFC5549"/> for &lt;AFI/SAFI&gt; VPN-IPV4 &lt;1/128&gt;, and Multicasat VPN &lt;1/129&gt;	
	</t> 
		   </section>
	
			<section anchor="update" title="RFC8950 updates to RFC5549 applicability">

	<t>
	This section describes the <xref target="RFC8950"/> next hop encoding updates to  <xref target="RFC5549"/> 
 	</t> 	
	
    <t>
	In <xref target="RFC5549"/> when AFI/SAFI 1/128 is used, the next-hop address
    is encoded as an IPv6 address with a length of 16 or 32 bytes.
    This document modifies how the next-hop address is encoded to accommodate all existing implementations and bring consistency
    with VPNv4oIPv4 and VPNv6oIPv6.  The next-hop address is now encoded
    as a VPN-IPv6 address with a length of 24 or 48 bytes <xref target="RFC8950"/> (see
    Sections 3 and 6.2 of this document).  This change addresses Erratum ID 5253
    (Err5253).  As all known and deployed implementations are
    interoperable today and use the new proposed encoding, the change
    does not break existing interoperability.  Updates to <xref target="RFC8950"/> is applicable to the IPv6-Only PE-CE edge design for the 
    IPv6 next hop encoding E2E test case of IPv4 packets over and IPv6-Only core 4to6 Softwire.  In this test case IPv4 Unicast NLRI &lt;AFI/SAFI&gt; IPv4 &lt;1/1&gt; is 
    advertised over the PE to RR core peering 4to6 softwire in &lt;AFI/SAFI&gt; VPN-IPV4 &lt;1/128&gt;.  In this test case label allocation mode comes into play which is discussed in section 8.9. 
 	</t>   
      
   
   
	<t>
	<xref target="RFC5549"/> next hop encoding of MP_REACH_NLRI with:
   <list style="symbols">

   <t>NLRI= NLRI as per current AFI/SAFI definition</t>
	</list>
	</t>
	<t>
	 Advertising with [RFC4760] MP_REACH_NLRI with:
	<list style="symbols">

   <t>AFI = 1</t>

   <t>SAFI = 128 or 129</t>

   <t>Length of Next Hop Address = 16 or 32</t>


   <t>NLRI= NLRI as per current AFI/SAFI definition</t>
	</list>	
	</t>
	
	<t>
	<xref target="RFC8950"/> next hop encoding of MP_REACH_NLRI with:
   <list style="symbols">

   <t>NLRI= NLRI as per current AFI/SAFI definition</t>
	</list>
	</t>	
	<t>
	 Advertising with [RFC4760] MP_REACH_NLRI with:
	<list style="symbols">

   <t>AFI = 1</t>

   <t>SAFI = 128 or 129</t>

   <t>Length of Next Hop Address = 24 or 48</t>

   <t>Next Hop Address = VPN-IPv6 address of next hop with an 8-octet RD set to zero (potentially followed
      by the link-local VPN-IPv6 address of the next hop with an 8-octet RD is set to zero).</t>
	
	   <t>NLRI= NLRI as per current AFI/SAFI definition</t>
	</list>	
	</t>	

	     	</section>
	    </section>
  	</section>	
 		
	<section anchor="ProofOfConcept" title="IPv4-Only PE Design Edge E2E Test Cases">

	<t>
    Proof of conept interoperability testing of the 4 test cases between the 5 vendors Cisco, Juniper, Arista, Nokia and Huawei. 
	</t>		
       	         	      	
      	
  	     <section anchor="test1" title="Test-1 E2E IPv4-Only PE-CE, Global Table over IPv4-Only Core(6PE), 6to4 softwire ">	
			 
				 
 
  		     <figure anchor="test1a" title="Test-1 E2E IPv4-Only PE-CE, Global Table over IPv4-Only Core (6PE)">
       <artwork align="center">
		   
                               ________		   
     IPv4-Only       _____    /        \                 IPv4-Only
      PE / CE       /     \__/          \___              PE / CE        
  +----+  +----+   /                        \        +------+   +-----+
  |    |  |    |  |                          |_      |      |   |     |
  |    |  |    |  |                             \    |      |   |     |
  | CE |--| PE |--\         IPv4-Only Core      |----|  PE  |---|  CE |
  |    |  |    |    \0=========Underlay =======0|    |      |   |     |
  +----+  +----+     \                        __/    +------+   +-----+
  IPv4 BGP peer       \     MPLS / SR domain /         IPv4 BGP peer
  IPv4 forwarding      \__         __       /          IPv4 forwarding
  IPv6 forwarding         \_______/  \_____/           IPv6 forwarding 
 
 

          </artwork>
     </figure>  
 
 	<t>	
    Cisco, Juniper, Arista, Nokia, Huawei code and platform and test results.
	</t>		
	
 	<t>		
    Cisco: Edge Router- XR ASR 9910 IOS XR 7.4.1, Core Router- NCS 6000 7.2.2, CRS-X 6.7.4  
	</t>
	
 	<t>    
    Juniper: Edge Router- MX platform MX480, MX960, Core Router- PTX Platform PTX5000, PTC10K8 (JUNOS and EVO) Release 20.4R2
	</t>
	<t>
 	</t>   

   	<t> 
    Arista: 
 	</t> 
 	
 	<t>    
    Nokia: Edge and Core-7750 Service Router, Release R21
 	</t>  
 	   
    <t>
    Huawei: Edge and Core-VRPv8, Release VRP-V800R020C10
	</t>	
   
     	</section>      	
 
  	     <section anchor="test2" title="Test-2 E2E IPv4-Only PE-CE, VPN over IPv4-Only Core, 6to4 Softwire">	
 
	
 
 
  		     <figure anchor="test2a" title="Test-2 E2E IPv4-Only PE-CE, VPN over IPv4-Only Core">
       <artwork align="center">
		   
                               ________		   
     IPv4-Only       _____    /        \                 IPv4-Only
      PE / CE       /     \__/          \___              PE / CE        
  +----+  +----+   /                        \        +------+   +-----+
  |    |  |    |  | 0====VPN Overlay Tunnel ==0|     |      |   |     |
  |    |  |    |  |                             \    |      |   |     |
  | CE |--| PE |--\         IPv4-Only Core      |----|  PE  |---|  CE |
  |    |  |    |    \0=========Underlay =======0|    |      |   |     |
  +----+  +----+     \                        __/    +------+   +-----+
  IPv4 BGP peer       \   MPLS / SR domain   /         IPv4 BGP peer
  IPv4 forwarding      \__         __       /          IPv4 forwarding
  IPv6 forwarding         \_______/  \_____/           IPv6 forwarding 
 
 

          </artwork>
     </figure>  

 	<t>	
    Cisco, Juniper, Arista, Nokia, Huawei code and platform and test results.
	</t>		
	
 	<t>		
    Cisco: Edge Router- XR ASR 9910 IOS XR 7.4.1, Core Router- NCS 6000 7.2.2, CRS-X 6.7.4  
	</t>
	
 	<t>    
    Juniper: Edge Router- MX platform MX480, MX960, Core Router- PTX Platform PTX5000, PTC10K8 (JUNOS and EVO) Release 20.4R2
	</t>
	<t>
 	</t>   

   	<t> 
    Arista: 
 	</t> 
 	
 	<t>    
    Nokia: Edge and Core-7750 Service Router, Release R21
 	</t>  
 	   
    <t>
    Huawei: Edge and Core-VRPv8, Release VRP-V800R020C10
	</t>
 	
 	   </section> 

  	     <section anchor="test3" title="Test-3 E2E IPv4-Only PE-CE, Global Table over IPv6-Only Core (4PE), 4to6 Softwire ">	


 
  		     <figure anchor="test3a" title="Test-3 E2E IPv4-Only PE-CE, Global Table over IPv6-Only Core (4PE)">
       <artwork align="center">
		   
                               ________		   
     IPv4-Only       _____    /        \                 IPv4-Only
      PE / CE       /     \__/          \___              PE / CE        
  +----+  +----+   /                        \        +------+   +-----+
  |    |  |    |  |                          |_      |      |   |     |
  |    |  |    |  |                             \    |      |   |     |
  | CE |--| PE |--\         IPv4-Only Core      |----|  PE  |---|  CE |
  |    |  |    |    \0=========Underlay =======0|    |      |   |     |
  +----+  +----+     \                        __/    +------+   +-----+
  IPv4 BGP peer       \     MPLS / SR domain /         IPv4 BGP peer
  IPv4 forwarding      \__         __       /          IPv4 forwarding
  IPv6 forwarding         \_______/  \_____/           IPv6 forwarding 
 
 

          </artwork>
     </figure>  
 
 	<t>	
    Cisco, Juniper, Arista, Nokia, Huawei code and platform and test results.
	</t>		
	
 	<t>		
    Cisco: Edge Router- XR ASR 9910 IOS XR 7.4.1, Core Router- NCS 6000 7.2.2, CRS-X 6.7.4  
	</t>
	
 	<t>    
    Juniper: Edge Router- MX platform MX480, MX960, Core Router- PTX Platform PTX5000, PTC10K8 (JUNOS and EVO) Release 20.4R2
	</t>
	<t>
 	</t>   

   	<t> 
    Arista: 
 	</t> 
 	
 	<t>    
    Nokia: Edge and Core-7750 Service Router, Release R21
 	</t>  
 	   
    <t>
    Huawei: Edge and Core-VRPv8, Release VRP-V800R020C10
	</t>
 	        
     	</section>      	
 
  	     <section anchor="test4" title="Test-4 E2E IPv4-Only PE-CE, VPN over IPv6-Only Core, 4to6 Softwire">	


 
  		     <figure anchor="test4a" title="Test-4 E2E IPv4-Only PE-CE, VPN over IPv6-Only Core">
       <artwork align="center">
		   
                               ________		   
     IPv4-Only       _____    /        \                 IPv4-Only
      PE / CE       /     \__/          \___              PE / CE        
  +----+  +----+   /                        \        +------+   +-----+
  |    |  |    |  | 0====VPN Overlay Tunnel ==0|     |      |   |     |
  |    |  |    |  |                             \    |      |   |     |
  | CE |--| PE |--\         IPv4-Only Core      |----|  PE  |---|  CE |
  |    |  |    |    \0=========Underlay =======0|    |      |   |     |
  +----+  +----+     \                        __/    +------+   +-----+
  IPv4 BGP peer       \    MPLS / SR domain  /         IPv4 BGP peer
  IPv4 forwarding      \__         __       /          IPv4 forwarding
  IPv6 forwarding         \_______/  \_____/           IPv6 forwarding 
 
 

          </artwork>
     </figure>  

 	<t>	
    Cisco, Juniper, Arista, Nokia, Huawei code and platform and test results.
	</t>		
	
 	<t>		
    Cisco: Edge Router- XR ASR 9910 IOS XR 7.4.1, Core Router- NCS 6000 7.2.2, CRS-X 6.7.4  
	</t>
	
 	<t>    
    Juniper: Edge Router- MX platform MX480, MX960, Core Router- PTX Platform PTX5000, PTC10K8 (JUNOS and EVO) Release 20.4R2
	</t>
	<t>
 	</t>   

   	<t> 
    Arista: 
 	</t> 
 	
 	<t>    
    Nokia: Edge and Core-7750 Service Router, Release R21
 	</t>  
 	   
    <t>
    Huawei: Edge and Core-VRPv8, Release VRP-V800R020C10
	</t>

     	</section>  
     	
  	     <section anchor="pingtrace" title="IPv4-Only PE-CE Operational Considerations Testing">	
 
  		     <figure anchor="pingtrace1" title="Ping and Trace Test Case">
       <artwork align="center">
		   
		       Ping CE to PE when destination prefix is withdrawn
		       Traceroute CE to PE and test all ICMPv4 and ICMPv6 type codes
 
                   +-------+                +-------+
                   |       |  IPv4 Only     |       |
                   |   CE  |----------------|  PE   |
                   |       |  IPv4 BGP Peer |       | 
                   +-------+                +-------+
                  IPv4 forwarding            IPv4 forwarding 
                  IPv6 forwarding            IPv6 forwarding
 
          </artwork>
     </figure>       

 	<t>	
    Cisco, Juniper, Arista, Nokia, Huawei code and platform and test results.
	</t>		
	
 	<t>		
    Cisco: Edge Router- XR ASR 9910 IOS XR 7.4.1, Core Router- NCS 6000 7.2.2, CRS-X 6.7.4  
	</t>
	
 	<t>    
    Juniper: Edge Router- MX platform MX480, MX960, Core Router- PTX Platform PTX5000, PTC10K8 (JUNOS and EVO) Release 20.4R2
	</t>
	<t>
    Tested v4 edge over v6 core in a virtual setup using vMX platforrm and 20.4R2 and LDPv6 as underlay, but there were some data plane forwarding issues.
    Tested same setup on latest release 21.4 and it worked. Investigating what the minimum version is for this setup to work.
 	</t>   

   	<t> 
    Arista: 
 	</t> 
 	
 	<t>    
    Nokia: Edge and Core-7750 Service Router, Release R21
 	</t>  
 	   
    <t>
    Huawei: Edge and Core-VRPv8, Release VRP-V800R020C10
	</t>
  	         
     	</section>    	
  	</section>


 
   	<section anchor="considerations" title="Operational Considerations">
		  
   	<t>
    With a single IPv4 Peer carrying both IPv4 and IPv6 NLRI there are some operational considerations in terms of what changes and what does not change.
    </t>
	
	<t>What does not change with a single IPv6 transport peer carrying IPv4 NLRI and IPv6 NLRI below:</t> 

	
	<t>Routing Policy configuration is still separate for IPv4 and IPv6 configured by capability as previously.</t>
	
	<t>Layer 1, Layer 2 issues such as one-way fiber or fiber cut will impact both IPv4 and IPv6 as previously.</t>
	
	<t>If the interface is in the Admin Down state, the IPv6 peer would go down, and IPv4 NLRI and IPv6 NLRI would be withdrawn as previously.</t>

	
    <t>Changes resulting from a single IPv4 transport peer carrying IPv4 NLRI and IPv6 NLRI below:</t> 
	
	
	<t>Physical interface is no longer dual stacked.</t>  
	
	<t>Any change in IPv4 address will impact both IPv4 and IPv6 NLRI exchange.</t>

	<t>Single BFD session for both IPv4 and IPv6 NLRI fate sharing as the session is now tied to the transport, which now is only IPv4 address family.</t>
	
	<t>Both IPv4 and IPv6 peer now exists under the IPv4 address family configuration.</t>
	
	<t>Fate sharing of IPv4 and IPv6 address family from a logical perspective now carried over a single physical IPv4 peer.</t>
	
	<t>
	From an operations perspective, prior to elimination of IPv6 peers, an audit is recommended to identify and IPv4 and IPv6 peering 
	incongruencies that may exist and to rectify them.  No operational impacts or issues are expected with this change.
	</t>
	
    <t>
	With MPLS VPN overlay, per-CE next-hop label allcoation mode where both IPv4 and IPv6 prefixes have the same label in no table lookup pop-n-forward mode should be taken into consideration.
	</t>
	
    </section>
     
 
	
    <section anchor="IANA" title="IANA Considerations">
    <t> There are not any IANA considerations.
    </t>
	
    </section>
    <section anchor="security" title="Security Considerations">
	<t>
   The extensions defined in this document allow BGP to propagate
   reachability information about IPv6 prefixes over an MPLS or SR IPv4-Only core
   network.  As such, no new security issues are raised beyond those
   that already exist in BGP-4 and the use of MP-BGP for IPv6.  Both IPv4 and IPv6 peers exist under the IPv6 address family configuration.

   The security features of BGP and corresponding security policy
   defined in the ISP domain are applicable.

   For the inter-AS distribution of IPv4 routes according to case (a) of
   Section 4 of this document, no new security issues are raised beyond
   those that already exist in the use of eBGP for IPv6 <xref target="RFC2545"/>.
	   
    </t>

	</section>
	<section anchor="ack" title="Acknowledgments">
		<t>Thanks to Kaliraj Vairavakkalai, Linda Dunbar, Aijun Wang, Eduardfor Vasilenko, Joel Harlpern, Michael McBride, Ketan Talaulikar for review comments.</t>        
	</section>

<section anchor="CONTRIB" title="Contributors">

  <t>The following people contributed substantive text to this document:</t>

  <figure><artwork><![CDATA[
    Mohana Sundari
    EMail: mohanas@juniper.net

  ]]></artwork></figure>

</section>	
	
  </middle>
  <back>
    <references title="Normative References">
      &RFC2119;
	  &RFC2545;
	  &RFC4291;
	  &RFC4364;
	  &RFC4760;
	  &RFC5492;
	  &RFC8174;
	  &RFC8277; 	  
    </references>
	<references title="Informative References">
	&DYN-CAP;
	&RFC4659;
	&RFC4684;
	&RFC4798;
	&RFC4925;
	&RFC8126;
	&RFC5549;
	&RFC5565;
	&RFC6074;
	&RFC6513;
	&RFC6514;
    &RFC8950;	 
    </references>
    <!-- references title="Informative References">
    </references -->

       
  </back>
</rfc>       
       
