Network Working Group                                            K. Omar
Internet-Draft                                                  The Road
Intended status: Standards Track                       November 13, 2018
Expires: May 17, 2019


            Internet Protocol Mixture (IPmix) Specification
                          draft-omar-ipmix-01

Abstract

   This document specifies the Internet Protocol Mixture (IPmix). a
   solution that allows IPv4-only hosts to communicate with IPv6-only
   hosts and vice versa.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on May 17, 2019.

Copyright Notice

   Copyright (c) 2018 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.





Omar                      Expires May 17, 2019                  [Page 1]


Internet-Draft                    IPmix                    November 2018


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Notational Conventions and Terminology  . . . . . . . . . . .   4
   3.  Internet Protocol Mixture (IPmix) . . . . . . . . . . . . . .   4
   4.  The Four Types of Communication . . . . . . . . . . . . . . .   5
     4.1.  IPmix: IPv6 Host to IPv4 Host . . . . . . . . . . . . . .   5
     4.2.  IPmix: IPv4 Host to IPv6 Host . . . . . . . . . . . . . .   7
     4.3.  IPmix: IPv6 Host to IPv6 Host . . . . . . . . . . . . . .   8
     4.4.  IPmix: IPv4 Host to IPv4 Host . . . . . . . . . . . . . .  10
   5.  IPmix Packet Header Format  . . . . . . . . . . . . . . . . .  12
   6.  Advantages of IPmix . . . . . . . . . . . . . . . . . . . . .  13
   7.  IPv10 with DNS  . . . . . . . . . . . . . . . . . . . . . . .  14
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  15
   9.  Security Considerations . . . . . . . . . . . . . . . . . . .  15
   10. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  15
   11. References  . . . . . . . . . . . . . . . . . . . . . . . . .  16
     11.1.  Normative References . . . . . . . . . . . . . . . . . .  16
     11.2.  Informative References . . . . . . . . . . . . . . . . .  16
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  16

1.  Introduction

   IPmix is a solution designed to allow IP version 6 [RFC2460] to
   communicate to IP version 4 (IPv4) [RFC791] and vice versa.

   Internet is the global wide network used for communication between
   hosts connected to it.

   These connected hosts (PCs, servers, routers, mobile devices, etc.)
   must have a global unique addresses to be able to communicate through
   the Internet and these unique addresses are defined in the Internet
   Protocol (IP).

   The first version of the Internet Protocol is IPv4. - When IPv4 was
   developed in 1975, it was not expected that the number of connected
   hosts to the Internet reach a very huge number of hosts more than the
   IPv4 address space, also it was aimed to be used for experimental
   purposes in the beginning. - IPv4 is (32-bits) address allowing
   approximately 4.3 billion unique IP addresses.

   A few years ago, with the massive increase of connected hosts to the
   Internet, IPv4 addresses started to run out.

   Three short-term solutions (CIDR, Private addressing, and NAT) were
   introduced in the mid-1990s but even with using these solutions, the
   IPv4 address space ran out in February, 2011 as announced by IANA,




Omar                      Expires May 17, 2019                  [Page 2]


