Networks (and applications) are getting more and more global and the usage of NAT is inevitable. To run application efficiently such global networks (that are built over internet) should be NAT-friendly, which means aware of NAT operation!
In this post, we’ll review the general idea behind NAT operation and how it could affect positively (friendly) or negatively (unfriendly) the performance of our network services on the cloud.
First of all, what NAT Stands for
NAT stands for network address translation which means that to join a destination, a source will use at least two addresses (IP): one to the NATter (the device that will do this translation, firewall, router, application gateway, etc.) and another one from the NATter to the destination. This helps resolve many routing issues, IP address space starvation, management, add more security by hidden the original IP information…
NAT and P-NAT
Ideally, the NATter (application) would map each “inside” address (that is towards the NATted source) to an “outside” or “global” address (that is towards the destination) in a one to one fashion. But, it is possible to overload the outside interface of the NATter by mapping inside addresses to application ports (TCP or UPD); many inside address could be mapped to one global address and many ports. In this case the NATter is called P-NATter (P for port).