All public IPv4 addresses must be registered with a Regional Internet Registry (RIR). The registered holder of a public Internet address can assign these addresses to a network device. There is a maximum of 4.3 billion IPv4 addresses available but with the increase of personal computing and the beginning of the World Wide Web, it soon became clear that 4.3 billion IPv4 addresses would not be enough.
The long term solution for the shortage was IPv6, but the urgent solutions to address exhaustion were required. So for the short term, numerous solutions were implemented by the IETF including Network Address Translation (NAT), Port Address Translation and RFC 1918 private IPv4 addresses.
In the coming article, we will discuss briefly how Network Address Translation (NAT) works, how Network Address Translation (NAT) combine with the use of private address space.
IPv4 Private Address Space
RFC 1918, describes the “Address Allocation for Private Internets”. It is the memorandum of the Internet Engineering Task Force (IETF) on methods of assigning of private IP addresses on TCP/IP networks.
This document provides important information for the network administrator who may be considering using these addresses on their network. The ranges of Private IP address for different classes are shown in the following table.
|Class||Internal Address Range define in RFC 1918||CIDR Prefix|
|A||10.0.0.0 to 10.255.255.255||10.0.0.0/8|
|B||172.16.0.0 to 172.16.255.255||172.16.0.0/12|
|C||192.168.0.0 to 192.168.255.255||192.168.0.0/16|
The private IP addresses are used to communication devices within an organization locally and be routed over the Internet because these addresses do not identify any single company or organization. To route the private IP address into the internet, the private address must first be translated to a public address.
Network Address Translation (NAT) is the technique providing the translation of private addresses to public addresses and vice versa. Network Address Translation (NAT) allows a device configured with a private IPv4 address to access network resources outside of their private or local network.
The one big example of NAT is the Internet. It is a useful method of preserving public IPv4 addresses because we can use and share a single, public IPv4 address with hundreds and thousands of private IPv4 address. NAT solves the exhaustion of the IPv4 address space temporally. The permanent solution to the exhaustion of IPv4 address space is the transition to IPv6. The figure below illustrates the NAT process.
What is Network Address Translation (NAT)?
The most important use of Network Address Translation (NAT) among many users is the conservation of public IPv4 addresses. NAT conserver public IPv4 addresses by allowing networks to use private IPv4 addresses internally and translate private IPv4 into a public address only when required. NAT hides internal private IPv4 addresses from an outside public network which provide extra privacy and security to a network.
The router configured with NAT required one or more public IPv4 addresses. The public IPv4 addresses are known as NAT pool. When an internal device sends traffic from the private IP address out of the network, the router configured with NAT translates the internal IPv4 address of the device into a public address from the NAT pool. When receiving the reply from outside to that public IPv4 address, the NAT-enabled router translates the public IPv4 address into private IPv4 address.
A Network Address Translation (NAT) router typically required at the border of a stub network. We have already discussed the stub network in one of my previous articles. It is a network providing only one way to its neighbouring network, one way in and one way out of the network. The figure below illustrates the stub network and NAT enabled router.
When someone wants to communicate outside the stub networks, the device sends the packet to the border router which is NAT-enabled. The NAT-enabled border router performs the translate the private IPv4 address of the stub network into Public IPv4 address.