IPv4 to IPv6 transition is a slow process, as it requires planning and implementation of new addressing, protocol stacks, and applications. Generally, the deployment of IPv6 should start from the network edges, and move towards the network core.
There are many transition mechanisms available to smooth the IPv4 to IPv6 transition. The most common IPv6 transition techniques are dual stacking and tunneling. The most common type of tunneling is IPv6 to IPv4 (6to4) tunneling, which encapsulates IPv6 packets into IPv4 packets. Another transition technique known as protocol proxying and translation uses an extension of IP NAT – NAT Protocol Translator (NAT-PT) to translate between IPv4 and IPv6 addresses.
The dual-stack transition mechanism is a network interface that is configured with an IPv4 address and an IPv6 address. A node implementing a dual stack is called a dual-stack node.
A dual-stack router runs both IPv4 and IPv6 stacks, and can communicate with both IPv4 and IPv6 devices. A dual-stack interface can forwards both IPv4 and IPv6 traffic. The ipv6 unicast-routing global configuration command enables the forwarding of IPv6 packets between interfaces (similar to the ip routing command which enables the forwarding of IPv4 packets). The ipv6 address ipv6-addr/prefix-length interface subcommand assigns an IPv6 address and enables IPv6 processing for an interface.
IPv6 tunneling is the mechanism where encapsulating IPv6 packets within IPv4 packets to allow an isolated network or host to reach the IPv6 Internet.
Tunnels are often used to transport an incompatible protocol across an existing network. Tunneling IPv6 traffic over an IPv4 network requires edge routers at each end of the tunnel for encapsulating and decapsulating the packets. The figure below shows the interconnection of IPv6 networks without migrating the entire network to IPv6.
Note: A tunneled network is often difficult to troubleshoot and thus should be considered as a transition technique (temporary) that should be used only where it is appropriate. Using native IPv6 throughout the network is still the final goal.
There are 2 types of tunnels – static (manually configured) and automatic (6to4 tunneling).
In a manually configured tunnel, the source and destination IPv4 addresses for the tunnel as well as IPv6 addresses are statically configured on the dual-stack routers at each end of the tunnel. The configuration does not change upon network and routing needs change. Routing must be configured properly to forward packets between the IPv6 networks. Typically between routers.
In 6to4 tunneling, the connection of IPv6 networks through an IPv4 network is dynamically established. The IPv4 address of the tunnel endpoints can be dynamically discovered based on the destination IPv6 addresses. Typically between routers.
A 6to4 tunnel treats the IPv4 network as a virtual link. Each 6to4 edge router has an /48 prefix IPv6 address, which is the concatenation of 2002::/16 and the IPv4 address of the edge router (32-bit in hexadecimal format). 2002::/16 is the assigned address range for 6to4 tunneling. The edge routers automatically build the tunnel using their IPv4 addresses.
Ex: The IPv6 network prefix for an edge router with an IPv4 address of 192.168.0.1 is 2002:c0a8:0001::/48 (c0a80001 is the hexadecimal representation of 192.168.0.1).
When an edge router receives an IPv6 packet with a destination address in the range of 2002::/16, it determines from its routing table that the packet must go through a tunnel. The router extracts the IPv4 address of the 6to4 router at the other end of the tunnel from the 3rd to 6th octets in the destination IPv6 address. The router would encapsulate the IPv6 packets in IPv4 packets destined to the extracted IPv4 address and forward them out to the IPv4 network. The destination edge router decapsulates the IPv6 packets from the received IPv4 packets and forwards the IPv6 packets to the final destination.
The figure below shows a scenario of 6to4 tunneling – an enterprise with an IPv4 network connects to the 6bone in order to assess the connectivity impact and expand its knowledge of IPv6 before merges with another company that runs IPv6 on its network. A 6to4 relay router is required to be able to reach a native IPv6 Internet. It offers traffic forwarding to the IPv6 Internet.
6to4 Tunneling to the 6bone
The other 2 available tunneling methods are Intra-Site Automatic Tunnel Addressing Protocol (ISATAP), typically between routers; and Teredo tunneling, typically between hosts.
When an IPv6 host would like to communicate with an IPv4 web server, the proxying and translation mechanism is best suit. The easiest solution is setup a web proxy that can translate the IPv6 host address to an IPv4 address for communication with the IPv4 web server.
NAT Protocol Translator (NAT-PT) is a device that can translate between IPv4 and IPv6 addresses for the communication between IPv4 and IPv6 hosts.
Note: NAT-PT as defined in RFC 2766 is obsolete and deprecated to historic status on July 2007 due to numerous issues. Transport Relay Translation (TRT) as defined in RFC 3142 is the most common form of NAT-PT. The NAT-PT (and TRT) translation mechanism typically used in conjunction with a DNS Application-Level Gateway (DNS-ALG) which performs translation between AAAA and A records.