IPv4 and IPv6 are not directly interoperable. An IPv4-only device cannot communicate
with an IPv6-only device without the help of a Network Address Translator that translates
between IPv4 and IPv6 (NAT64).
The easiest way to allow a device to communicate over either IPv4 or IPv6 is to
assign to it both an IPv4 address and an IPv6 address: called dual stacking. The
device can then "speak" either protocol, depending upon either the type of address
DNS gives it for a destination or the type of protocol used by another device sending
it packets to which it must respond.
If an IPv6-only device needs to speak to another IPv6-only device but some or all
of the network between the devices is IPv4-only (or vice-versa, two IPv4-only devices
that must traverse an IPv6-only network segment), there are a variety of tunneling
mechanisms that can be used. The difference between a tunnel and a translator is
that while a translator changes a packet’s header from one protocol type to another,
a tunnel encapsulates the packet – including its header – behind a header of another
type.
Tunnels can be either manually configured or automatically configured. Examples
of manual tunnels are MPLS, GRE, and IP-in-IP. Examples of automatic tunnels are
6rd, 6to4, Teredo, ISATAP, and tunnel brokers. The decision to use a tunneling technology,
and which technology to use, depends on your specific network and the specific problem
you are trying to solve.
Back to top