Existing rule :

static (dmz,outside) netmask

There is a special situation come up today. When access to another site , it has to be nat-ed to different ip address
So what I did :
1. Add a new access-list PNAT-T:
access-list PNAT-T extended permit ip host host 

2. Add a new access-list
FW1/act/pri(config)# static (dmz,outside) access-list PNAT-T
INFO: overlap with existing static
  Alphadmz: to outside: netmask

During testing, it is not working. Why, the order of NAT in ASA.

1. NAT exemption (nat 0 access-list)—In order, until the first match. Identity NAT is not included in this category; it is included in the regular static NAT or regular NAT category. We do not recommend overlapping addresses in NAT exemption statements because unexpected results can occur.

2. Static NAT and Static PAT (regular and policy) (static)—In order, until the first match. Static identity NAT is included in this category.

3. Policy dynamic NAT (nat access-list)—In order, until the first match. Overlapping addresses are allowed.

4. Regular dynamic NAT (nat)—Best match. Regular identity NAT is included in this category. The order of the NAT commands does not matter; the NAT statement that best matches the real address is used. For example, you can create a general statement to translate all addresses ( on an interface. If you want to translate a subset of your network ( to a different address, then you can create a statement to translate only When makes a connection, the specific statement for is used because it matches the real address best. We do not recommend using overlapping statements; they use more memory and can slow the performance of the adaptive security appliance.


The tricky part is #2 contains NAT and PAT as well as regular and policy.  So there are 4 iterations in that one section. The go in the order they were entered into the config.


Last step, adjust the order of NAT, put Policy NAT before regular static NAT. Everything works like a charm!!

By netsec

Leave a Reply