System Administration Guide, Volume 3

IPv4 and IPv6 Interoperability

During the gradual transition phase from IPv4 to IPv6, existing IPv4 applications must continue to work with newer IPv6 enabled applications. Initially, vendors provide host and router platforms that are running a dual stack, that is, both an IPv4 protocol stack and an IPv6 protocol stack. IPv4 applications will continue to run on a dual stack that is also IPv6 enabled with at least one IPv6 interface. No changes need to be made to these applications (no porting required).

IPv6 applications running on a dual stack can also use the IPv4 protocol. This is possible by using an IPv4-mapped IPv6 address. Because of the design of IPv6, separate applications (IPv4 and IPv6) are not needed. For example, you do not need an IPv4 client on a dual host to talk with a server on an IPv4-only host and a separate IPv6 client to talk with an IPv6 server. Implementors only need to port their IPv4 client application to the new IPv6 API. The client can communicate with both IPv4 only servers as well as IPv6 servers running on either a dual host or an IPv6 only host.

The address the client gets back from name server determines if IPv6 or IPv4 is used. For example, if the name server has an IPv6 address for a server, this means that the server runs IPv6.

The following table summarizes the interoperability between IPv4 and IPv6 clients and servers. It also assumes that the dual-stack host has both an IPv4 and IPv6 address in the respective name service database.

Table 15-1 Client-Server Applications: IPv4 and IPv6 Interoperability

Type of Application (Type of Node)

IPv6-unaware server (IPv4-only node) 

IPv6-unaware server (IPv6-enabled node) 

IPv6-aware server (IPv6-only node) 

IPv6-aware server (IPv6-enabled node) 

IPv6-unaware client (IPv4-only node) 

IPv4 

IPv4 

IPv4 

IPv6-unaware client (IPv6-enabled node) 

IPv4 

IPv4 

IPv4 

IPv6-aware client (IPv6-only node) 

IPv6 

IPv6 

IPv6-aware client (IPv6-enabled node) 

IPv4 

(IPv4) 

IPv6 

IPv6 

X means that it is not possible to communicate between the respective server and client.

(IPv4) denotes that the interoperability depends on the address chosen by the client. Choosing an IPv6 address fails. However, choosing an IPv4 address, which is returned to the client as an IPv4-mapped IPv6 address, causes an IPv4 datagram to be sent and succeeds.

In the first phase of IPv6 deployment, most implementations of IPv6 are on dual-stack nodes. Initially, most vendors do not release IPv6-only implementations.