IPv6 NAT helps to translate IPv4 addresses to IPv6 addresses of network devices. IPv6 NAT also helps to translate the address between IPv6 hosts. IPv6 NAT supports source NAT, destination NAT, and static NAT. NAT-PT was the original translation scheme for communication between IPv4 and IPv6, but has since been deprecated and replaced by NAT64. NAT64 allows one or multiple public IPv4 addresses are shared by many IPv6-only devices using overloading. NAT64 performs both address and header translation.
NAT64 is a mechanism to allow IPv6 hosts to communicate with IPv4 servers or hosts. The NAT64 server is the endpoint for at least one IPv4 address and an IPv6 network segment of 32-bits The IPv6 client embeds the IPv4 address it wishes to communicate, and sends its packets to the resulting address. The NAT64 server then creates a NAT-mapping between the IPv6 and the IPv4 address, allowing them to communicate.
Network Prefix Translation (NPTv6): is a one-to-one stateless translation. One IPv6 address in an inside network is translated to one IPv6 address in an outside network. The reason for using NPTv6 and the overriding idea behind it is that internal networks can be independent of an ISPs address space which makes changing ISP a simpler process. It translates the prefix portion of an IPv6 address but not the host portion or the application port numbers. The host portion is simply copied, and therefore remains the same on either side of the firewall. The host portion also remains visible within the packet header.