Is there any way for IPv6-unaware applications to continue to work on a host with only IPv6 connectivity?

The IPv4 implementation of the host could know about the problem and just encapsulate the IPv4 address in the IPv6 header (like 0::ffff:[ipv4]?), but where are these pakets then translated to real IPv4 packets?

Do current operating systems provide that kind of functionality to IPv4-only applications already? Are NAT64 or other gateways by providers able to provide the needed functionality?

If the standard prefix (64:FF9B::/96) for NAT64 is not used by a provider, how is the actual prefix determined? And will all that be taken care of by the OS and the network stack?

And how does this work when the application is already IPv6-aware, but still wants to talk to an IPv4 host? Where is the prefix determined, in the network stack, or does the application have to take care of that?

1 Answer 1


Let's use the term "IPv4-dependent applications" to refer to applications that use IPv4 literals (e.g., or are coupled to IPv4 in other ways that break functionality on a IPv6-only hosts. IPv4-dependent applications will not work on IPv6-only hosts.

Many applications that do not use IPv4 literals and rely on DNS names will work with no problems on IPv6-only hosts.

NAT64/DNS64 is mechanism for IPv6-only hosts to reach IPv4 hosts on the Internet. This transition method is needed because the majority of Internet content is reachable only via IPv4 transit.

I recommend reading Experiences from an IPv6-Only Network. You'll find a great deal of material on which applications break on IPv6-only hosts.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .