Kernel developers have merged support for network address translation (NAT) with IPv6 into Linux (1, 2 and others). A number of Linux developers have previously questioned the utility of doing so, since NAT is unnecessary with the larger address space offered by IPv6. With its much larger address space and other features, IPv6 renders many of the reasons why NAT was much used with IPv4 redundant.
Despite that, the developers have now merged this feature, because the specification for NAT with IPv6 avoids some of the problems which dogged the IPv4 solution and it turns out that there are some use cases in which NAT for IPv6 can indeed prove useful. Some users and institutions, for example, would like to use NAT to keep their internal network topology opaque. Companies that use multiple internet connections from a number of different providers to improve availability provide a further reason for supporting NAT on IPv6, as it makes it easier to switch between the different connections.
rest here