08-16-2025 11:15 PM
Hi all,
I have a Cisco C1111-8p that is refusing to perform NAT, more specifically it is not matching the ACL. I am attempting to migrate from an old cisco 3845, which the config was moved from and working fine.
I can see that an Ip address is provided from the ISP, and static route / Gateway of last resort is installed in the routing table. NAT has been configured with overload along with a static route pointing to the ISP address, and ACL is permitting relevant addresses but the ACL is never hit and not translations take place. No NVI0 interface is created either. Have tried using the "Ip nat enable command" instead on relevant interfaces, no change. Any suggestions would be appreciated.
Ive attached a copy of the config and some NAT outputs.
Solved! Go to Solution.
08-18-2025 12:31 AM
Hi All,
Thanks for all the input. I finally got to the bottom of it. Seems that Cisco IOS XE software handles NAT ACLs differently than the old 3845 IOS I was used to. In this version the ACL will only be matched if it references a Standard ACL and will be ignored if it is an Extended ACL.
08-16-2025 11:24 PM
gDay to u @Adam_S alright. let me go all in here. First, u’re mixing classic NAT (inside/outside) with NVI (ip nat enable).
When u mix the two, the router won’t treat LAN traffic as “inside,” so ur NAT_ACL never gets hit and no translations are created. That’s also why NVI0 never appears. And u have some options here.
Option 1, which is recommended, USE CLASSIC NAT only. So on every lan svi, replace ip nat enable with ip nat inside;
conf t
int Vlan12
no ip nat enable
ip nat inside
int Vlan16
no ip nat enable
ip nat inside
int Vlan17
no ip nat enable
ip nat inside
int Vlan20
no ip nat enable
ip nat inside
int Vlan40
no ip nat enable
ip nat inside
int Vlan112
no ip nat enable
ip nat inside
int Vlan212
no ip nat enable
ip nat inside
int Vlan213
no ip nat enable
ip nat inside
int Gig0/0/1
ip nat outside (already present)
end
2. Tighten the NAT ACL so it only matches your internal subnets (optional but cleaner). For example:
ip access-list extended NAT_ACL
no 10
no 20
no 80
no 90
no 100
no 110
10 permit ip 10.0.0.0 0.255.255.255 any
20 permit ip 172.16.0.0 0.0.255.255 any
30 permit ip 192.168.0.0 0.0.255.255 any
3. Keep ur existing overload rule,,,, and do some tests
OPTION B: USE NVI so no inside /outside:
int Gig0/0/1
no ip nat outside
ip nat enable
(ensure all LAN SVIs have 'ip nat enable' they already do)
end
----------------------
Then use either of these (both generally work with NVI; if in doubt, use NVI0):
ip nat source list NAT_ACL interface NVI0 overload
or
ip nat source list NAT_ACL interface GigabitEthernet0/0/1 overload
So, if u switch to Option A (classic), u should immediately see hits in show ip nat statistics and active entries in show ip nat translations.
This turned into a long answer, but I had fun writing it! Hope it’s useful!
-Enes
08-17-2025 12:31 AM
08-17-2025 12:46 AM
Hello @Adam_S
Thanks for sharing your configuration.
On you c1111 you need to explicitly mark your interfaces for NAT, otherwise the acl will never be hit.
So, please configure your LAN-facing interface with ip nat inside command and your WAN-facing interface wirh ip nat outside command.
Then use an ACL that matche your internal subnet (for exemple permit 192.a68.1.0 0.0.0.255) and tie it to the outside interface with ip nat inside source list <your-acl> interface <wan> overload.
08-17-2025 05:08 AM
Your config
1- there is ip nat inside and outside
2- you use overload NAT
3- BUT
ACL NAT as I know not accept fragment or established keywords' why you use it????
MHM
08-17-2025 05:10 AM
Also you face issue with vlan20 traffic? If YES how can same ACL apply to IN and OUT direction??
10 permit udp any any eq bootps <<- this prevent user from get IP form dhcp server
MHM
08-18-2025 12:31 AM
Hi All,
Thanks for all the input. I finally got to the bottom of it. Seems that Cisco IOS XE software handles NAT ACLs differently than the old 3845 IOS I was used to. In this version the ACL will only be matched if it references a Standard ACL and will be ignored if it is an Extended ACL.
08-18-2025 12:36 AM
It not ignore extended ACL but it ignore extended ACL with keyword
MHM
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide