NAT - NAPT

Network Address and Port Translation


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

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:

This is :

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

NAT for Internet Connection Sharing

Connecting multiple hosts to the internet, with 1 (public) IP address - using Linux as a NAT router (and firewall).


Koen Noens
July 2003