Contributor: Khoa D. Tran
IPv6 is the next generation Internet Protocol (IP) standard intended to eventually replace IPv4, the protocol many Internet services still use today.
Developed in 1981, IPv4 was the first type of IP addresses known as “Internet Protocol Version 4”. In this case, there are a possible 4.3 billion unique IP addresses. However, as the Internet of Things expand to greater sizes, the creation of IPv6 has to be developed.
Every IPv4 address is 32 bits longs. An example:
Now the difference here for IPv6, the IP address is 128 bits long. An example:
Significance of IPv6 Addresses
Besides allowing for the expansion of unique IP address to 340 trillion trillion trillion IP addresses or 3.4 * 1038, IPv6 can be created automatically by your host, allowing for elimination of both Network Address Translation (NAT), and Dynamic Host Control Protocol (DHCP). Another important aspect of IPv6 is through its tight security as it allows for a greater line of defense against hackers. IPv6 can run end-to-end encryption, as the encryption and integrity-checking currently used in virtual private networks (VPNs) are a standard component in IPv6, available for all connections and compatible with all devices and systems. Lastly the ability to connect between IoT devices allowing networked connected devices to speak to each other allows for greater inventions and connectivity of a network system.
The Transition Mechanism from IPv4 to IPv6
Steps for the transition between IPv4 to IPv6 with dual stack (IPv4 and IPv6 coexist in the same device):
- Replace all IPv4-only devices with dual stack devices
- Once all devices support both protocols, then introduce IPv6-only devices but a dual stack device still requires an IPv4 address
Configured or automatic tunnels—Ipv6 as IPv4 packet payload and vice versa
To minimize any dependencies during the transition, all the routers in the path between two IPv6 nodes do not need to support IPv6. This mechanism is called tunneling. Basically, IPv6 packets are placed inside IPv4 packets, which are routed through the IPv4 routers. The following figure illustrates the tunneling mechanism through IPv4 routers.
The different uses of tunneling in the transition follow:
- Configured tunnels between two routers, as in the previous figure
- Automatic tunnels that terminate at the dual hosts
There are different kinds of tunneling techniques that can be used:
- Configured Tunneling.In router-to-router and host-to-router tunneling method, the IPv6 packet is tunneled to a router. The tunnel endpoint is an intermediary router. The intermediary router at the end of the tunnel de-encapsulates the IPv6 packet and forwards it to the final destination. The IPv6 packet does not provide any information about the tunnel endpoint IPv4 address. The node creating the tunnel provides configuration information that determines the tunnel endpoint IPv4 address.
- Automatic Tunneling. In the host-to-host and router-to-host tunneling methods, the IPv6 packet is tunneled until its final destination. The tunnel endpoint is the IPv6 packet’s final destination, the IPv6 packet’s destination determines the tunnel endpoint. There is no need to configure the tunnel endpoint address.
- ISATAP Tunnels. Intra-site Automatic Tunnel Addressing Protocol is another method of tunneling where the tunnels are automatically defined and not statically defined. These tunnels are primarily used between hosts and routers, manually configured tunnels are used between routers. It is automatic in the sense that is it created only when it is needed.
- 6 to 4 Tunneling.It is defined by IETF, and it is similar to a manual tunneling, except that the tunnel is set up automatically. IPv6 addresses are a concatenation of a special IPv6 prefix with the 32-bit IPv4 address of the router where the tunnel terminates.
Stateless IP/ICMP translation (SIIT):
Translates IP header fields, NAT Protocol Translation (NAT-PT) maps IPv6 to IPV4 addresses. The Request for Comment (RFC) however does not specify how to perform address assignment or how to route to and from IPv6 hosts when communicating with IPv4 hosts.
- Application-Level Gateway (ALG)intercepts traffic and converts between IPv6 and IPv4 protocols. It is an IP device running dual-stack and can have native access to both IPv6 and IPv4 services. ALGs are used as proxies to perform protocol translation with one proxy server per application (HTTP, FTP, SMTP.). The advantage is to have only IPv4 addresses for these proxy servers. Where firewalls and proxies are already utilized (many LAN implementations) this will not imply a high price to be paid. Unfortunately, ALGs are not able to handle all services, in particular those with end-to-end requirements.
- Bump-In-the-Stack (BIS) and Bump-In-the-API (BIA)are NAT-PT implementations within a host. It is used where organizations cannot upgrade their applications running on hosts and servers to use IPv6. BIS/BIA intercept system calls to IPv4 functions and dynamically respond with IPv6 information. BIS enable the communication of IPv4 applications on an IPv4 host to communicate with an IPv6 host. It is not designed for the initial stage in the transition from IPv4 to IPv6, but it will be most probably used for the interoperability of legacy IPv4 applications with IPv6 applications.
Challenges of Migrating to an IPv6 Network
- Incompatibility between IPv6 and IPv4. IPv6
- has been designed as an alternative to IPv4, and not as its extension. This limits the feasibility of a straightforward transition plan.
- Incoherence with not creating a transition plan from IPv4 to IPv6.
- Not enabling IPv6 addressees to “communicate” with IPv4 addressees. The entire Internet infrastructure cannot switch overnight from IPv4 to IPv6.
- Stepwise transition due the fact that the transition will take years and it is quite impossible to synchronize the processes at different sites. IPv4 and IPv6 network equipment will be required to coexist and offer interoperability.
- No feasible mapping scheme to map IPv4 to IPv6 addresses (IPv6 hosts can have more than one IPv6 address)
- IPv6 is still an evolving standard