Configuring Static and Dynamic NAT Translation

Network Address Translation Overview

Network Address Translation (NAT) enables private IP internetworks that use nonregistered IP addresses to connect to the Internet. NAT operates on a device, usually connecting two networks, and translates private (not globally unique) IP addresses in the internal network into legal IP addresses before packets are forwarded to another network. You can configure NAT to advertise only one IP address for the entire network to the outside world. This ability provides additional security, effectively hiding the entire internal network behind one IP address.

A device configured with NAT has at least one interface to the inside network and one to the outside network. In a typical environment, NAT is configured at the exit router between a stub domain and a backbone. When a packet leaves the domain, NAT translates the locally significant source IP address into a globally unique IP address. When a packet enters the domain, NAT translates the globally unique destination IP address into a local IP address. If more than one exit point exists, NAT configured at each point must have the same translation table.

NAT is described in RFC 1631.

Information About Static NAT

Static Network Address Translation (NAT) allows the user to configure one-to-one translations of the inside local addresses to the outside global addresses. It allows both IP addresses and port number translations from the inside to the outside traffic and the outside to the inside traffic. The Cisco Nexus device supports Hitless NAT, which means that you can add or remove a NAT translation in the NAT configuration without affecting the existing NAT traffic flows.

Static NAT creates a fixed translation of private addresses to public addresses. Because static NAT assigns addresses on a one-to-one basis, you need an equal number of public addresses as private addresses. Because the public address is the same for each consecutive connection with static NAT, and a persistent translation rule exists, static NAT enables hosts on the destination network to initiate traffic to a translated host if an access list exists that allows it .

With dynamic NAT and Port Address Translation (PAT), each host uses a different address or port for each subsequent translation. The main difference between dynamic NAT and static NAT is that static NAT allows a remote host to initiate a connection to a translated host if an access list exists that allows it, while dynamic NAT does not.

The figure shows a typical static NAT scenario. The translation is always active so both translated and remote hosts can originate connections, and the mapped address is statically assigned by the static command.

Figure 1. Static NAT

These are key terms to help you understand static NAT:

  • NAT inside interface—The Layer 3 interface that faces the private network.

  • NAT outside interface—The Layer 3 interface that faces the public network.

  • Local address—Any address that appears on the inside (private) portion of the network.

  • Global address—Any address that appears on the outside (public) portion of the network.

  • Legitimate IP address—An address that is assigned by the Network Information Center (NIC) or service provider.

  • Inside local address—The IP address assigned to a host on the inside network. This address does not need to be a legitimate IP address.

  • Outside local address—The IP address of an outside host as it appears to the inside network. It does not have to be a legitimate address, because it is allocated from an address space that can be routed on the inside network.

  • Inside global address—A legitimate IP address that represents one or more inside local IP addresses to the outside world.

  • Outside global address—The IP address that the host owner assigns to a host on the outside network. The address is a legitimate address that is allocated from an address or network space that can be routed.

Dynamic NAT Overview

Dynamic Network Address Translation (NAT) translates a group of real IP addresses into mapped IP addresses that are routable on a destination network. Dynamic NAT establishes a one-to-one mapping between unregistered and registered IP addresses; however, the mapping can vary depending on the registered IP address that is avkailable at the time of communication.

A dynamic NAT configuration automatically creates a firewall between your internal network and outside networks or the Internet. Dynamic NAT allows only connections that originate inside the stub domain—a device on an external network cannot connect to devices in your network, unless your device has initiated the contact.

Dynamic NAT translations do not exist in the NAT translation table until a device receives traffic that requires translation. Dynamic translations are cleared or timed out when not in use to make space for new entries. Usually, NAT translation entries are cleared when the ternary content addressable memory (TCAM) entries are limited. The default minimum timeout for dynamic NAT translations is 30 minutes. The minimum value of the sampling-timeout in the ip nat translation sampling-timeout command was reduced from 30 minutes to 15 minutes.

Timeout of a dynamic NAT translation involves both the sampling-timeout value and the TCP or UDP timeout value. The sampling-timeout specifies the time after which the device checks for dynamic translation activity. It has a default value of 12 hours. All the other timeouts start only after the sample-timeout times out. After the sampling-timeout, the device inspects the packets that are hitting this translation. The checking happens for the TCP or UDP timeout period. If there are no packets for the TCP or UDP timeout period, the translation is cleared. If activity is detected on the translation, then the checking is stopped immediately and a sampling-timeout period begins.

After waiting for this new sampling-timeout period, the device checks for dynamic translation activity again. During an activity check the TCAM sends a copy of the packet that matches the dynamic NAT translation to the CPU. If the Control Plane Policing (CoPP) is configured at a low threshold, the TCP or UDP packets might not reach the CPU, and the CPU considers this as inactivity of the NAT translation.

Dynamic NAT supports Port Address Translation (PAT) and access control lists (ACLs). PAT, also known as overloading, is a form of dynamic NAT that maps multiple unregistered IP addresses to a single registered IP address by using different ports. Your NAT configuration can have multiple dynamic NAT translations with same or different ACLs. However, for a given ACL, only one interface can be specified.

Timeout Mechanisms

After dynamic NAT translations are created, they must be cleared when not in use so that newer translations can be created, especially because the number of TCAM entries is limited. Cisco NX-OS Release 7.x supports syn-timeout and finrst-timeout . The following NAT translation timeout timers are supported on the switch:

  • syn-timeout —Timeout value for TCP data packets that send the SYN request, but do not receive a SYN-ACK reply.

    The timeout value ranges from 1 second to 172800 seconds. The default value is 60 seconds.

  • finrst-timeout —Timeout value for the flow entries when a connection is terminated by receiving RST or FIN packets. Use the same keyword to configure the behavior for both RST and FIN packets.

    • If an RST packet is received after the connection is established, SYN-->SYN-ACK-->RST, the flows are expired after the configured timeout value.

    • If a FIN packet is received after the connection is established, SYN-->SYN-ACK-->FIN, the finrst timer starts.

    • If a FIN-ACK is received from the other side, the translation entry is cleared immediately, else it clears after the timeout value completes.


      Note


      If dynamic pool-based configuration is used and a FIN-ACK is received, the translation entry is not cleared.


    The timeout value ranges from 1 second to 172800 seconds. The default value is 60 seconds.

  • tcp-timeout —Timeout value for TCP translations for which connections have been established after a three-way handshake (SYN, SYN-ACK, ACK). If no active flow occurs after the connection has been established, the translations expire as per the configured timeout value. This timeout value starts after the sampling timeout value completes.

    The timeout value ranges from 60 seconds to 172800 seconds, including the sampling-timeout.

  • udp-timeout —Timeout value for all NAT UDP packets.

    The timeout value ranges from 60 seconds to 172800 seconds, including the sampling-timeout.

  • timeout—Timeout value for dynamic NAT translations.

    The timeout value ranges from 60 seconds to 172800 seconds, including the sampling-timeout.

  • sampling-timeout —Time after which the device checks for dynamic translation activity.

    The timeout value ranges from 120 seconds to 172800 seconds.

The tcp-timeout, udp-timeout, and the timeout value timers are triggered after the timeout configured for the ip nat translation sampling-timeout command expires.


Note


All the above timers will take additional time (01 to 30 seconds) to expire. This additional time is to randomize the timer expiry events for performance and optimization.


NAT Inside and Outside Addresses

NAT inside refers to networks owned by an organization that must be translated. When NAT is configured, hosts within this network will have addresses in one space (known as the local address space) that will appear to those outside the network as being in another space (known as the global address space).

Similarly, NAT outside refers to those networks to which the stub network connects. They are not generally under the control of the organization. Hosts in outside networks can be subject to translation and can have local and global addresses.

NAT uses the following definitions:
  • Local address—A local IP address that appears on the inside of a network.

  • Global address—A global IP address that appears on the outside of a network.

  • Inside local address—The IP address that is assigned to a host on the inside network. The address is probably not a legitimate IP address assigned by the Internet Network Information Center (InterNIC) or a service provider.

  • Inside global address—A legitimate IP address (assigned by InterNIC or a service provider) that represents one or more inside local IP addresses to the outside world.

  • Outside local address—The IP address of an outside host as it appears to the inside network. The address is not necessarily legitimate; it was allocated from the address space that is routable on the inside.

  • Outside global address—The IP address that is assigned to a host on the outside network by the owner of the host. The address was allocated from a globally routable address or a network space.

Pool Support for Dynamic NAT

Dynamic NAT allows the configuration of a pool of global addresses that can be used to dynamically allocate a global address from the pool for every new translation. The addresses are returned to the pool after the session ages out or is closed. This allows for a more efficient use of addresses based on requirements.

Support for PAT includes the use of the global address pool. This further optimizes IP address utilization. PAT exhausts one IP address at a time with the use of port numbers. If no port is available from the appropriate group and more than one IP address is configured, PAT moves to the next IP address and gets the allocation based on the user defined pool (ignoring the source port or attempting to preserve it).

With dynamic NAT and PAT, each host uses a different address or port for each subsequent translation. The main difference between dynamic NAT and static NAT is that static NAT allows a remote host to initiate a connection to a translated host if an access list exists that allows it, while dynamic NAT does not.

Static and Dynamic Twice NAT Overview

When both the source IP address and the destination IP address are translated as a single packet that goes through a Network Address Translation (NAT) device, it is referred to as twice NAT. Twice NAT is supported for static and dynamic translations.

Twice NAT allows you to configure two NAT translations (one inside and one outside) as part of a group of translations. These translations can be applied to a single packet as it flows through a NAT device. When you add two translations as part of a group, both the individual translations and the combined translation take effect.

A NAT inside translation modifies the source IP address and port number when a packet flows from inside to outside. It modifies the destination IP address and port number when the packet returns from outside to inside. NAT outside translation modifies the source IP address and port number when the packet flows from outside to inside, and it modifies the destination IP address and port number when the packet returns from inside to outside.

Without twice NAT, only one of the translation rules is applied on a packet, either the source IP address and port number or the destination IP address and port number.

Static NAT translations that belong to the same group are considered for twice NAT configuration. If a static configuration does not have a configured group ID, the twice NAT configuration will not work. All inside and outside NAT translations that belong to a single group that is identified by the group ID are paired to form twice NAT translations.

Dynamic twice NAT translations dynamically select the source IP address and port number information from pre-defined ip nat pool or interface overload configurations. Packet filtration is done by configuring ACLs, and traffic must originate from the dynamic NAT translation rule direction such that source translation is done by using dynamic NAT rules.

Dynamic twice NAT allows you to configure two NAT translations (one inside and one outside) as part of a group of translations. One translation must be dynamic and other translation must be static. When these two translations are part of a group of translations, both the translations can be applied on a single packet as it goes through the NAT device either from inside to outside or from outside to inside.

Guidelines and Limitations for Static NAT

Static NAT has the following configuration guidelines and limitations:

  • NAT supports up to 1024 translations which include both static and dynamic NAT.

  • Cisco Nexus 3500 Series switches do not support static and dynamic NAT on vPC topology.

  • The Cisco Nexus device supports NAT on the following interface types:

    • Switch Virtual Interfaces (SVIs)

    • Routed ports

    • Layer 3 port channels

  • NAT is supported for IPv4 Unicast only.

  • The Cisco Nexus device does not support the following:

    • Application layer translation. Layer 4 and other embedded IPs are not translated, including FTP, ICMP failures, IPSec, and HTTPs.

    • NAT and VLAN Access Control Lists (VACLs) that are configured on an interface at the same time.

    • PAT translation of fragmented IP packets.

    • NAT translation on software forwarded packets. For example, packets with IP-options are not NAT translated.

  • Egress ACLs are applied to the original packets and not the NAT translated packets.

  • By default, NAT can go up to 127 translations with 256 TCAM entries. If you need more NAT translations, you need to reduce the TCAM region allocation in other areas and then increase the NAT TCAM region using the hardware profile tcam region nat command.

  • HSRP and VRRP are supported on NAT inside address and not on NAT outside addresses.

  • Warp mode latency performance is not supported on packets coming from the outside to the inside domain.

  • If an IP address is used for Static NAT or PAT translations, it cannot be used for any other purpose. For example, it cannot be assigned to an interface.

  • For Static NAT, the outside global IP address should be different from the outside interface IP address.

  • If the translated IP is part of the outside interface subnet, then use the ip local-proxy-arp command on the NAT outside interface.

  • NAT statistics are not available.

  • When configuring a large number of translations (more than 100), it is faster to configure the translations before configuring the NAT interfaces.

  • Only one of the following features can be enabled on an interface at a time. If more than one of these features is enabled on an interface, only the feature that is enabled last will work:
    • NAT
    • DHCP Relay
    • VACL
  • More than 127 PD NAT statics entries are not supported because of a hardware limitation that inconsistently increment the CoPP hardware counters.

Restrictions for Dynamic NAT

The following restrictions apply to dynamic Network Address Translation (NAT):

  • Fragmented packets are not supported.

  • Application layer gateway (ALG) translations are not supported. ALG, also known as application-level gateway, is an application that translates IP address information inside the payload of an application packet.

  • NAT and VLAN Access Control Lists (VACLs) are not supported together on an interface. You can configure either NAT or VACLs on an interface.

  • Egress ACLs are not applied to translated packets.

  • MIBs are not supported.

  • Cisco Data Center Network Manager (DCNM) is not supported.

  • Dynamic NAT translations are not synchronized with active and standby devices.

  • Stateful NAT is not supported. However, NAT and Hot Standby Router Protocol (HSRP) can coexist.

  • Normally, ICMP NAT flows time out after the expiration of the configured sampling-timeout and translation-timeout. However, when ICMP NAT flows present in the switch become idle, they time out immediately after the expiration of the sampling-timeout configured.

  • If the translated IP is part of the outside interface subnet, then use the ip local-proxy-arp command on the NAT outside interface.

  • When creating a new translation on a Cisco Nexus 3548 Series switch, the flow is software forwarded until the translation is programmed in the hardware, which might take a few seconds. During this period, there is no translation entry for the inside global address. Therefore, returning traffic is dropped. To overcome this limitation, create a loopback interface and give it an IP address that belongs to the NAT pool.

Guidelines and Limitations for Dynamic Twice NAT

See the following guidelines for configuring dynamic twice NAT:

  • In dynamic twice NAT, if dynamic NAT flows are not created before creating static NAT flows, dynamic twice NAT flows are not created correctly.

  • When an empty ACL is created, the default rule of permit ip any any is configured. The NAT-ACL does not match further ACL entries if the first ACL is blank.

  • The maximum number of supported ICMP translations or flow entries is 176 for an optimal utilization of the TCAM space.

  • NAT is ECMP aware and it supports a maximum of 24 ECMP paths.

  • Cisco NX-OS Release 9.x supports Network Address Translation (NAT) statistics on Cisco Nexus 3548 switches.

  • Traceroute is not supported on static and dynamic NAT

Configuring Static NAT

Enabling Static NAT

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# feature nat
  3. (Optional) switch(config)# copy running-config startup-config

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# feature nat

Enables the static NAT feature on the device.

Step 3

(Optional) switch(config)# copy running-config startup-config

(Optional)

Saves the change persistently through reboots and restarts by copying the running configuration to the startup configuration.

Configuring Static NAT on an Interface

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# interface type slot/port
  3. switch(config-if)# ip nat {inside | outside}
  4. (Optional) switch(config)# copy running-config startup-config

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# interface type slot/port

Specifies an interface to configure, and enters interface configuration mode.

Step 3

switch(config-if)# ip nat {inside | outside}

Specifies the interface as inside or outside.

Note

 

Only packets that arrive on a marked interface can be translated.

Step 4

(Optional) switch(config)# copy running-config startup-config

(Optional)

Saves the change persistently through reboots and restarts by copying the running configuration to the startup configuration.

Example

This example shows how to configure an interface with static NAT from the inside:

switch# configure terminal
switch(config)# interface ethernet 1/4
switch(config-if)# ip nat inside

Enabling Static NAT for an Inside Source Address

For inside source translation, the traffic flows from inside interface to the outside interface. NAT translates the inside local IP address to the inside global IP address. On the return traffic, the destination inside global IP address gets translated back to the inside local IP address.


Note


When the Cisco Nexus device is configured to translate an inside source IP address (Src:ip1) to an outside source IP address (newSrc:ip2), the Cisco Nexus device implicitly adds a translation for an outside destination IP address (Dst: ip2) to an inside destination IP address (newDst: ip1).


SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# ip nat inside source static local-ip-address global-ip-address [group group-id]
  3. (Optional) switch(config)# copy running-config startup-config

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# ip nat inside source static local-ip-address global-ip-address [group group-id]

Configures static NAT to translate the inside global address to the inside local address or to translate the opposite (the inside local traffic to the inside global traffic).

Step 3

(Optional) switch(config)# copy running-config startup-config

(Optional)

Saves the change persistently through reboots and restarts by copying the running configuration to the startup configuration.

Example

This example shows how to configure static NAT for an inside source address:

switch# configure terminal
switch(config)# ip nat inside source static 1.1.1.1 5.5.5.5
switch(config)# copy running-config startup-config

Enabling Static NAT for an Outside Source Address

For outside source translation, the traffic flows from the outside interface to the inside interface. NAT translates the outside global IP address to the outside local IP address. On the return traffic, the destination outside local IP address gets translated back to outside global IP address.

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# ip nat outside source static global-ip-address local-ip-address [group group-id] [add-route]
  3. (Optional) switch(config)# copy running-config startup-config

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# ip nat outside source static global-ip-address local-ip-address [group group-id] [add-route]

Configures static NAT to translate the outside global address to the outside local address or to translate the opposite (the outside local traffic to the outside global traffic).

Step 3

(Optional) switch(config)# copy running-config startup-config

(Optional)

Saves the change persistently through reboots and restarts by copying the running configuration to the startup configuration.

Example

This example show how to configure static NAT for an outside source address:

switch# configure terminal
switch(config)# ip nat outside source static 2.2.2.2 6.6.6.6
switch(config)# copy running-config startup-config

Configuring Static PAT for an Inside Source Address

You can map services to specific inside hosts using Port Address Translation (PAT).

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# ip nat inside source static {inside-local-address outside-local-address | {tcp| udp} inside-local-address {local-tcp-port | local-udp-port} inside-global-address {global-tcp-port | global-udp-port}} group group-id
  3. (Optional) switch(config)# copy running-config startup-config

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# ip nat inside source static {inside-local-address outside-local-address | {tcp| udp} inside-local-address {local-tcp-port | local-udp-port} inside-global-address {global-tcp-port | global-udp-port}} group group-id

Maps static NAT to an inside local port to an inside global port.

Step 3

(Optional) switch(config)# copy running-config startup-config

(Optional)

Saves the change persistently through reboots and restarts by copying the running configuration to the startup configuration.

Example

This example shows how to map UDP services to a specific inside source address and UDP port:

switch# configure terminal
switch(config)#  ip nat inside source static udp 20.1.9.2 63 35.48.35.48 130
switch(config)# copy running-config startup-config

Configuring Static PAT for an Outside Source Address

You can map services to specific outside hosts using Port Address Translation (PAT).

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# ip nat outside source static {outside-global-address outside-local-address | {tcp | udp} outside-global-address {global-tcp-port | global-udp-port} outside-local-address {global-tcp-port | global-udp-port}}group group-id add-route
  3. (Optional) switch(config)# copy running-config startup-config

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# ip nat outside source static {outside-global-address outside-local-address | {tcp | udp} outside-global-address {global-tcp-port | global-udp-port} outside-local-address {global-tcp-port | global-udp-port}}group group-id add-route

Maps static NAT to an outside global port to an outside local port.

Step 3

(Optional) switch(config)# copy running-config startup-config

(Optional)

Saves the change persistently through reboots and restarts by copying the running configuration to the startup configuration.

Example

This example shows how to map TCP services to a specific outside source address and TCP port:

switch# configure terminal
switch(config)#  ip nat outside source static tcp 20.1.9.2 63 35.48.35.48 130
switch(config)# copy running-config startup-config

Configuring Static Twice NAT

All translations within the same group are considered for creating static twice Network Address Translation (NAT) rules.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. ip nat inside source static inside-local-ip-address inside-global-ip-address [group group-id]
  4. ip nat outside source static outside-global-ip-address outside-local-ip-address [group group-id] [add-route]
  5. interface type number
  6. ip address ip-address mask
  7. ip nat inside
  8. exit
  9. interface type number
  10. ip address ip-address mask
  11. ip nat outside
  12. end

DETAILED STEPS

  Command or Action Purpose

Step 1

enable

Example:

switch> enable
Enables privileged EXEC mode.
  • Enter your password if prompted.

Step 2

configure terminal

Example:

switch# configure terminal

Enters privileged EXEC mode.

Step 3

ip nat inside source static inside-local-ip-address inside-global-ip-address [group group-id]

Example:

switch(config)# ip nat inside source static 10.1.1.1 192.168.34.4 group 4
Configures static twice NAT to translate an inside local IP address to the corresponding inside global IP address.
  • The group keyword determines the group to which a translation belongs.

Step 4

ip nat outside source static outside-global-ip-address outside-local-ip-address [group group-id] [add-route]

Example:

switch(config)# ip nat outside source static 209.165.201.1 10.3.2.42 group 4 add-route
Configures static twice NAT to translate an outside global IP address to the corresponding outside local IP address.
  • The group keyword determines the group to which a translation belongs.

Step 5

interface type number

Example:

switch(config)# interface ethernet 1/2

Configures an interface and enters interface configuration mode.

Step 6

ip address ip-address mask

Example:

switch(config-if)# ip address 10.2.4.1 255.255.255.0

Sets a primary IP address for an interface.

Step 7

ip nat inside

Example:

switch(config-if)# ip nat inside

Connects the interface to an inside network, which is subject to NAT.

Step 8

exit

Example:

switch(config-if)# exit

Exits interface configuration mode and returns to global configuration mode.

Step 9

interface type number

Example:

switch(config)# interface ethernet 1/1

Configures an interface and enters interface configuration mode.

Step 10

ip address ip-address mask

Example:

switch(config-if)# ip address 10.5.7.9 255.255.255.0

Sets a primary IP address for an interface.

Step 11

ip nat outside

Example:

switch(config-if)# ip nat outside

Connects the interface to an outside network, which is subject to NAT.

Step 12

end

Example:

switch(config-if)# end 

Exits interface configuration mode and returns to privileged EXEC mode.

Configuration Example for Static NAT and PAT

This example shows the configuration for static NAT:


ip nat inside source static 103.1.1.1 11.3.1.1 
ip nat inside source static 139.1.1.1 11.39.1.1 
ip nat inside source static 141.1.1.1 11.41.1.1 
ip nat inside source static 149.1.1.1 95.1.1.1 
ip nat inside source static 149.2.1.1 96.1.1.1 
ip nat outside source static 95.3.1.1 95.4.1.1 
ip nat outside source static 96.3.1.1 96.4.1.1 
ip nat outside source static 102.1.2.1 51.1.2.1
ip nat outside source static 104.1.1.1 51.3.1.1 
ip nat outside source static 140.1.1.1 51.40.1.1 
This example shows the configuration for static PAT:

ip nat inside source static tcp 10.11.1.1 1 210.11.1.1 101 
ip nat inside source static tcp 10.11.1.1 2 210.11.1.1 201 
ip nat inside source static tcp 10.11.1.1 3 210.11.1.1 301 
ip nat inside source static tcp 10.11.1.1 4 210.11.1.1 401 
ip nat inside source static tcp 10.11.1.1 5 210.11.1.1 501 
ip nat inside source static tcp 10.11.1.1 6 210.11.1.1 601 
ip nat inside source static tcp 10.11.1.1 7 210.11.1.1 701 
ip nat inside source static tcp 10.11.1.1 8 210.11.1.1 801 
ip nat inside source static tcp 10.11.1.1 9 210.11.1.1 901 
ip nat inside source static tcp 10.11.1.1 10 210.11.1.1 1001 
ip nat inside source static tcp 10.11.1.1 11 210.11.1.1 1101 
ip nat inside source static tcp 10.11.1.1 12 210.11.1.1 1201 

Example: Configuring Static Twice NAT

The following example shows how to configure the inside source and outside source static twice NAT configurations:

Switch> enable 
Switch# configure terminal
Switch(config)# ip nat inside source static 10.1.1.1 192.168.34.4 group 4
Switch(config)# ip nat outside source static 209.165.201.1 10.3.2.42 group 4
Switch(config)# interface ethernet 1/2
Switch(config-if)# ip address 10.2.4.1 255.255.255.0
Switch(config-if)# ip nat inside
switch(config-if)# exit
switch(config)# interface ethernet 1/1
switch(config-if)# ip address 10.5.7.9 255.255.255.0
switch(config-if)# ip nat outside
Switch(config-if)# end 

