Network Address Translation, sometimes called Network Address Translator (NAT), was first described in RFC 1631 in 1994. The authors of that document were trying to solve the then imminent problem of running out of IPv4 addresses. They proposed a simple but brilliant solution. Their idea was to allow devices on the inside of a network to use the standard pool of unregistered IP addresses that are currently defined in RFC 1918. Then the router or firewall at the boundary between the internal private network and the external public network would have software that rewrites the internal IP addresses in every packet, replacing them with valid registered addresses.
There are four kinds of addresses: inside local, inside global, outside local, and outside global. Inside and outside pretty much depend on where you’re standing, if you’re just connecting two private networks. But if you are connecting a private network to the public Internet, then the Internet is outside. A local address is generally the private address, while the global address is the globally unique public address.
To help make these terms more clear, suppose you are connecting a
network that uses RFC 1918 private addresses to the public Internet.
Inside your network you have private addresses, such as
192.168.1.0/24. These are the inside local addresses. NAT will translate
these addresses to globally unique registered addresses. These are the
inside global addresses. The addresses on the public Internet are ...