Network Address Translation was first described in RFC 1631, and later updated by RFC 2766. The original purpose was to deal with the lack of IP addresses. As there is only a limited number of IP (v4) addresses, the solution proposed in these RFC's is
define 'private' IP addresses. These would be not connected to the internet, and therefore do not have to be unique. The same address can be used more than once.
because they are not unique they should nt be connected to the internet, because that would cause trouble. IP routers on the internet therefore do not route to private addresses - packets destined to private addresses should be dropped.
To enable private networks to be connected to the internet, Network Address Translation can translate one or a number of private addresses into 1 or more public addresses. Multiple private addresses can be mapped to 1 public address.
This is a nice compromise to enable internet connections for multiple hosts using a limited number of IP addresses, and is a very popular technique to connect a home or small office network to the internet, using only 1 IP address (e.g. from a free internet account). Other implementations of NAT are used in firewalls, load balancing mechanisms and to provide transparent redundant connections.
(RFC 1597) :The Internet Assigned Numbers Authority (IANA) has reserved the following three blocks of the IP address space for private networks:
10.0.0.0 - 10.255.255.255 or: 10.0.0.0 /8
172.16.0.0 - 172.31.255.255 or: 172.16.0.0. /12
192.168.0.0 - 192.168.255.255 or: 192.168.0.0./16
This is :
a complete class A network - approx. 16.000.000 hosts
16 class B networks - approx. 65000 hosts each
255 class C networks - 254 hosts each
Of course, you can also apply subnetting to these ranges to suit your addressing needs.
What follows is a html reproduction of a powerpoint presentation. Therefore, it has a lot of pictures and only little text.
Routing with NAT
source / destination address translation
3 approaches
static NAT
1 to 1 mapping of private addresses to public addresses
dynamic nat
1 to 1 translation of private addresses to public addresses, but the public addresses are chosen (dynamically) from an address pool.
overloaded NAT
multiple private addresses are translated to 1 public address. Also known as 'Network Address and Port Translation', because port numbers are used to make translation from 1 public address back to multiple private addresses possible.
NAT overloading
Port Forwarding
is an application of Network Address and Port Translation
serves to make a port on a private host, publicly accessible