There are 3 types of NAT:
- Static NAT – Translates a private to a public address (1-to-1).
- Dynamic NAT – Translates a pool of private to a pool of public addresses (many-to-many).
- NAT Overload (or PAT) – Translates many private IPs over a single public IP (many-to-1).
Define the inside interface:
int g0/0 ip nat inside
Define the outside interface:
int g0/1 ip nat outside
Create the access list that will allow many-to-one translations:
ip access-list standard USERS permit 10.1.1.0 0.0.0.255 ip nat inside source list USERS int g0/1 overload
Note: the access list contains the private network address and is defined as the source. Interface g0/1 (not the public IP) is the exit to the internet. The overload keyword allows many internal addresses to be translated simultaneously.
Example for many-to-many:
ip access-list standard 1 permit 10.10.0.0 0.0.255.255 ip nat pool INTERNAL 192.168.1.129 192.168.1.254 netmask 255.255.255.128 ip nat inside source list 1 pool INTERNAL ip route 0.0.0.0 0.0.0.0 172.16.1.1
For a one-to-one translation, skip the access list and pool and use only:
ip nat inside source static 10.10.10.1 200.200.200.200
To see active translations:
do show ip nat translations do show ip nat translations verbose