Troubleshooting

NAT Not Translating (show ip nat translations Empty)

An empty show ip nat translations table almost always means the ip nat inside / ip nat outside interface roles are missing or reversed. NAT only translates traffic that crosses from an interface marked inside to one marked outside — without both labels, nothing is translated at all.

What you see

R1# show ip nat translations
Pro  Inside global    Inside local    Outside local   Outside global

R1# show ip nat statistics
Total active translations: 0 (0 static, 0 dynamic; 0 extended)

Why it happens

Cisco NAT is direction-aware. The router needs to know which interface faces your private network (ip nat inside) and which faces the internet (ip nat outside). Translation happens only on the boundary between them.

If either label is missing, packets route normally but are never rewritten — so they leave with a private source address and the reply never comes back. A second common cause is an access-list that does not match the source subnet, or a missing overload keyword causing the single public address to be consumed by the first host.

How to confirm it

show ip nat translations
show ip nat statistics
show ip interface brief
show run | include ip nat|access-list

show ip nat statistics names the inside and outside interface lists. If either is empty, that is your fault found.

The fix

! Label the interfaces — this is the step most often missed
interface GigabitEthernet0/0
 ip nat inside
!
interface GigabitEthernet0/1
 ip nat outside
!
! Match the traffic to translate
access-list 1 permit 192.168.10.0 0.0.0.255
!
! PAT — many hosts behind one public address
ip nat inside source list 1 interface GigabitEthernet0/1 overload

The overload keyword is what makes this PAT rather than one-to-one NAT. Without it, one internal host claims the public address and everyone else fails.

How to stop it happening again

After configuring, generate traffic from a client and re-run show ip nat translations. An entry appearing is the only real proof it works.

Questions people ask

Why is my NAT table empty even though routing works?

Because routing and NAT are separate. Packets can route perfectly while never being translated — that is exactly what happens when the inside/outside labels are missing.

What does overload actually do?

It adds port numbers to the translation so many private hosts share one public IP. That is PAT, and it is what home and small-office internet connections use.

Related reading

Nat ExplainedNat Vs PatHow To Configure NatShow Ip Nat Translations Command

Reading the fix is not the same as doing it

Every fault on this page can be broken and repaired on real Cisco routers and switches in our Ahmedabad lab — which is how it stops being theory. Come and see the rack before you pay anything.

Start your networking career with Attila Technologies

Hands-on Cisco training, real lab devices and placement support in Ahmedabad.