Verifying the Static NAT Configuration

To display the static NAT configuration, perform this task:

SUMMARY STEPS

  1. switch# show ip nat translations

DETAILED STEPS

Command or Action Purpose

switch# show ip nat translations

Shows the translations for the inside global, inside local, outside local, and outside global IP addresses.

Example

This example shows how to display the static NAT configuration:

switch# show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
any ---                ---                20.4.4.40          220.2.2.20
tcp ---                ---                23.1.1.133:333     210.3.3.33:555
any 160.200.1.140      10.1.1.40          ---                ---
any 160.200.1.140      10.1.1.40          20.4.4.40          220.2.2.20
tcp 172.9.9.142:777    12.2.2.42:444      ---                ---
tcp 172.9.9.142:777    12.2.2.42:444      23.1.1.133:333     210.3.3.33:555

Configuring Dynamic NAT

Configuring Dynamic Translation and Translation Timeouts

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. ip access-list access-list-name
  4. permit protocol source source-wildcard any
  5. deny protocol source source-wildcard any
  6. exit
  7. ip nat inside source list access-list-name interface type number overload
  8. interface type number
  9. ip address ip-address mask
  10. ip nat inside
  11. exit
  12. interface type number
  13. ip address ip-address mask
  14. ip nat outside
  15. exit
  16. ip nat translation tcp-timeout seconds
  17. ip nat translation max-entries [all-host] number-of-entries
  18. ip nat translation udp-timeout seconds
  19. ip nat translation timeout seconds
  20. ip nat translation syn-timeout {seconds | never}
  21. ip nat translation finrst-timeout {seconds | never}
  22. end

DETAILED STEPS

  Command or Action Purpose

Step 1

enable

Example:

Switch> enable
Enables privileged EXEC mode.
  • Enter your password if prompted.

Step 2

configure terminal

Example:

Switch# configure terminal 

Enters global configuration mode.

Step 3

ip access-list access-list-name

Example:

Switch(config)# ip access-list acl1

Defines an access list and enters access-list configuration mode.

Step 4

permit protocol source source-wildcard any

Example:

Switch(config-acl)# permit ip 10.111.11.0/24 any

Sets conditions in an IP access list that permit traffic matching the conditions.

Step 5

deny protocol source source-wildcard any

Example:

Switch(config-acl)# deny udp 10.111.11.100/32 any

Sets conditions in an IP access list that deny packets from entering a network.

The deny rule is treated as a permit rule, and the packets matching the criteria mentioned in the deny rule are forwarded without NAT translation.

Step 6

exit

Example:

Switch(config-acl)# exit

Exits access-list configuration mode and returns to global configuration mode.

Step 7

ip nat inside source list access-list-name interface type number overload

Example:

Switch(config)# ip nat inside source list acl1 interface ethernet 1/1 overload

Establishes dynamic source translation by specifying the access list defined in Step 3.

Step 8

interface type number

Example:

Switch(config)# interface ethernet 1/4

Configures an interface and enters interface configuration mode.

Step 9

ip address ip-address mask

Example:

Switch(config-if)# ip address 10.111.11.39 255.255.255.0 

Sets a primary IP address for the interface.

Step 10

ip nat inside

Example:

Switch(config-if)# ip nat inside 

Connects the interface to an inside network, which is subject to NAT.

Step 11

exit

Example:

Switch(config-if)# exit 

Exits interface configuration mode and returns to global configuration mode.

Step 12

interface type number

Example:

Switch(config)# interface ethernet 1/1 

Configures an interface and enters interface configuration mode.

Step 13

ip address ip-address mask

Example:

Switch(config-if)# ip address 172.16.232.182 255.255.255.240 

Sets a primary IP address for an interface.

Step 14

ip nat outside

Example:

Switch(config-if)# ip nat outside

Connects the interface to an outside network.

Step 15

exit

Example:

Switch(config-if)# exit 

Exits interface configuration mode and returns to global configuration mode.

Step 16

ip nat translation tcp-timeout seconds

Example:

Switch(config)# ip nat translation tcp-timeout 50000 
Specifies the timeout value for TCP-based dynamic NAT entries.
  • Dynamically created NAT translations are cleared when the configured timeout limit is reached. All configured timeouts are triggered after the timeout configured for the ip nat translation sampling-timeout command expires.

Step 17

ip nat translation max-entries [all-host] number-of-entries

Example:

Switch(config)# ip nat translation max-entries 300

Specifies the maximum number of dynamic NAT translations. The number of entries can be between 1 and 1023.

The all-host keyword enforces this translation limit on all hosts. The number of entries per host can be between 1 and 1023.

Step 18

ip nat translation udp-timeout seconds

Example:

Switch(config)# ip nat translation udp-timeout 45000 
Specifies the timeout value for UDP-based dynamic NAT entries.
  • Dynamically created NAT translations are cleared when the configured timeout limit is reached. All configured timeouts are triggered after the timeout configured for the ip nat translation sampling-timeout command expires.

Step 19

ip nat translation timeout seconds

Example:

switch(config)# ip nat translation timeout 13000 

Specifies the timeout value for dynamic NAT translations.

Step 20

ip nat translation syn-timeout {seconds | never}

Example:

switch(config)# ip nat translation syn-timeout 20

Specifies the timeout value for TCP data packets that send the SYN request, but do not receive a SYN-ACK reply.

The timeout value ranges from 1 second to 172800 seconds. The default value is 60 seconds.

The never keyword specifies that the SYN timer will not be run.

Step 21

ip nat translation finrst-timeout {seconds | never}

Example:

switch(config)# ip nat translation finrst-timeout 30

Specifies the timeout value for the flow entries when a connection is terminated by receiving finish (FIN) or reset (RST) packets. Use the same keyword to configure the behavior for both RST and FIN packets.

The timeout value ranges from 1 second to 172800 seconds. The default value is 60 seconds.

The never keyword specifies that the FIN or RST timer will not be run.

Step 22

end

Example:

Switch(config)# end

Exits global configuration mode and returns to privileged EXEC mode.

Configuring Dynamic NAT Pool

You can create a NAT pool by either defining the range of IP addresses in a single ip nat pool command or by using the ip nat pool and address commands

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# feature nat
  3. switch(config)# ip nat pool pool-name [startip endip] {prefix prefix-length | netmask network-mask}
  4. (Optional) switch(config-ipnat-pool)# address startip endip
  5. (Optional) switch(config)# no ip nat pool pool-name

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# feature nat

Enables the NAT feature on the device.

Step 3

switch(config)# ip nat pool pool-name [startip endip] {prefix prefix-length | netmask network-mask}

Creates a NAT pool with a range of global IP addresses. The IP addresses are filtered by using either a prefix length or a network mask.

Step 4

(Optional) switch(config-ipnat-pool)# address startip endip

(Optional)

Specifies the range of global IP addresses if they were not specified during creation of the pool.

Step 5

(Optional) switch(config)# no ip nat pool pool-name

(Optional)

Deletes the specified NAT pool.

Example

This example shows how to create a NAT pool with a prefix length:

switch# configure terminal
switch(config)# ip nat pool pool1 30.1.1.1 30.1.1.2 prefix-length 24
switch(config)# 


This example shows how to create a NAT pool with a network mask:

switch# configure terminal
switch(config)# ip nat pool pool5 20.1.1.1 20.1.1.5 netmask 255.0.255.0
switch(config)# 


This example shows how to create a NAT pool and define the range of global IP addresses using the ip nat pool and address commands:

switch# configure terminal
switch(config)# ip nat pool pool7 netmask 255.255.0.0
switch(config-ipnat-pool)# address 40.1.1.1 40.1.1.5
switch(config-ipnat-pool)#


This example shows how to delete a NAT pool:

switch# configure terminal
switch(config)# no ip nat pool pool4
switch(config)#

Configuring Source Lists

You can configure a source list of IP addresses for the inside interface and the outside interface.

Before you begin

Ensure that you configure a pool before configuring the source list for the pool.

SUMMARY STEPS

  1. switch# configure terminal
  2. (Optional) switch# ip nat inside source list list-name pool pool-name [overload]
  3. (Optional) switch# ip nat outside source list list-name pool pool-name [add-route]

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

(Optional) switch# ip nat inside source list list-name pool pool-name [overload]

(Optional)

Creates a NAT inside source list with pool with or without overloading.

Step 3

(Optional) switch# ip nat outside source list list-name pool pool-name [add-route]

(Optional)

Creates a NAT outside source list with pool without overloading.

Example

This example shows how to create a NAT inside source list with pool without overloading:

switch# configure terminal
switch(config)# ip nat inside source list list1 pool pool1
switch(config)#


This example shows how to create a NAT inside source list with pool with overloading:

switch# configure terminal
switch(config)# ip nat inside source list list2 pool pool2 overload
switch(config)#


This example shows how to create a NAT outside source list with pool without overloading:

switch# configure terminal
switch(config)# ip nat outside source list list3 pool pool3
switch(config)#

Configuring Dynamic Twice NAT for an Inside Source Address

For an inside source address translation, the traffic flows from the inside interface to the outside interface. You can configure dynamic twice NAT for an inside source address.

Before you begin

Ensure that you enable NAT on the switch.

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# ip nat outside source static outside-global-ip-address outside-local-ip-address | [tcp | udp] outside-global-ip-address outside-global-port outside-local-ip-address outside-local-port [group group-id] [add-route] [dynamic]
  3. switch(config)# ip nat inside source list access-list-name [interface type slot/port overload | pool pool-name ] [group group-id] [dynamic] ]
  4. switch(config)# ip nat pool pool-name [startip endip] {prefix prefix-length | netmask network-mask}
  5. switch(config)# interface type slot/port
  6. switch(config-if)# ip nat outside
  7. switch(config-if)# exit
  8. switch(config)# interface type slot/port
  9. switch(config-if)# ip nat inside

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# ip nat outside source static outside-global-ip-address outside-local-ip-address | [tcp | udp] outside-global-ip-address outside-global-port outside-local-ip-address outside-local-port [group group-id] [add-route] [dynamic]

Configures static NAT to translate an outside global address to an inside local address or to translate inside local traffic to inside global traffic.

The group keyword determines the group to which a translation belongs.

Step 3

switch(config)# ip nat inside source list access-list-name [interface type slot/port overload | pool pool-name ] [group group-id] [dynamic] ]

Establishes dynamic source translation by creating a NAT inside source list with pool with or without overloading.

The group keyword determines the group to which a translation belongs.

Step 4

switch(config)# ip nat pool pool-name [startip endip] {prefix prefix-length | netmask network-mask}

Creates a NAT pool with a range of global IP addresses. The IP addresses are filtered by using either a prefix length or a network mask.

Step 5

switch(config)# interface type slot/port

Configures an interface and enters interface configuration mode.

Step 6

switch(config-if)# ip nat outside

Connects the interface to an outside network.

Step 7

switch(config-if)# exit

Exits interface configuration mode and returns to global configuration mode.

Step 8

switch(config)# interface type slot/port

Configures an interface and enters interface configuration mode.

Step 9

switch(config-if)# ip nat inside

Connects the interface to an inside network, which is subject to NAT.

Example

This example shows how to configure dynamic twice NAT for an inside source address:

switch# configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
switch(config)# ip nat outside source static 2.2.2.2 4.4.4.4 group 20 dynamic 
switch(config)# ip nat inside source list acl_1 pool pool_1 overload group 20 dynamic 
switch(config)# ip nat pool pool_1 3.3.3.3 3.3.3.10 prefix-length 24
switch(config)# interface Ethernet1/8
switch(config-if)# ip nat outside 
switch(config-if)# exit
switch(config)# interface Ethernet1/15
switch(config-if)# ip nat inside

Configuring Dynamic Twice NAT for an Outside Source Address

For an outside source address translation, the traffic flows from the outside interface to the inside interface. You can configure dynamic twice NAT for an outside source address.

Before you begin

Ensure that you enable NAT on the switch.

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# ip nat inside source static inside-local-ip-address inside-global-ip-address | [tcp | udp] inside-local-ip-address local-port inside-global-ip-address global-port [group group-id] [dynamic]
  3. switch(config)# ip nat outside source list access-list-name [interface type slot/port pool pool-name ] [group group-id] [add-route] [dynamic]
  4. switch(config)# ip nat pool pool-name [startip endip] {prefix prefix-length | netmask network-mask}
  5. switch(config)# interface type slot/port
  6. switch(config-if)# ip nat outside
  7. switch(config-if)# exit
  8. switch(config)# interface type slot/port
  9. switch(config-if)# ip nat inside

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# ip nat inside source static inside-local-ip-address inside-global-ip-address | [tcp | udp] inside-local-ip-address local-port inside-global-ip-address global-port [group group-id] [dynamic]