Internet-Draft                    IPmix                    November 2018


   The announcement of depletion of the IPv4 address space by the RIRs
   is as follows:

   o  April, 2011: APNIC announcement.

   o  September, 2012: RIPE NCC announcement.

   o  June, 2014: LACNIC announcement.

   o  September, 2015: ARIN announcement.

   A long term solution (IPv6) was introduced to increase the address
   space used by the Internet Protocol and this was defined in the
   Internet Protocol version 6 (IPv6).  IPv6 was developed in 1995 by
   the Internet Engineering Task Force (IETF).  IPv6 is (128-bits)
   address and can support a huge number of unique IP addresses that is
   approximately equals to 2^128 unique addresses.

   So, the need for IPv6 became a vital issue to be able to support the
   massive increase of connected hosts to the Internet after the IPv4
   address space exhaustion.  The migration from IPv4 to IPv6 became a
   necessary thing, but unfortunately, it would take decades for this
   full migration to be accomplished. 23 years have passed since IPv6
   was developed, but no full migration happened till now and this would
   cause the Internet to be divided into two parts, as IPv4 still
   dominating on the Internet traffic (75% as measured by Google in
   November, 2018) and new Internet hosts will be assigned IPv6-only
   addresses and be able to communicate with 25% only of the Internet
   services and apps. -

   So, the need for solutions for the IPv4 and IPv6 coexistence became
   an important issue in the migration process as we cannot wake up in
   the morning and find all IPv4 hosts are migrated to be IPv6 hosts,
   especially, as most enterprises have not do this migration for
   creating a full IPv6 implementation.

   Also, the request for using IPv6 addresses in addition to the
   existing IPv4 addresses (IPv4/IPv6 Dual Stacks) in all enterprise
   networks have not achieve a large implementation that can make IPv6
   the most dominated IP in the Internet as many people believe that
   they will not have benefits from just having a larger IP address bits
   and IPv4 satisfies their needs, also, not all enterprises devices
   support IPv6 and also many people are afraid of the service outage
   that can be caused due to this migration.

   The recent solutions for IPv4 and IPv6 coexistence are: Native dual
   stack (IPv4 and IPv6) Tunneling NAT64 Dual-stack Lite 464xlat MAP




Omar                      Expires May 17, 2019                  [Page 3]


Internet-Draft                    IPmix                    November 2018


   (other technologies also exist, like lw6over4; they may have more
   specific use cases).

   IPv4/IPv6 Dual Stack, allows both IPv4 and IPv6 to coexist by using
   both IPv4 and IPv6 addresses for all hosts at the same time, but this
   solution does not allows IPv4 hosts to communicate to IPv6 hosts and
   vice versa.  Also, after the depletion of the IPv4 address space, new
   Internet hosts will not be able to use IPv4/IPv6 Dual Stacks.

   Tunneling, allows IPv6 hosts to communicate to each other through an
   IPv4 network, but still does not allows IPv4 hosts to communicate to
   IPv6 hosts and vice versa.

   NAT-PT, allows IPv6 hosts to communicate to IPv4 hosts with only
   using hostnames and getting DNS involved in the communication process
   but this solution was inefficient because it does not allows
   communication using direct IP addresses, also the need for so much
   protocol translations of the source and destination IP addresses made
   the solution complex and not applicable thats why it was moved to the
   Historic status in the RFC 2766.  Also, NAT64 requires so much
   protocol translations and statically configured bindings, and also
   getting a DNS64 involved in the communication process.

