IPv4 and IPv6 Coexistence

The limited IPv4 address space is one of the main issues along with the problem with Network Address Translation and security-related issues. So, the time transition from IPv4 to IPv6 is necessary. The main problem in the transition from IPv4 to IPv6 is the size of the Internet. The one-time migration from IPv4 to IPv6 addresses is not possible because some IPv4 addresses may never change.  Therefore, the coexistence of IPv4 and IPv6 on the internet is necessary. The transition from IPv4 to IPv6 required several years.

The IETF also create several protocols and tools to help network administrators for migrating their networks to IPv6. The transition from IPv4 to IPv6 has divided into three categories. Dual stack, where your network hardware runs IPv4 and IPv6 at the same time. Next is the “tunnel” method where we take IPv6 packets and encapsulate the packet into IPv4 packets. The last one is Network Address Translation-Protocol Translation (NAT-PT) also known as RFC-2766. NAT-PT is working just like the name says, software or a device translates IPv6 packets into IPv4 packets. Following is the detail of these methods.

 Dual Stack 

In dual stack networking, all network devices including router, servers, and firewall will be configured for both IPv4 and IPv6 capabilities. The whole network must understand both IP versions packets and must allow processing of IPv4 and IPv6 data traffic at the same time. Dual stack allows IPv4 and IPv6 to coexist on the same network segment. Dual stack devices run both IPv4 and IPv6 protocol stacks simultaneously. The Figure below illustrates the Dual-Stack process.

IPv4 and IPv6

When a node configured for a dual-stack network, it is configured to prefer IPv6 over IPv4 traffic. In the event that the traffic it receives is solely IPv4, then the dual stack node is capable of processing it as well. It is one of several solutions for migrating from IPv4 to IPv6, but it is also one of the most expensive.

Tunneling

Tunneling is another method of IPv4 and IPv6 co-existence. In tunneling IPv6 packet is transporting over an IPv4 network. The dual stack routers encapsulate the IPv6 packet inside into the IPv4 packet, just like the router encapsulates other data into IPv4 packets. We can communicate using tunneling method, with isolated IPv6 networks without upgrading the IPv4 infrastructure. We only required tunnels configuration between border routers or between a border router and a host however, the important point is that both tunnel endpoints must support both IPv4 and IPv6 protocol stacks. We can configure tunneling either manually or dynamically. The important methods for tunneling are listed below. The figure below illustrates tunneling:-

IPv4 and IPv6

Manual

It is just like a permanent link between two IPv6 domains over an IPv4 backbone. We use manual tunnelling for regular secure communication between two nodes. The nodes may be end devices or maybe two edge devices. We can also configure manual tunnel between a host and an edge device.

An IPv6 address is manually configured on a tunnel interface, and manually configured IPv4 addresses are assigned to the tunnel source and the also to the tunnel destination. The host or edge device at each end of a configured tunnel must support both the IPv4 and IPv6. Cisco Express Forwarding switching can be used for IPv6 manually configured tunnels, or Cisco Express Forwarding switching can be disabled if process switching is needed.

IPv4-compatible

In the IPv4-compatible tunnel method, the tunnel destination is automatically determined by the IPv4 address in the low-order 32 bits of IPv4-compatible IPv6 addresses. The host or router at source and destination ends of an IPv4-compatible tunnel must support both the IPv4 and IPv6 protocol stacks.

Generic routing encapsulation (GRE)

Generic routing encapsulation (GRE) encapsulates packet and send them to a device that de-encapsulates the packets and routes them to the final destination. GRE tunnels allow routing protocols such as RIP and OSPF to forward data packets from one switch to another switch across the Internet. In addition, GRE tunnels also encapsulate multicast data streams for transmission over the Internet.

6to4

It is a method to connect IPv6 hosts or IPv6 networks to each other over an IPv4 backbone. 6to4 required relay routers to forward encapsulated IPv6 packets over IPv4 links instead of explicit tunnel set-up. It uses unicast to create point-to-point links over the IPv4 backbone for transmission. The host using 6to4 can communicate with another 6to4 host as well as a host of native IPv6 connections.

Intrasite Automatic Tunnel Addressing Protocol (ISATAP)

Intrasite Automatic Tunnel Addressing Protocol (ISATAP) can encapsulate and transmit IPv6 packets over IPv4 networks or IPv4 packets over IPv4 networks. It provides automatic encapsulation by using a virtual IPv6 overlay on top of an IPv4 network using IPv4 configured routers.

 Translation 

The figure below illustrates the translation method. Network Address Translation 64 (NAT64) allows IPv6-enabled devices to communicate with IPv4-enabled devices using a translation technique similar to NAT for IPv4. An IPv6 packet is translated to an IPv4 packet and vice versa. It allows IPv6-only clients to communicate with IPv4 servers using unicast UDP, TCP, or ICMP.  One or more public IPv4 addresses assigned to a NAT64 translator are shared among several IPv6-only clients.

IPv4 and IPv6