Configures static NAT to translate an inside global address to an inside local address or to translate inside local traffic to inside global traffic.

The group keyword determines the group to which a translation belongs.

Step 3

switch(config)# ip nat outside source list access-list-name [interface type slot/port pool pool-name ] [group group-id] [add-route] [dynamic]

Establishes dynamic source translation by creating a NAT outside source list with pool.

Step 4

switch(config)# ip nat pool pool-name [startip endip] {prefix prefix-length | netmask network-mask}

Creates a NAT pool with a range of global IP addresses. The IP addresses are filtered by using either a prefix length or a network mask.

Step 5

switch(config)# interface type slot/port

Configures an interface and enters interface configuration mode.

Step 6

switch(config-if)# ip nat outside

Connects the interface to an outside network.

Step 7

switch(config-if)# exit

Exits interface configuration mode and returns to global configuration mode.

Step 8

switch(config)# interface type slot/port

Configures an interface and enters interface configuration mode.

Step 9

switch(config-if)# ip nat inside

Connects the interface to an inside network, which is subject to NAT.

Example

This example shows how to configure dynamic twice NAT for an outside source address:

switch# configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
switch(config)# ip nat inside source static 7.7.7.7 5.5.5.5 group 30 dynamic 
switch(config)# ip nat outside source list acl_2 pool pool_2 group 30 dynamic
switch(config)# ip nat pool pool_2 4.4.4.4 4.4.4.10 prefix-length 24
switch(config)# interface Ethernet1/6
switch(config-if)# ip nat outside 
switch(config-if)# exit
switch(config)# interface Ethernet1/11
switch(config-if)# ip nat inside

Clearing Dynamic NAT Translations

To clear dynamic translations, perform the following task:

Command Purpose
clear ip nat translation [ all | inside global-ip-address local-ip-address [outside local-ip-address global-ip-address] | outside local-ip-address global-ip-address ]

Deletes all or specific dynamic NAT translations.

Example

This example shows how to clear all dynamic translations:

switch# clear ip nat translation all

This example shows how to clear dynamic translations for inside and outside addresses:

switch# clear ip nat translation inside 2.2.2.2 4.4.4.4 outside 5.5.5.5 7.7.7.7

Verifying Dynamic NAT Configuration

To display dynamic NAT configuration, perform the following tasks:

Command Purpose

show ip nat translations

Displays active Network Address Translation (NAT) translations including dynamic translations.

Displays additional information for each translation table entry, including when an entry was created and used.

show ip nat translations verbose

Displays active Network Address Translation (NAT) translations including dynamic translations in a more readable format.

show run nat

Displays NAT configuration.

Example

This example shows how to display running configuration for NAT:

switch# show run nat

!Command: show running-config nat
!Time: Wed Apr 23 11:17:43 2014

version 6.0(2)A3(1)
feature nat

ip nat inside source list list1 pool pool1
ip nat inside source list list2 pool pool2 overload
ip nat inside source list list7 pool pool7 overload
ip nat outside source list list3 pool pool3
ip nat pool pool1 30.1.1.1 30.1.1.2 prefix-length 24
ip nat pool pool2 10.1.1.1 10.1.1.2 netmask 255.0.255.0
ip nat pool pool3 30.1.1.1 30.1.1.8 prefix-length 24
ip nat pool pool5 20.1.1.1 20.1.1.5 netmask 255.0.255.0
ip nat pool pool7 netmask 255.255.0.0
  address 40.1.1.1 40.1.1.5
        

This example shows how to display active NAT translations:

Inside pool with overload

switch# show ip nat translation
Pro  Inside global      Inside local       Outside local      Outside global
icmp 20.1.1.3:64762     10.1.1.2:133       20.1.1.1:0         20.1.1.1:0
icmp 20.1.1.3:64763     10.1.1.2:134       20.1.1.1:0         20.1.1.1:0



switch# sh ip nat translations verbose
Pro Inside global      Inside local       Outside local      Outside global
any 1.1.1.1            10.1.1.2           ---                ---
    Flags:0x1  Entry-id:0  State:0x0  Group_id:0 Format(H:M:S) Time-left:0:0:-1
icmp 101.1.0.1:65351   101.0.0.1:0        102.1.0.1:231      102.1.0.1:231
    Flags:0x82  Entry-id:101  State:0x3  Group_id:0 VRF: red Format(H:M:S) Time-left:12:0:9
udp 101.1.0.1:65383    101.0.0.1:63       102.1.0.1:63       102.1.0.1:63
    Flags:0x82  Entry-id:103  State:0x3  Group_id:0 VRF: red Format(H:M:S) Time-left:12:0:9
tcp 101.1.0.1:64549    101.0.0.1:8809     102.1.0.1:9087     102.1.0.1:9087
    Flags:0x82  Entry-id:102  State:0x1  Group_id:0 VRF: red Format(H:M:S) Time-left:12:0:9
    syn:0:1:9  fin-rst:12:0:9


Outside pool without overload

switch# show ip nat translation
Pro  Inside global      Inside local       Outside local      Outside global
any  ---                ---                177.7.1.1:0        77.7.1.64:0
any  ---                ---                40.146.1.1:0       40.46.1.64:0
any  ---                ---                10.4.146.1:0       10.4.46.64:0


switch# show ip nat translations verbose
Pro Inside global      Inside local       Outside local      Outside global
any 1.1.1.1            10.1.1.2           ---                ---
    Flags:0x1  Entry-id:0  State:0x0  Group_id:0 Format(H:M:S) Time-left:0:0:-1
any 101.1.0.1          101.0.0.1          ---                ---
    Flags:0x0  Entry-id:92  State:0x3  Group_id:0 VRF: red Format(H:M:S) Time-left:12:0:11


Verifying NAT Statistics

To display Network Address Translation (NAT) statistics, perform the following task:

Command Purpose

show ip nat statistics

Display Network Address Translation (NAT) statistics.

Example

This example shows the sample output from the show ip nat statistics command:

Clearing NAT Statistics

To clear Network Address Translation (NAT) statistics, perform the following task:

Command Purpose