2.  Notational Conventions and Terminology

   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 [RFC2119][RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  Internet Protocol Mixture (IPmix)

   IPmix is the solution presented in this Internet draft. - It solves
   the issue of allowing IPv6 only hosts to communicate to IPv4 only
   hosts and vice versa in a simple and very efficient way, especially
   when the communication is done using both direct IP addresses and
   when using hostnames between IPmix hosts, as there is no need for
   protocol translations or getting the DNS involved in the
   communication process more than its normal address resolution
   function.

   IPmix allows hosts from two IP versions (IPv4 and IPv6) to be able to
   communicate, and this can be accomplished by having an IPmix packet
   containing a mixture of IPv4 and IPv6 addresses in the same IP packet
   header.





Omar                      Expires May 17, 2019                  [Page 4]


Internet-Draft                    IPmix                    November 2018


   From here the name of IPmix arises, as the IP packet can contain
   (IPv6 + IPv4 /IPv4 + IPv6) addresses in the same layer 3 packet
   header.

4.  The Four Types of Communication

4.1.  IPmix: IPv6 Host to IPv4 Host

- IPmix Packet:


         |<-------- 128-bit ------>|<-------------------- 128-bit -------------------->|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Data|   Source IPv6 Address   |    64:FF9B:   Destination IPv4 Address    ::1     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                   |<-- 32-bit -->|<------- 32-bit ------->|<-64-bit-->|


   - The destination address is 128-bit, when the 1st 32-bits are 64:FF9B, the router
     will know that the 3rd and 4th groups is an IPv4-embedded address.



- Sending IPmix host TCP/IP Configuration:


      IP Address:               IPv6 Address
      Prefix Length:            /length
      Default Gateway:        IPv6 Address (Optional)
      DNS Addresses:        IPv6/IPv4 Address





















Omar                      Expires May 17, 2019                  [Page 5]


Internet-Draft                    IPmix                    November 2018


- Example of IPmix Operation:
  ---------------------------

         R1 has IPv6 routing enabled & R2 has IPv4/IPv6 routing enabled

IPvmix Host                                                                         IPmix Host
                priority=6     priority=4 (default)                 NAT
   PC-1             R1             *                                 R2                PC-2
  +----+                         *   *                                                +----+
  |    |  2001:1::1  *         *       *     64:FF9B:50.8.2.1::1/64   *               |    |
  |    |o---------o* X *o---o*   IPv4    *o------------------------o* X *o-----------o|    |
  +----+             *     *               *            50.8.2.1/30   *  192.168.1.1  +----+
 /    /                      *  Network  *                                           /    /
+----+                         *       *                                            +----+
                                 *   *
IPv6: 2001:1::10/64                *                                       IPv4: 192.168.1.10/24
DG  : 2001:1::1                                                            DG  : 192.168.1.1

      |      128-bit    |          128-bit        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Data |    2001:1::10   |   64:FF9B:50.8.2.1::1   |--->
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       Src. IPv6 Address    Dest. IPv6 Address

                                                        |      128-bit    |           128-bit         |
                                                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                                  |Data |    2001:1::10   |  64:FF9B:192.168.1.10::1  |--->
                                                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                                         Src. IPv6 Address      Dest. IPv6 Address


                     IPmix: IPv6 host to IPv4 host

   Note:

   o  The IPv6 address assigned to R2's external interface must be the
      public IPv4 address embedded in an IPv6 address that starts with
      "64:FF9B" and ends with "::1".

   o  A priority value can be configured on every router that determines
      which routing table to use when the destination address is an IPv4
      embedded address.

   o  Priority = 4 (default), means that the router will use the IPv4
      routing table first if the destination is an IPv4-embedded
      address.





Omar                      Expires May 17, 2019                  [Page 6]


Internet-Draft                    IPmix                    November 2018


   o  Priority = 6, means that the router will use the IPv6 routing
      table first if the destination is an IPv4-embedded address.

   o  Only R1 will be configured to priority = 6 to use the IPv6 routing
      table first to route the IPv4-embedded IPv6 address.

   o  Other routers will keep using the default priority value (4) to
      use the IPv4 routing table first to route the IPv4-embedded
      address.

4.2.  IPmix: IPv4 Host to IPv6 Host

- IPmix Packet:


         |<----------------- 128-bit --------------->|<--------- 128-bit --------->|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Data|   64:FF9B:  Source IPv4 Address    ::1    |  Destination IPv6 Address   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         |<- 32-bit ->|<---- 32-bit ---->|<-64-bit-->|


- Sending IPmix host TCP/IP Configuration:


      IP Address:               IPv4 Address
      Subnet Mask:              /mask
      Default Gateway:        IPv4 Address
      DNS Addresses:        IPv4/IPv6 Address






















Omar                      Expires May 17, 2019                  [Page 7]


Internet-Draft                    IPmix                    November 2018


IPmix Host                                                                         IPmix Host
                                                                    NAT
   PC-1             R1             *                                 R2                PC-2
  +----+                         *   *                                                +----+
  |    |  2001:1::1  *         *       *     64:FF9B:50.8.2.1::1/64   *               |    |
  |    |o---------o* X *o---o*   IPv6    *o------------------------o* X *o-----------o|    |
  +----+             *     *               *            50.8.2.1/30   *  192.168.1.1  +----+
 /    /                      *  Network  *                                           /    /
+----+                         *       *                                            +----+
                                 *   *
IPv6: 2001:1::10/64                *                                        IPv4: 192.168.1.10/24
DG  : 2001:1::1                                                             DG  : 192.168.1.1


                                                        |       128-bit     |          128-bit        |
                                                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                              <---|Data |     2001:1::10    | 64:FF9B:192.168.1.10::1 |
                                                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                                         Dest. IPv6 Address       Src. IPv6 Address



                                   |      128-bit    |          128-bit        |
                             +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                         <---|Data |    2001:1::10   |   64:FF9B:50.8.2.1::1   |
                             +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                    Dest. IPv6 Address     Src. IPv6 Address


                    IPv10: IPv4 host to IPv6 host

   Note:

   o  Because the destination address is not an IPv4-embedded address,
      R2 will use the IPv6 routing table normally to route the packet.

4.3.  IPmix: IPv6 Host to IPv6 Host














Omar                      Expires May 17, 2019                  [Page 8]


Internet-Draft                    IPmix                    November 2018


   - IPmix Packet:


            |        128-bit        |          128-bit            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Data|  Source IPv6 Address  |  Destination IPv6 Address   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   - Sending IPmix host TCP/IP Configuration:


         IP Address:               IPv6 Address
         Prefix Length:            /Length
         Default Gateway:        IPv6 Address (Optional)
         DNS Addresses:        IPv6/IPv4 Address

- Example of IPmix Operation:
  ---------------------------

                     R1 & R2 have IPv6 routing enabled
IPmix Host                                                   IPmix Host

   PC-1             R1             *            R2              PC-2
  +----+                         *   *                         +----+
  |    |             *         *       *         *             |    |
  |    |o---------o* X *o---o*   IPv6    *o---o* X *o---------o|    |
  +----+  2001:1::1  *     *               *     *  3001:1::1  +----+
 /    /                      *  Network  *                    /    /
+----+                         *       *                     +----+
                                 *   *
IPv6: 2001:1::10/64                *              IPv6: 3001:1::10/64
DG  : 2001:1::1                                   DG  : 3001:1::1


      |     128-bit     |      128-bit      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Data |   2001:1::10    |     3001:1::10    |--->
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       Src. IPv6 Address  Dest. IPv6 Address

                                   |      128-bit      |      128-bit    |
                             +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                         <---|Data |    2001:1::10     |     3001:1::10  |
                             +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                    Dest. IPv6 Address  Src. IPv6 Address

                         IPmix: IPv6 host to IPv6 host



Omar                      Expires May 17, 2019                  [Page 9]


Internet-Draft                    IPmix                    November 2018


4.4.  IPmix: IPv4 Host to IPv4 Host

- IPmix Packet:


         |                    128-bit                |                       128-bit                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Data|   64:FF9B:  Source IPv4 Address    ::1    |   64:FF9B:  Destination IPv4 Address     ::1    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         |<- 32-bit ->|<---- 32-bit ---->|<-64-bit-->|<- 32-bit ->|<------- 32-bit ------->|<-64-bit-->|

- Sending IPmix host TCP/IP Configuration:


      IP Address:               IPv4 Address
      Subnet Mask:              /Mask
      Default Gateway:        IPv4 Address
      DNS Addresses:        IPv6/IPv4 Address

- Example of IPmix Operation:
  ---------------------------

                                    R1 & R2 have both IPv4/IPv6 routing enabled
                                            priority = 4 (default)
 IPmix Host                                                                                          IPmix Host
                     NAT                                                               NAT
    PC-1              R1                               *                                R2               PC-2
   +----+                                            *   *                                              +----+
   |    |             *  64:FF9B:80.9.3.1::1/64    *       *    64:FF9B:50.8.2.1::1/64   *              |    |
   |    |o---------o* X *o----------------------o*   IPv4    *o-----------------------o* X *o----------o|    |
   +----+   10.1.1.1  *  80.9.3.1/30           *               *           50.8.2.1/30   *  192.168.1.1 +----+
  /    /                                         *  Network  *                                         /    /
 +----+                                            *       *                                          +----+
                                                     *   *
IPv4: 10.1.1.10/24                                     *                                      IPv4: 192.168.1.10/24
DG  : 10.1.1.1                                                                                DG  : 192.168.1.1


      |         128-bit         |       128-bit       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Data |  64:FF9B:10.1.1.10::1   | 64:FF9B:50.8.2.1::1 |--->
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           Src. IPv4 Address      Dest. IPv4 Address



      |         128-bit       |        128-bit      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



Omar                      Expires May 17, 2019                 [Page 10]


Internet-Draft                    IPmix                    November 2018


|Data |  64:FF9B:80.9.3.1::1  | 64:FF9B:50.8.2.1::1 |--->
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           Src. IPv4 Address     Dest. IPv4 Address



                                                          |         128-bit       |       128-bit       |
                                                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                                    |Data |  64:FF9B:80.9.3.1::1  | 64:FF9B:50.8.2.1::1 |--->
                                                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                                              Src. IPv4 Address     Dest. IPv4 Address


                                                          |         128-bit       |          128-bit        |
                                                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                                    |Data |  64:FF9B:80.9.3.1::1  | 64:FF9B:192.168.1.10::1 |--->
                                                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                                              Src. IPv4 Address        Dest. IPv4 Address


                     IPmix: IPv4 host to IPv4 host

   o  Important Notes: All Internet connected hosts must be IPmix hosts
      to be able to communicate regardless the used IP version, and the
      IPmix deployment process can be accomplished by ALL technology
      companies developing OSs for hosts networking and security
      devices.

   When the source is IPv4-embedded address and the destination is IPv6,
   the sending host will consider the destination IPv6 address as an
   IPv4 address not on the same subnet, meaning it should send this
   frame to the default gateway (router).

   Once the router receives the frame, it removes the frame header and
   trailer and checks the destination IPv6 address, then the router
   start to take a routing decision by checking its IPv6 routing table
   and start sending the packet to the next hop through the IPv6
   network.

   When the source is IPv6 and the destination is IPv4-embedded address,
   the sending host will consider the destination IPv6 address as an
   IPv6 address not on the same subnet, meaning it should send this
   frame to the default gateway (router).

   Once the router receives the frame, it removes the frame header and
   trailer and checks the configured priority and start to take a
   routing decision either using the IPv4 routing table or the IPv6
   routing table.



Omar                      Expires May 17, 2019                 [Page 11]


Internet-Draft                    IPmix                    November 2018


   S    D
  IPv4-IPv6    --->  IPv4/IPv6  --->   IPv6 Network  --->      IPv6
 Sending Host          Router                           Destination Host


                                    priority=4(default)  priority=6       S    D
     IPv4        <---  IPv4/IPv6  <---  IPv4 Network  <---  IPv6  <---   IPv6-IPv4
Destination Host        Router                             Router      Sending Host

5.  IPmix Packet Header Format

   The following figure shows the IPmix packet header which is almost
   the same as the IPv6 packet header:

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |Version| Traffic Class |           Flow Label                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         Payload Length        |  Next Header  |   Hop Limit   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                                                               +
      |                                                               |
      +                         Source Address                        +
      |                                                               |
      +                                                               +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                                                               +
      |                                                               |
      +                      Destination Address                      +
      |                                                               |
      +                                                               +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
















Omar                      Expires May 17, 2019                 [Page 12]


Internet-Draft                    IPmix                    November 2018


   Version              4-bit Internet Protocol version number.

                        - 0110 : IPv6 Packet


   Traffic Class        8-bit traffic class field.

   Flow Label           20-bit flow label.

   Payload Length       16-bit unsigned integer.  Length of the payload,
                        i.e., the rest of the packet following
                        this IP header, in octets.  (Note that any
                        extension headers [section 4] present are
                        considered part of the payload, i.e., included
                        in the length count.)

   Next Header          8-bit selector.  Identifies the type of header
                        immediately following the IP header.

   Hop Limit            8-bit unsigned integer.  Decremented by 1 by
                        each node that forwards the packet. The packet
                        is discarded if Hop Limit is decremented to
                        zero.

   Source Address       128-bit address of the originator of the packet.

    +-+-+-+-+-+-+-+-+-+-+-+         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   IPv6 Address      |   OR    |  64:FF9B:IPv4 Address::1  |
    +-+-+-+-+-+-+-+-+-+-+-+         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      128-bit        |         |           128-bit         |


   Destination Address  128-bit address of the intended recipient of the
                        packet (possibly not the ultimate recipient, if
                        a Routing header is present).

    +-+-+-+-+-+-+-+-+-+-+-+         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   IPv6 Address      |   OR    |  64:FF9B:IPv4 Address::1  |
    +-+-+-+-+-+-+-+-+-+-+-+         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      128-bit        |         |           128-bit         |

6.  Advantages of IPmix

   1.  Introduces an efficient way of communication between IPv6 hosts
       and IPv4 hosts.

   2.  Allows IPv4 only hosts to exist and communicate with IPv6 only
       hosts even after the depletion of the IPv4 address space.



Omar                      Expires May 17, 2019                 [Page 13]


Internet-Draft                    IPmix                    November 2018


   3.  Adds flexibility when making a query sent to the DNS for hostname
       resolution as IPv4 and IPv6 hosts can communicate with IPv4 or
       IPv6 DNS servers and the DNS can reply with any record it has
       (either an IPv6 record Host AAAA record or an IPv4 record Host A
       record).

   4.  There is no need to think about migration as both IPv4 and IPv6
       hosts can coexist and communicate to each other which will allow
       the usage of the address space of both IPv4 and IPv6 making the
       available number of connected hosts be bigger.

   5.  IPmix support on "all" Internet connected hosts can be deployed
       in a very short time by technology companies developing OSs (for
       hosts and networking devices), and there will be no dependence on
       enterprise users and it is just a software development process in
       the NIC cards of all hosts to allow encapsulating both IPv4 and
       IPv6 in the same IP packet header.

   6.  Offers the four types of communication between hosts:

       *  IPv6 hosts to IPv4 hosts (6 to 4).

       *  IPv4 hosts to IPv6 hosts (4 to 6).

       *  IPv6 hosts to IPv6 hosts (6 to 6).

       *  IPv4 hosts to IPv4 hosts (4 to 4).

7.  IPv10 with DNS






















Omar                      Expires May 17, 2019                 [Page 14]


Internet-Draft                    IPmix                    November 2018


                              DNS Server
                                +----+
    Host AAAA Record            |    |         Host A Record
                    /   ^       |    |      ^  \
                   /   /        |    |       \  \
                  /   /         +----+        \  \
            IPv6 /   /     IPv4/IPv6 Address   \  \ IPv4
            (2) /   /                           \  \
               /   / PC-2                  PC-1  \  \
              /   /  (1)                          \  \
             V   /                                 \  V
    IPmix Host                                         IPmix Host
       PC-1                                                PC-2
      +----+                                              +----+
      |    |                                              |    |
      |    |                                              |    |
      +----+                                              +----+
     /    /   <--------------------------------------->  /    /
    +----+                  IPmix Packets               +----+
                                 (3)
   IPv4-Only Host                                      IPv6-Only Host

 Step-1 ==> PC-1 needs to communicate with PC-2, it sends a query to the
            DNS server (with either IPv4 or IPv6 address) to resolve
            the hostname PC-2.

 Step-2 ==> The DNS server has a AAAA record for PC-2, and reply with
            PC-2's IPv6 address.

 Step-3 ==> PC-1 can now communicate with PC-2 using IPmix packets.


 Similarly, PC-2 can communicate with PC-1 using the same method.

8.  IANA Considerations

   TBC.

9.  Security Considerations

   The security features of IPmix are described in the Security
   Architecture for the Internet Protocol [RFC2401].

10.  Acknowledgements

   The author would like to thank S.  Krishnan, W.  Haddad, L.
   Howard,C.  Huitema, T.  Manderson, JC.  Zuniga, J.  Touch, A.




Omar                      Expires May 17, 2019                 [Page 15]


Internet-Draft                    IPmix                    November 2018


   Sullivan, , K.  Thomann, S.  Bortzmeyer, J.  Linkova, R.  Bonica and
   T.  Herbert for the useful inputs and discussions about IPmix.

11.  References

11.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC2401]  Kent, S. and R. Atkinson, "Security Architecture for the
              Internet Protocol", RFC 2401, DOI 10.17487/RFC2401,
              November 1998, <https://www.rfc-editor.org/info/rfc2401>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

11.2.  Informative References

   [RFC0791]  Postel, J., "Internet Protocol", STD 5, RFC 791,
              DOI 10.17487/RFC0791, September 1981,
              <https://www.rfc-editor.org/info/rfc791>.

Author's Address

   Khaled Omar
   The Road
   6th of October City,
   Giza
   Egypt

   Phone: 2 01003620284
   Email: eng.khaled.omar@hotmail.com















Omar                      Expires May 17, 2019                 [Page 16]