Internet DRAFT - draft-chimiak-enhanced-ipv4
draft-chimiak-enhanced-ipv4
Network Working Group W. Chimiak
Internet-Draft S. Patton
Intended status: Experimental J. Brown
Expires: June 10, 2016 Laboratory for Telecommunication Sciences
J. Bezerra
Florida International University
H. Galiza
Rede Nacional de Ensino e Pesquisa (RNP) - NEG AmLight
J. Smith
University of Pennsylvania
December 08, 2015
IPv4 with 64 bit Address Space
draft-chimiak-enhanced-ipv4-02
Abstract
This document describes a solution to the Internet address depletion
problem through use of a clever IPv4 options mechanism as a solution.
This IPv4 protocol extension is called enhanced IP (EnIP). Because
it is IPv4, it maximizes backward compatibility while increasing
address space by a factor of 17.9 million. Unlike other similar
proposals, care was taken to avoid costly changes and requirements to
the core network and border routers, with the exception that options
be passed in that equipment as described below. Because it is
backward compatible, current IPv4 software, network equipment,
firewalls, intrusion detection/protection, and layer 5 firewalls can
be maintained until IPv6 system information security reaches
acceptable maturity and availability.
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 http://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 June 10, 2016.
Chimiak, et al. Expires June 10, 2016 [Page 1]
Internet-Draft IPv4 with 64 bit Address Space December 2015
Copyright Notice
Copyright (c) 2015 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
(http://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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Protocol Transitions . . . . . . . . . . . . . . . . . . 3
1.2. EnIP's Use of IP Options . . . . . . . . . . . . . . . . 4
1.3. Contents of this Paper . . . . . . . . . . . . . . . . . 4
2. Introduction to EnIP (EnIP) . . . . . . . . . . . . . . . . . 5
2.1. EnIP Addressing Example . . . . . . . . . . . . . . . . . 5
2.2. IPv4 Header with EnIP Option Header . . . . . . . . . . . 5
2.2.1. IPv4 Header Fields used for EnIP . . . . . . . . . . 6
3. EnIP Operation . . . . . . . . . . . . . . . . . . . . . . . 8
3.1. IPv4 NAT Explanation using Figure 2 . . . . . . . . . . . 8
3.1.1. Typical Private IPv4 Host to a Typical Public IPv4
Host using NAT . . . . . . . . . . . . . . . . . . . 8
3.1.2. Typical Private IPv4 Host to a Typical Private IPv4
Host using NAT . . . . . . . . . . . . . . . . . . . 9
3.1.3. Private EnIP Host to a Typical Public IPv4 Host
NAT . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.4. Private EnIP Host to a Typical Private IPv4 Host
using NAT . . . . . . . . . . . . . . . . . . . . . . 10
3.2. Enhanced IPv4 Explanation using an Example Figure 7 . . . 11
3.2.1. EIP1 constructs the Packet . . . . . . . . . . . . . 11
3.2.2. EIP1 Transmits the Packet to N1 . . . . . . . . . . . 12
3.2.3. Packet Arrives at N2 (192.0.2.2) . . . . . . . . . . 12
3.2.4. EIP2 Receives the Packet . . . . . . . . . . . . . . 12
3.2.5. EIP2 Transmits a Packet to EIP1 . . . . . . . . . . . 13
3.2.6. Packet Arrives at N2 . . . . . . . . . . . . . . . . 13
3.2.7. Packet Arrives at N1 . . . . . . . . . . . . . . . . 13
3.3. Upgrading Servers to Support EnIP . . . . . . . . . . . . 14
3.4. DNS Operation . . . . . . . . . . . . . . . . . . . . . . 14
3.5. Information Security . . . . . . . . . . . . . . . . . . 14
4. Tests and Comparisons of EnIP and Typical IPv4 . . . . . . . 15
5. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . 15
Chimiak, et al. Expires June 10, 2016 [Page 2]
Internet-Draft IPv4 with 64 bit Address Space December 2015
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
7. Informative References . . . . . . . . . . . . . . . . . . . 16
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17
1. Introduction
For various reasons, there is a large demand for IP addresses. It
would be useful to have a unique address for each Internet device to
allow, if desired, that any device could call another [Lee-2012].
The Internet of Things would also be able to make use of more
routable addresses if they were available. Currently, this is not
possible with IPv4. IPv6 has presented a potential solution to this
problem but has faced problems with global adoption. Carrier Grade
Network Address Translation and NAT (NAPT) have provided the solution
thus far.
Enhanced IP (EnIP) was designed to minimize impact on core and border
routers. DHCP, ARP, and existing IPv4 routing protocols are
compatible with EnIP. By leveraging private address space in a
similar manner of IP4+4 [Turanyi-2002], EnIP increases available
address space by a factor of 17.9 million [Chimiak-2014] or 17.9
million new addresses for each current routable IP address.
This could allow the reassignment of small segments of unused address
blocks in /8 networks to registries with chronic shortages of IP
addresses.
EnIP packets carry additional address bits and state in an IP option,
eliminating routing table updates like IPv6. EnIP supports end-to-
end connectivity, a shortcoming of NAT, making it easier to implement
mobile networks. Host renumbering is also not required in EnIP as
has been the case with other 64-bit protocol proposals
[Turanyi-2002]. This is a major topic of section 4.
Because current NATs are resource intensive, requiring that state be
maintained, this paper will call these NATs NATs, The stateless NAT
used in EnIP will be called an EnIP NAT.
1.1. Protocol Transitions
Several transitions in the Internet Protocol suite are discussed in
the IEEE paper [Chimiak-2014]. These transitions include Network
Control Program (NCP) to TCP/IP, the evolution of IPv4, and IPv6. It
also refers to network address port translation (NAPT), usually
called NAT [Paul-2014], Nat444 [Shirasaki-2012], Dual-Stack Lite
[RFC6333], NAT64 [RFC6146] and RFC 6144 [RFC6144].
Chimiak, et al. Expires June 10, 2016 [Page 3]
Internet-Draft IPv4 with 64 bit Address Space December 2015
1.2. EnIP's Use of IP Options
EnIP uses IP options to increase address space. Over time, this
fixed-length IP option would need to be added to the fast path
implementations available on core routers [Aweya-1999]. Fast path
implementations are discussed by Hidell et. al. [Hidell-2014]. Fast
path allows core routers to optimize data paths to line cards based
on table lookups. The fast path does not usually process packets
containing IP options [Aweya-1999]. As a result, packets containing
IP options are forwarded to the slow path CPU for processing and
forwarding to the correct line card.
However, a very simple upgrade could be made to the core and border
routers to process EnIP packets in the fast path with the following
simple pseudo code [Chimiak-2014]:
if (IgnoreOptions)
FastPathOperations();
else if (IP_Option_Present AND Option_Byte1 == 0X9A)
FastPathOperations() ;
else
SlowPathOperations() ;
EnIP and IPv6 both require upgrades to the fast path implementations
of routers. EnIP's fast path upgrade has four advantages:
(1) The EnIP upgrade is the pseudo code above, instead of a large
code base insertion.
(2) There is no equipment reconfiguration.
(3) Internet providers can independently upgrade their fast paths.
(4) Finally, there are no requirements to update the IPv4 routing
tables.
1.3. Contents of this Paper
Section 2 describes EnIP. Section 3 is the heart of the paper,
describing the mechanics of EnIP. Section 4 describes the University
of Maryland and University of Delaware deployment. It also describes
tests between two nodes using EnIP and using normal IPv4 and gives
the results of the tests. The final section contains some concluding
remarks.
Chimiak, et al. Expires June 10, 2016 [Page 4]
Internet-Draft IPv4 with 64 bit Address Space December 2015
2. Introduction to EnIP (EnIP)
EnIP increases IP address space while maintaining compatibility with
existing IPv4 implementations. Current EnIP implementations use IP
option 26 to create a twelve byte extension to the IP header.
2.1. EnIP Addressing Example
The EnIP extension contains four bytes of overhead, and two four byte
fields used as additional storage for the EnIP source and destination
addresses. EnIP addresses are written as two IPv4 addresses
concatenated together. IPv6 and EnIP addressing schemes are shown
below:
IPv6 address 2001:0101:c000:0202:0a01:0102::0
EnIP address 192.0.2.2.10.1.1.2
In the above EnIP address, 192.0.2.2 is a public IPv4 address called
the site address; the 10.1.1.2 address is called the host address.
The host address is always a private IPv4 address assigned to a host
behind a lightweight, stateless EnIP-enabled NAT. It is the private
IPv4 address that identifies the host in the network behind that NAT
and is compatible with other normal IPv4 hosts. The site address
allows the packet to traverse public networks because its IPv4 Source
Host Number (or source address) is 192.0.2.2, a fully routable IPv4
address.
2.2. IPv4 Header with EnIP Option Header
The IPv4 header supporting EnIP is shown in Figure 1. It is an IPv4
header with additional option space used as follows:
Chimiak, et al. Expires June 10, 2016 [Page 5]
Internet-Draft IPv4 with 64 bit Address Space December 2015
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1 |Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2 | Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3 | Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4 | Source Host Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5 | Destination Host Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6 | EnIP ID | EnIP ID |E|E| |
| (0X9A) | Option Length |S|D| (Reserved) |
| | |P|P| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
7 | Enhanced Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8 | Enhanced Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: EnIP Header
2.2.1. IPv4 Header Fields used for EnIP
The fields
Field Bits Description
-------------------------------------------------------------------
Version 4 The Version field is identical
to IPv4's
IHL 4 Internet Header Length is
identical to IPv4's and is
set to the length of the
EnIP header
Type of Service 8 The ToS field is identical
to IPv4's
Total Length 16 The Total Length field is
identical to that of IPv4
and is 32 octets
Identification 16 The Identification field is
identical to IPv4's
Flags 3 The Flags field is identical
to IPv4's
Fragment Offset 13 The Fragment Offset field is
identical to IPv4's
Time to Live 8 The Time to Live field is
Chimiak, et al. Expires June 10, 2016 [Page 6]
Internet-Draft IPv4 with 64 bit Address Space December 2015
identical to IPv4's
Protocol 8 The Protocol field is
identical to IPv4's
Header Checksum 16 The Header Checksum field is
to IPv4's
-------------------------------------------------------------------
EnIP specific
-------------------------------------------------------------------
Source Host Number 32 The Source Host Number field
identifies the source host.
The EnIP use is described in
section 3
Destination Host Number 32 The Destination Host Number
field identifies the
destination host.The EnIP
is described in section 3
EnIP ID 8 The EnIP ID field equals to
0x9A or 1 00 11010. It's
meaning is given at the end
of this section
EnIP Option Length 8 The EnIP Option Length field
is 12 octets
ESP 1 This selector determines if an
Enhanced Source Address is
present
EDP 1 This selector determines if an
EnIP Destination Address is
present
Reserved 14 Reserved for future use
Enhanced Source Address 32 This is the host address used
by EnIP. It is described in
section 3
Enhanced Destination Address 32 This is the destination host
address used by EnIP. It is
described in section 3
-------------------------------------------------------------------
NOTE: The protocol has 12 bytes of overhead per packet.
The meaning of the EnIP ID field,
1 00 11010 (0x9A hexadecimal)
is as follows:
If an EnIP packet traverses a router and must be fragmented because
of a link with a smaller MTU, the copy bit ensures that fragments
Chimiak, et al. Expires June 10, 2016 [Page 7]
Internet-Draft IPv4 with 64 bit Address Space December 2015
include the 12-byte IP option header in all fragmented packets. The
rest of the bits and their meaning are as follows.
+--------------------------------------------------------+
| Meaning of 1 00 11010 the EnIP ID |
+-------------+------------------+-----------------------+
| 1 | 00 | 11010 (or 26 base 10) |
+-------------+----------------+-+-----------------------+
|copy bit set | Class is Control | Option is a new value |
+-------------+------------------|-----------------------+
EnIP Id Field Interpretation
Note that 26 is the IP option value used in the EnIP experiments.
3. EnIP Operation
3.1. IPv4 NAT Explanation using Figure 2
+-----+ +-----+
| IP1 | | IP2 |
+-----+ +-----+
10.1.1.1 10.3.3.1
192.0.2.1 192.0.2.2
+----+ +----+
+------+ | N1 | | N2 | +------+
| EIP1 | +----+ +----+ | EIP2 |
+------+ 10.1.1.254 10.3.3.254 +------+
10.1.1.2 10.3.3.2
EIP1 and EIP2: machines supporting IPv4
and Enhanced IPv4
IP1 and IP2: machines supporting only IPv4
N1 and N2: NAT and EnIPNAT/translator devices
Figure 2 - Enhanced IP and Unenhanced IPv4
This section shows how two nodes, without EnIP, can communicate.
More complete explanations are available in [Chimiak-2014].
3.1.1. Typical Private IPv4 Host to a Typical Public IPv4 Host using
NAT
IP1 (10.1.1.1), a typical IPv4 host, wants to reach N2 (192.0.2.2)
(See Figure 3). It uses NAT (as on Linux iptables) to masquerade as
the public IP address of N1 (192.0.2.1). N1 sets up a port
forwarding rule for IP1 for return packets from N2.
Chimiak, et al. Expires June 10, 2016 [Page 8]
Internet-Draft IPv4 with 64 bit Address Space December 2015
192.0.2.1 192.0.2.2
+-----+ +----+ +----+
| IP1 +--------------+ N1 +--------------+ N2 +
+-----+ +----+ +----+
10.1.1.1
IP1: machine supporting only IPv4
N1 and N2: NAT and EnIPNAT/translator devices
Figure 3 - Typical Private IPv4 Host to a Typical Public IPv4 Host
NAT
3.1.2. Typical Private IPv4 Host to a Typical Private IPv4 Host using
NAT
The same IP1 (10.1.1.1) wants to reach tcp port 80 on IP2 (10.3.3.1),
another typical IPv4 host (see Figure 4). The packets from 10.1.1.1
use NAT on N1 to masquerade as source IP address 192.0.2.1. At N2
(192.0.2.2), the packets arrive. There they have a NAT port
forwarding rule setup on N2 to map tcp port 80 on 192.0.2.2 to
forward packets to the internal host IP2 (10.3.3.1).
192.0.2.1 192.0.2.2
+-----+ +----+ +----+ +-----+
| IP1 +---------+ N1 +---------+ N2 +---------+ IP2 |
+-----+ +----+ +----+ +-----+
10.1.1.1 10.3.3.1
IP1 and IP2: machines supporting only IPv4
N1 and N2: NAT and EnIP NAT/translator devices
Figure 4 - Typical Private IPv4 Host to a Typical Private IPv4 Host
using NAT
So packets move from IP1 to N1, taking N1's address as the source
address and move to N2. N2 has a mapping to IP2 and sends the packet
to IP2. When IP2 sends replies, the NATs used their table entries to
send the packet back to IP1, adjusting the addresses as necessary.
3.1.3. Private EnIP Host to a Typical Public IPv4 Host NAT
Suppose EIP1 (10.1.1.2) wants to reach N2 (192.0.2.2) as in Figure 5.
It is the same as an IPv4 node wanting to reach N2. So the
destination IP address EIP1 used to communicate with N2 is 192.0.2.2.
The NAT device (N1) uses IPv4 NAT to translate the source of the
packets to come from 192.0.2.1. EIP1 behaves as though it is an IPv4
host. It is fully compatible with normal IPv4 communications.
Chimiak, et al. Expires June 10, 2016 [Page 9]
Internet-Draft IPv4 with 64 bit Address Space December 2015
192.0.2.1 192.0.2.2
+------+ +---+ +----+
| EIP1 +------------+ N1 +------------+ N2 |
+------+ +----+ +----+
10.1.1.2
EIP1: machine supporting IPv4
and Enhanced IPv4
N1 and N2: NAT and EnIP NAT/translator devices
Figure 5 - Private EnIP Host to a Typical Public IPv4 Host using NAT
3.1.4. Private EnIP Host to a Typical Private IPv4 Host using NAT
EIP1 (10.1.1.2) initiates a tcp port 80 connection to IP2 (10.3.3.1)
(see Figure 6). Packets from EIP1 reach N1. As above, they are
masqueraded as IPv4 address 192.0.2.1. When the packets arrive at N2
(192.0.2.2) from N1 (192.0.2.1), there is a port forwarding entry for
the port 80 setup to send the packets to IP2 (10.3.3.1).
+-----+
192.0.2.1 192.0.2.2 +----+ IP2 |
+----+ +----+ | +-----+
+----+ N1 +----------+ N2 +-----+ 10.3.3.1
+------+ | +----+ +----+
| EIP1 +-----+
+------+
10.1.1.2
EIP1: machine supporting IPv4
and Enhanced IPv4
IP2: machine supporting only IPv4
N1 and N2: NAT and EnIP NAT/translator devices
Figure 6 - Private EnIP Host to a Typical Private IPv4 Host using NAT
In the reverse direction, IP2 looks at the return address. It is the
address of N1 (192.0.2.1). It sends the packet to N2. N2 sees the
connection in its state table and realizes the is the N1 to IP2
connection. It strips IP2's 10.3.3.1 and places its 192.0.2.2
address in the source field and places the appropriate port value and
sends the packet to N1. N1 sees that this is the EIP1 to IP2
connection in its state table. It uses the state table entry to
rewrite the proper port translation, sets the destination address as
10.1.1.2 and sends the packet back to EIP1 as a normal IPv4 packet.
Chimiak, et al. Expires June 10, 2016 [Page 10]
Internet-Draft IPv4 with 64 bit Address Space December 2015
-------------------------------------------------------------------
It is important to note that thus far this paper
has not demonstrated any usage of EnIP features,
just compatibility with current IPv4 implementations
-------------------------------------------------------------------
3.2. Enhanced IPv4 Explanation using an Example Figure 7
Suppose EIP1 wants to send packets to EIP2. Here both hosts are
running Enhanced IPv4 stacks and N1 and N2 support EnIP. Suppose
EIP1 knows the address of EIP2 is 192.0.2.2.10.3.3.2. EIP1 knows its
internal IP address of 10.1.1.2 but is not aware of the external
address of N1 (192.0.2.1). The following is done (see Figure 7):
192.0.2.1 192.0.2.2
+----+ +----+
+-----+ N1 +------------+ N2 +-----+
+------+ | +----+ +----+ | +------+
| EIP1 +-----+ 10.1.1.254 10.3.3.254 +-----+ EIP2 |
+------+ +------+
10.1.1.2 10.3.3.2
EIP1 and EIP2: machines supporting IPv4
and Enhanced IPv4
N1 and N2: NAT and EnIP NAT/translator devices
Figure 7 - Enhanced IP
3.2.1. EIP1 constructs the Packet
(1) EIP1 sets the Source Host Number field (the source IPv4
address) to 10.1.1.2;
(2) The EnIP ID field is set to 0X9A. the ESP bit is zeroed in the
EnIP header.
(3) The Enhanced Source Address in the EnIP header is set to all
ones since an EnIP source address is not currently present.
(4) The most significant 32 bits of the EnIP address is set by
storing 192.0.2.2 in the IPv4 Destination Host Number.
(5) The least significant 32 bits of the EnIP address is set by
storing 10.3.3.2 in the EnIP Destination Address field.
(6) Finally, EIP1 sets the EDP bit to 1.
Chimiak, et al. Expires June 10, 2016 [Page 11]
Internet-Draft IPv4 with 64 bit Address Space December 2015
3.2.2. EIP1 Transmits the Packet to N1
The packet is routed to N1 using normal IPv4. N1 does the following:
(1) It notes the EnIP option (0X9A)is present.
(2) N1 reads 10.1.1.2 from the IPv4 Source Host Number field and
places that in the Enhanced Source Address field. This field
no longer contains 255.255.255.255.
(3) N1 sets the ESP bit to 1
(4) N1 makes 192.0.2.1 the IPv4 Source Host Number.
(5) N1 recomputes the IP checksum of the new packet. If the
packet carries TCP or UDP, it recomputes these checksums as
they have also changed.
3.2.3. Packet Arrives at N2 (192.0.2.2)
When the packet Arrives at N2, N2 does the following:
(1) N2 identifies the packet as an EnIP packet (0X9A).
(2) It reads the Enhanced Destination Address, 10.3.3.2, and
places this value as the IP header's Destination Host Number.
(3) N2 zeroes the EDP bit and the Enhanced Destination Address to
zero.
(4) It recomputes the IP checksum. If the packet carries TCP or
UDP, recomputes these checksums as they have changed as a
result of a change to the IP destination address.
(5) N2 sends the packet to EIP2.
3.2.4. EIP2 Receives the Packet
When the packet arrives at EIP2, EIP2 does the following:
(1) It computes the source address of the packet. The IPv4 Source
Host Number (192.0.2.1) is concatenated with the Enhanced
source address (10.1.1.2) The result is 192.0.2.1.10.1.1.2.
(2) The IPv4 Destination Host Number (address) is 10.3.3.2.
Chimiak, et al. Expires June 10, 2016 [Page 12]
Internet-Draft IPv4 with 64 bit Address Space December 2015
3.2.5. EIP2 Transmits a Packet to EIP1
To construct a packet from EIP2 to EIP1, EIP2 does the following:
(1) EIP2 sets the Option ID field to 0X9A.
(2) It takes the IPv4 Source Host Number from the incoming packet,
192.0.2.1, and sets it as the IPv4 Destination Host Number.
(3) It places the Enhanced Source Address (10.1.1.2) in the
Enhanced Destination Address field.
(4) EIP2 sets the EDP field to 1 and the IPv4 Source Host Number
to 10.3.3.2.
(5) It sets the Enhanced Source Address to all ones.
(6) It sets the ESP bit to 0.
3.2.6. Packet Arrives at N2
When the packet Arrives at N2, N2 does the following:
(1) It writes 10.3.3.2 in the Enhanced Source Address field.
(2) The ESP bit is set to 1.
(3) N2 writes 192.0.2.2 in the IPv4 Source Host Number field and
recomputes the IP checksum. If the packet carries TCP or UDP,
it recomputes these checksums as well.
(4) N2 sends the packet to N1 (192.0.2.1).
3.2.7. Packet Arrives at N1
When the packet arrives at N1, it does the following:
(1) N1 reads 10.1.1.2 from the Enhanced Destination Address.
(2) It writes this value in the IPv4 Destination Host Number
field.
(3) It zeroes the EDP bit and the Enhanced Destination Address
field.
(4) N1 recomputes the IP checksum and if the protocol is TCP or
UDP, recomputes these checksums as well.
Chimiak, et al. Expires June 10, 2016 [Page 13]
Internet-Draft IPv4 with 64 bit Address Space December 2015
(5) N1 sends the packet to EIP1.
3.3. Upgrading Servers to Support EnIP
In order to maintain backward compatibility with old IPv4 systems, it
is important that the EnIP Source Address is an allowed private
address. Otherwise, that address becomes a routable address outside
of an autonomous system and there is a potential for routing
ambiguity.
With a kernel modification to support EnIP, an existing server
deployed using an IPv4 address can be upgraded. The example of a TCP
echo server [RFC862] is shown in detail elsewhere [Chimiak-2014].
However, highlights are now presented here.
An echo server logs the source IP address of each data packet with
the getpeername function. However, the length of the IPv4 address
structure returned is currently 16 bytes for IPv4 (the size of a
struct sockaddr_in). For IPv6 the size of struct sockaddr_in6 is 28
bytes. As an example of the Alpha implementation mentioned
previously, EnIP returns a new structure called struct sockaddr_ein
that is 26 bytes. It is necessary to use the length 26 to detect a
struct sockaddr_ein. This new struct has two values: sin addr1 and
sin addr2. These represent the IPv4 source address and the EnIP
Source Address. An implementation of getpeername could provide a
compatibility mode to treat EnIP addresses as IPv4 addresses. Once
the echo client software is upgraded, the getpeername implementation
could return struct sockaddr_ein.
3.4. DNS Operation
RFC 2928 provides 2001:0101 as the experimental IPv6 prefix[RFC2928]
. EnIP lookups can use already standardized AAAA records with this
prefix. This prefix uses 32 bits of the 128 bit AAAA record. EnIP
uses only 64 bits of the remaining 96 bits. If 192.0.2.2.10.1.1.2 is
the EnIP address, the EnIP AAAA record is
2001:0101:c000:0202:0a01:0102::0. We call this an AA record. A new
record type is not needed and eliminates the need for DNS server
software upgrades on a massive scale.
3.5. Information Security
The same article shows the care taken to minimize changes in IDS/
Firewalls Operation. It also addresses the prevention of EnIP NAT or
hosts from forwarding illegal packets, and its operation with most of
IPSEC, except in the full tunnel mode AH+ESP scenario.
Chimiak, et al. Expires June 10, 2016 [Page 14]
Internet-Draft IPv4 with 64 bit Address Space December 2015
4. Tests and Comparisons of EnIP and Typical IPv4
The IEEE Computer Magazine article describes the two-node EnIP test
deployment over the Internet2 network with the EnIP NATs. The tests,
along with their results, are given that compare typical IPv4
connections with EnIP connections [Chimiak-2014]. EnIP was used
across 7 routers on Internet2 to demonstrate viability in
environments that need more addressing.
In brief, the test had a node at the University of Maryland running
the Linux 2.6.38 kernel with patches to include the EnIP alpha code.
Another similar node was set up at the University of Delaware. Each
had an EnIP NAT. http, samba, and ssh were used without modification
with Enhanced IP DNS calls used.
The results, in section 5.3 of the paper[Chimiak-2014], show EnIP
performance gains over traditional NAT, as there are no hash table
lookups, as in NAT. It provided roughly a factor of 2 improvement.
EnIP has also had basic testing with a 4G Long Term Evolution (LTE)
simulator along with an Android phone. However, these results have
not been compiled.
5. Conclusion
This RFC describes the operation of IPv4 using IP options, called
Enhanced IP or EnIP. EnIP provides a solution to IPv4 address
scarcity. Because the EnIP design criteria is to extend IPv4 instead
of replacing it, it reduces impact on routers and information
security mechanisms already in place. The operation of two EnIP
nodes at the University of Maryland and the University of Delaware,
running http, samba, and ssh without modification of the software or
routers in the path demonstrates the feasibility of EnIP on a small
but realistic scale that spanned seven routers.
Tests were conducted and documented, that show expected performance
improvement over the old NAT currently used, and the new EnIP NAT.
It provided roughly a factor of 2 improvement [Chimiak-2014].
6. IANA Considerations
This document does not create a new registry nor does it register any
values in existing registries; no IANA action is required.
Chimiak, et al. Expires June 10, 2016 [Page 15]
Internet-Draft IPv4 with 64 bit Address Space December 2015
7. Informative References
[Chimiak-2014]
Chimiak, W., Patton, S., and S. Janansky, "Enhanced IP:
IPv4 with 64-Bit Addresses", IEEE Comuter Magazine Vol.
47, Issue 2, pp 62-69, February 2014.
[Lee-2012]
Lee, G., "The Internet of Things - Concept and Problem
Statement", Internet Draft (work in progress) draft-lee-
iot-problem-statement-05, July 2012.
[Turanyi-2002]
Turanyi, Z. and A. Valko, "IPv4+4", Proceedings of the
10th IEEE International Conference on Network Protocols,
2002.
[Paul-2014]
Paul, T. and F. Tsuchiya, "Extending the ip Internet
through address reuse", ACM SIGCOMM Computer Communication
Review vol. 23, Issue 1, pp. 16-33, January 1993.
[Shirasaki-2012]
Yamaguchi, J., Shirasaki, Y., Miyakawa, S., Nakagawa, A.,
and H. Ashida, ""Enhanced IP: IPv4 with 64-Bit
Addresses"", Internet Draft (work in progress) draft-
shirasaki-nat444-isp-shared-addr-08, July 2012.
[RFC6333] Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual-
Stack Lite Broadband Deployments Following IPv4
Exhaustion", Proposed Standard RFC 6333, August 2011.
[RFC6146] Bagnulo, M., Matthews, P., and I. van Beijnum, "Stateful
NAT64: Network Address and Protocol Translation from IPv6
Clients to IPv4 Servers", Proposed Standard RFC 6146, Apr
2011.
[RFC6144] Baker, F., Li, X., Bao, C., and K. Yin, "Framework for
IPv4/IPv6 Translation.", Internet Draft
(Informational) RFC 6144, April 2011.
[Aweya-1999]
Aweya, J., "IP router architecture: An overview",
Technical Report University of Virginia, 1999.
Chimiak, et al. Expires June 10, 2016 [Page 16]
Internet-Draft IPv4 with 64 bit Address Space December 2015
[Hidell-2014]
Hidell, M., Sjodin, P., and O. Hagsand, "Router
architectures: Tutorial at Networking 2004", Networking
2004 Athens, Greece, May 2004.
[RFC862] Postel, J., "Echo Protocol", May 1983.
[RFC2928] Postel, J., "Initial IPv6 Sub-TLA ID Assignments",
September 2000.
Authors' Addresses
William Chimiak
Laboratory for Telecommunication Sciences
8080 Greenmead Drive
College Park, MD 20740
US
Phone: +1 301 422 5217
EMail: w.chimiak@ieee.org
Samuel Patton
Laboratory for Telecommunication Sciences
8080 Greenmead Drive
College Park, MD 20740
US
Phone: +1 301 422 5217
EMail: sam@enhancedip.org
James F. Brown
Laboratory for Telecommunication Sciences
8080 Greenmead Drive
College Park, MD 20740
US
Phone: +1 301 422 5217
EMail: brown@ltsnet.net
Chimiak, et al. Expires June 10, 2016 [Page 17]
Internet-Draft IPv4 with 64 bit Address Space December 2015
Jeronimo A Bezerra
Florida International University
11200 S.W. 8th St PC building Suite 312
Miami, FL 33199
US
Phone: +1 786 616 3081
EMail: jbezerra@fiu.edu
Humberto Silva Galiza de Freitas
Rede Nacional de Ensino e Pesquisa (RNP) - NEG AmLight
Av. Dr. Andre Tosello, 209
Cidade Universitaria Zeferino Vaz Campinas, SP 13083-886
Brazil
Phone: +55 19 3787-3300
EMail: galiza@amlight.net
Jonathan Smith
University of Pennsylvania
Levine Hall 3330 Walnut Street
Philadelphia, PA 19104
US
Phone: 215.898.9509
EMail: jms@cis.upenn.edu
Chimiak, et al. Expires June 10, 2016 [Page 18]