clear ip nat Statistics

Clear Network Address Translation (NAT) statistics entries.

Example

clear ip nat statistics command clears Network Address Translation (NAT) statistics entries:

switch# clear ip nat statistics

----------------------------------------------------
Total expired Translations: 0
SYN timer expired:
FIN-RST timer expired:
Inactive timer expired:
----------------------------------------------------
Total Hits: 0
In-Out Hits: 0
Out-In Hits: 0 
----------------------------------------------------
Total Misses: 0 
In-Out Misses: 0 
Out-In Misses: 0
----------------------------------------------------
Total SW Translated Packets: 0
In-Out SW Translated: 0 
Out-In SW Translated: 0
----------------------------------------------------
Total SW Dropped Packets: 0
In-Out SW Dropped: 0
----------------------------------------------------
Address alloc. failure drop: 0
Port alloc. failure drop: 0
Dyn. Translation max limit drop: 0 
ICMP max limit drop: 0
Allhost max limit drop: 0
----------------------------------------------------
Inside / Outside source list: 
Missed: 0
----------------------------------------------------


        

Example: Configuring Dynamic Translation and Translation Timeouts

The following example shows how to configure dynamic overload Network Address Translation (NAT) by specifying an access list:

Switch> enable
Switch# configure terminal
Switch(config)# ip access-list acl1
Switch(config-acl)# permit ip 10.111.11.0/24 any
Switch(config-acl)# deny udp 10.111.11.100/32 any
Switch(config-acl)# exit
Switch(config)# ip nat inside source list acl1 interface ethernet 1/1 overload
Switch(config)# interface ethernet 1/4
Switch(config-if)# ip address 10.111.11.39 255.255.255.0
Switch(config-if)# ip nat inside 
Switch(config-if)# exit
Switch(config)# interface ethernet 1/1
Switch(config-if)# ip address 172.16.232.182 255.255.255.240
Switch(config-if)# ip nat outside 
Switch(config-if)# exit
Switch(config)# ip nat translation tcp-timeout 50000
Switch(config)# ip nat translation max-entries 300
Switch(config)# ip nat translation udp-timeout 45000
Switch(config)# ip nat translation timeout 13000
Switch(config)# end

Information About VRF Aware NAT

VRF aware NAT is supported by static and dynamic NAT configurations. When the traffic is configured to flow from a non-default VRF (inside) to the same non-default VRF (outside), the match-in-vrf option of the IP NAT command must be specified. 

When the traffic is configured to flow from a non-default VRF (inside) to a default VRF (outside), the match-in-vrf option of the IP NAT command cannot be specified. A NAT outside configuration is not supported on a non-default VRF interface when the NAT inside is configured on a default VRF interface.

When overlapping addresses are configured across different VRFs for a NAT inside interface, a NAT outside interface should not be the default VRF interface. For example, vrfA and vrfB are configured as NAT inside interfaces with same source subnets and a NAT outside interface is configured as the default VRF. NAT is not supported in a configuration like this because of the ambiguity in routing packets from a NAT outside interface to NAT inside interface.

Configuring VRF Aware NAT

Before you begin

Ensure that you enable NAT on the switch.

SUMMARY STEPS

  1. switch# configure terminal
  2. switch(config)# [no] ip nat inside | outside source list ACL_NAME [interface INTERFACE NAME overload ][pool POOL NAME overload ] [group group-id] [dynamic] [ vrf <vrf-name> [match-in-vrf] ]
  3. switch(config)# [no] ip nat inside | outside source static LOCAL IP GLOBAL IP | [tcp | udp LOCAL IP LOCAL PORT GLOBAL IP GLOBAL PORT ] [group group-id] [dynamic] [ vrf <vrf-name> [match-in-vrf] ]
  4. switch(config)# interface type slot/port [ vrf <vrf-name ip nat inside | outside

DETAILED STEPS

  Command or Action Purpose

Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# [no] ip nat inside | outside source list ACL_NAME [interface INTERFACE NAME overload ][pool POOL NAME overload ] [group group-id] [dynamic] [ vrf <vrf-name> [match-in-vrf] ]

Creates or deletes dynamic NAT with VRF specific.

The group keyword determines the group to which a translation belongs.

Step 3

switch(config)# [no] ip nat inside | outside source static LOCAL IP GLOBAL IP | [tcp | udp LOCAL IP LOCAL PORT GLOBAL IP GLOBAL PORT ] [group group-id] [dynamic] [ vrf <vrf-name> [match-in-vrf] ]

Creates or deletes a VRF specific static NAT.

The group keyword determines the group to which a translation belongs.

Step 4

switch(config)# interface type slot/port [ vrf <vrf-name ip nat inside | outside

Enables NAT on a VRF-aware interface.

See the output of show run nat command.

#show run nat
….
feature nat
ip nat inside source static 1.1.1.1 1.1.1.100 vrf red match-in-vrf
ip nat outside source static 2.2.2.200 2.2.2.2 vrf red match-in-vrf add-route
ip nat inside source list nat-acl-in1 pool pool-in1 vrf red match-in-vrf overload 
ip nat outside source list nat-acl-out1 pool pool-out1 vrf red match-in-vrf add-route 
interface Ethernet1/3
  ip nat outside
interface Ethernet1/5
  ip nat inside

N3548#show ip nat translation verbose
Pro Inside global      Inside local       Outside local      Outside global
any 1.1.1.1            10.1.1.2           ---                ---
    Flags:0x1  Entry-id:0  State:0x0  Group_id:0 Format(H:M:S) Time-left:0:0:-1
icmp 101.1.0.1:65351   101.0.0.1:0        102.1.0.1:231      102.1.0.1:231
    Flags:0x82  Entry-id:101  State:0x3  Group_id:0 VRF: red Format(H:M:S) Time-left:12:0:9
udp 101.1.0.1:65383    101.0.0.1:63       102.1.0.1:63       102.1.0.1:63
    Flags:0x82  Entry-id:103  State:0x3  Group_id:0 VRF: red Format(H:M:S) Time-left:12:0:9
tcp 101.1.0.1:64549    101.0.0.1:8809     102.1.0.1:9087     102.1.0.1:9087
    Flags:0x82  Entry-id:102  State:0x1  Group_id:0 VRF: red Format(H:M:S) Time-left:12:0:9
    syn:0:1:9  fin-rst:12:0:9