4.5.7 IPv4 and IPv6 Transition Mechanisms
4.5.7 IPv4 and IPv6 Transition Mechanisms A network is likely to have to run both IPv4 and IPv6 in some or all segments and for connectivity with internetworks. This compatibility requirement can be implemented using dual stack hosts, using a tunneling mechanism, or by using a type of address translation. Dual Stack Dual stack hosts and routers can run both IPv4 and IPv6 simultaneously and communicate with devices configured with either type of address. Most modern desktop and server operating systems implement dual stack IP. Most modern dual stack systems will try to initiate communications using IPv6 by default. Tunneling As an alternative to dual stack,tunnelingcan be used to deliver IPv6 packets across an IPv4 network. Tunneling means that IPv6 packets are inserted into IPv4 packets and routed over the IPv4 network to their destination. Routing decisions are based on the IPv4 address until the packets approach their destinations, at which point the IPv6 packets are stripped from their IPv4 carrier packets and forwarded according to IPv6 routing rules. This carries a high protocol overhead and is not nearly as efficient as operating dual stack hosts.In 6to4 automatic tunneling, no host configuration is necessary to enable the tunnel. 6to4 addresses use the prefix2002:: 6to4 has been widely replaced by an enhanced protocol called IPv6 Rapid Deployment (6RD). With 6RD, the 2002:: prefix is replaced by an ISP-managed prefix,and there are various other performance improvements.Microsoft provides support for tunneling by Windows hosts using its Teredo protocol. Teredo tunnels IPv6 packets as IPv4-based UDP messages over port 3544. Teredo requires compatible clients and servers. The open source Miredo package implements the Teredo for UNIX operating systems.Another option for tunneling is Generic Routing Encapsulation (GRE). GRE allows a wide variety of Network layer protocols to be encapsulated inside virtual point-to-point links. This protocol has the advantage that because it was originally designed for IPv4, it is considered a mature mechanism and can carry both v4 and v6 packets over an IPv4 network. NAT64 A third approach to transitioning from IPv4 to IPv6 is to use Network Address Translation (NAT). This is a well-known process for rewriting network addresses as they pass routing boundaries. With NAT64, an IPv6 host addresses an IPv4 host using the prefix 64:ff9b:: plus the 32-bit IPv4 destination address. When the packet reaches the gateway router, it strips the prefix and forwards the packet using IPv4 headers. Replies from the IPv4 host are directed to the IPv6 host by tracking connections using Transport layer port numbers.