Figure 1 illustrates the protocol stack in a dual stack node. The common transport layer components support two network layer components (IPv4 and IPv6), allowing applications on the node to communicate with both IPv4 and IPv6 applications. A dual stack node should be configured with both IPv4 and IPv6 addresses.
Dual stack is the most straightforward technique that allows interoperation between IPv6 applications and IPv4 applications. IPv6-aware applications such as telnet, ftp, DNS, Web Servers deployed on dual stack nodes can service existing IPv4-only nodes and new IPv6 nodes avoiding the need to run two separate applications for the same purpose.
IPv6-aware applications running on dual stack nodes communicate with IPv4 applications running on IPv4-only nodes using a special IPv6 address called an IPv4-mapped IPv6 address [1]. The IPv4-mapped IPv6 address with the format “::ffff:a.b.c.d” contains the IPv4 address in the low-order 32 bits.
When an IPv4 client application sends a request to an IPv6 server application bound to a wildcard address, the dual stack node presents the client address as a 128 bit IPv4-mapped IPv6 address to the IPv6 application. This allows the IPv6 application to service the request as a regular IPv6 request. While transmitting the response, the dual stack node will properly interpret the IPv4-mapped IPv6 address as an IPv4 address and the packets exchanged between the two nodes will be IPv4 packets.
5. Tunneling
Tunneling is a key transition mechanism strategy that allows isolated IPv6 nodes or networks to communicate with each other using a virtual link created over the existing IPv4 infrastructure. The IPv6 nodes that act as tunnel endpoints should be dual stack nodes. The tunnel
Tunnel configuration can be either manual (configured) or automatic, they primarily differ in how the IPv4 tunnel
The manually configured tunnels are
The automatic tunnels are
Tunneling can be used in different scenarios, as discussed in the following sections.
5.1 Host-to-Host
In a
4