Protocol translation involves converting IPv4 packets into IPv6
packets and IPv6 packets into IPv4 packets. This translation typically
involves some form of network address translation (NAT) in addition
to the protocol translation (PT) function. It might run in a specialized
node between an IPv4 network and an IPv6 network, or it might run
in the host that owns the IPv4 application.
Protocol Translation is useful when devices need to communicate
but are not using the same protocol, allowing IPv6-only devices to
communicate with IPv4-only devices. However, the following issues
make a less-than ideal solution:
- Protocol translation is not foolproof. It is difficult to determine
how long to keep the mappings between the real IPv6 address and the
locally mapped IPv4 address available. An address can be reused before
all servers have stopped accessing the address.
- Some applications might use the remote IP address as a means of
performing a security check. Unless AH or an IPSec tunnel is used,
then this method is not foolproof, but it is still done. If the IPv4
address is a locally mapped address, any checks such as this are broken.
- Displays and traces of the remote IP address are meaningless.
Today, many applications generate messages, traces, and so on containing
the IP address of the remote client.
- All DNS queries for the IPv4-mapped address must flow through
the node that performed the NAT function. The DNS resolver or name
server at this node, as well as the TCP/IP stack, must maintain a
mapping between the IPv4 address and IPv6 address.
- Not all IPv6 protocols have IPv4 equivalents and not all IPv4
protocols have IPv6 equivalents. It might not be possible to translate
the contents of an IPv4 packet into an equivalent IPv6 packet or the
contents of an IPv6 packet into an equivalent IPv4 packet.