NAT

Network Address Translation (NAT) is a method by which IP addresses are mapped from one realm to another, in an attempt to provide transparent routing to hosts. Reference, RFC 2663

The need for IP Address translation arises when a network's internal IP addresses cannot be used outside the network either because they are invalid for use outside, or because the internal addressing must be kept private from the external network. RFC 2663 Address translation allows hosts in a private network to communicate transparently with destinations on an external network and vice versa.

To provide transparent routing for the datagrams traversing between address realms, NAT binds addresses in private network with addresses in global network and vice versa. The binding in some cases may extend to transport level identifiers, such as TCP/UDP ports. Address binding is done at the start of a session. There are two types of address assignments: static and dynamic. In the case of static address assignment, there is one-to-one address mapping for hosts between a private network address and an external network address for the lifetime of NAT operation.

Network Address Port Translation (NAPT) is a variation of the traditional NAT. NAPT extends the notion of translation one step further by also translating transport identifiers (e.g., TCP and UDP port numbers, ICMP query identifiers).

Destination network address translation (DNAT) is a technique for transparently changing the destination IP address of an end route packet and performing the inverse function for any replies.