Prerequisites for NAT-PT for IPv6
Before implementing the NAT-PT for IPv6 feature, you must configure IPv4 and IPv6 on device interfaces that need to communicate between IPv4-only and IPv6-only networks.
The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
NAT—PT is an IPv6-to-IPv4 translation mechanism, as defined in RFC 2765 and RFC 2766, that allows IPv6-only devices to communicate with IPv4-only devices and vice versa.
This modules describes Network Address Translation (NAT)—Protocol Translation (PT) and explains how to configure the feature.
Before implementing the NAT-PT for IPv6 feature, you must configure IPv4 and IPv6 on device interfaces that need to communicate between IPv4-only and IPv6-only networks.
Network Address Translation (NAT)-Protocol Translation (PT) is not supported with Cisco Express Forwarding.
NAT-PT supports only Domain Naming System (DNS), File Transfer Protocol (FTP), and Internet Control Message Protocol (ICMP) application-layer gateways (ALGs).
NAT-PT does not provide end-to-end security to networks. The device on which NAT-PT is configured can be a single point of failure in the network.
Bridge-group virtual interfaces (BVIs) in IPv6 are not supported with NAT-PT and wireless interfaces Dot11Radio.
Network Address Translation (NAT)-Port Translation (PT) for Cisco software based on RFC 2766 and RFC 2765 is a migration tool that helps customers transition their IPv4 networks to IPv6 networks. Using a protocol translator between IPv6 and IPv4 allows direct communication between hosts that use different network protocols. You can use static, dynamic, port address translation, IPv4-mapped definitions for NAT-PT operation.
The figure below shows that NAT-PT runs on a device that is configured between an IPv6 network and an IPv4 network that helps connect an IPv6-only node with an IPv4-only node.
NAT-PT allows direct communication between IPv6-only networks and IPv4-only networks. Dual-stack networks (networks that have IPv4 and IPv6) can have some IPv6-only hosts configured to take advantage of the IPv6 autoconfiguration, global addressing, and simpler management features, and these hosts can use NAT-PT to communicate with existing IPv4-only networks in the same organization.
One of the benefits of NAT-PT is that no changes are required to existing hosts if NAT-PT is configured, because all NAT-PT configurations are performed at the NAT-PT device. Stable IPv4 networks can introduce an IPv6 network and use NAT-PT to communicate between these networks without disrupting the network. For a seamless transition, you can use FTP between IPv4 and IPv6 hosts.
When you configure IPv6, packet fragmentation is enabled by default, to allow IPv4 and IPv6 networks to resolve fragmentation problems. Without the ability to resolve fragmentation, connectivity can be intermittent when fragmented packets are dropped or not interpreted correctly.
We do not recommend the use of NAT-PT to communicate between a dual-stack host and an IPv6-only or IPv4-only host. We do not recommend the use of NAT-PT in a scenario in which an IPv6-only network tries to communicate with another IPv6-only network via an IPv4 backbone or vice versa, because NAT-PT requires a double translation. You can use tunneling techniques for communication in these scenarios.
You can configure one the following operations for NAT-PT, but not all four.
Static NAT-PT uses static translation rules to map an IPv6 address to an IPv4 address. IPv6 network nodes communicate with IPv4 network nodes using an IPv6 mapping of the IPv4 address that is configured on the NAT-PT device.
The figure below shows how the IPv6-only node named A can communicate with the IPv4-only node named C using NAT-PT. The NAT-PT device is configured to map the source IPv6 address for node A of 2001:DB8:bbbb:1::1 to the IPv4 address 192.168.99.2. NAT-PT is also configured to map the source address of IPv4 node C, 192.168.30.1 to 2001:DB8::a. When packets with a source IPv6 address of node A are received at the NAT-PT device, these packets are translated to have a destination address that matches node C in the IPv4-only network. You can also configure NAT-PT to match a source IPv4 address and translate the packet to an IPv6 destination address to allow an IPv4-only host to communicate with an IPv6-only host.
If you have multiple IPv6-only or IPv4-only hosts, you may need to configure multiple static NAT-PT mappings. Static NAT-PT is useful when applications or servers require access to a stable IPv4 address, such as accessing an external IPv4 Domain Name System (DNS) server.
Dynamic NAT-PT allows multiple NAT-PT mappings by allocating addresses from a pool of addresses. NAT-PT is configured with a pool of IPv6 and/or IPv4 addresses. At the start of a NAT-PT session a temporary address is dynamically allocated from this pool. The number of addresses available in the address pool determines the maximum number of concurrent sessions. The NAT-PT device records each mapping between addresses in a dynamic state table.
The figure below shows how dynamic NAT-PT operates. The IPv6-only node B can communicate with the IPv4-only node D using dynamic NAT-PT. The NAT-PT device is configured with an IPv6 access list, prefix list, or route map to determine which packets are to be translated by NAT-PT. A pool of IPv4 addresses--10.21.8.1 to 10.21.8.10 in the figure -- is also configured. When an IPv6 packet to be translated is identified, NAT-PT uses the configured mapping rules and assigns a temporary IPv4 address from the configured pool of IPv4 addresses.
Dynamic NAT-PT translation operation requires at least one static mapping for the IPv4 Domain Name System (DNS) server.
After the IPv6 to IPv4 connection is established, reply packets going from IPv4 to IPv6 uses the previously established dynamic mapping to translate back from IPv4 to IPv6 and vice versa for an IPv4-only host.
Port Address Translation (PAT), also known as overload configuration, allows a single IPv4 address to be used among multiple sessions by multiplexing on the port number to associate several IPv6 users with a single IPv4 address. PAT can be accomplished through a specific interface or through a pool of addresses. The figure below shows multiple IPv6 addresses from the IPv6 network that is linked to a single IPv4 interface into the IPv4 network.
You can send traffic from your IPv6 network to an IPv4 network without configuring the IPv6 destination address mapping. A packet that arrives at an interface is checked to discover if it has a NAT-PT prefix that was configured with the ipv6 nat prefix v4-mapped command. If the prefix matches, then an access-list check is performed to discover if the source address matches the access list or prefix list. If the prefix does not match, the packet is dropped. If the prefix matches, the source address translation is performed.
If a rule is configured for the source address translation, the last 32 bits of the destination IPv6 address is used as the IPv4 destination and a flow entry is created.
With an IPv4-mapping configuration on a device, when the Domain Name System (DNS) application-level gateway (ALG) IPv4 address is converted to an IPv6 address, the IPv6 address is processed and ALGs of the DNS packets from IPv4 network is translated into the IPv6 network.
Perform this task to configure basic IPv6 to IPv4 connectivity for NAT-PT, which consists of configuring the NAT-PT prefix globally, and enable NAT-PT on an interface. For NAT-PT to be operational, NAT-PT must be enabled on both the incoming and outgoing interfaces.
An IPv6 prefix with a prefix length of 96 must be specified for NAT-PT to use. The IPv6 prefix can be a unique local unicast prefix, a subnet of your allocated IPv6 prefix, or even an extra prefix obtained from your Internet service provider (ISP). The NAT-PT prefix is used to match a destination address of an IPv6 packet. If the match is successful, NAT-PT will use the configured address mapping rules to translate the IPv6 packet to an IPv4 packet. The NAT-PT prefix can be configured globally or with different IPv6 prefixes on individual interfaces. Using a different NAT-PT prefix on several interfaces allows the NAT-PT router to support an IPv6 network with multiple exit points to IPv4 networks.
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enables privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
ipv6 nat prefix ipv6-prefix / prefix-length Example:
|
Assigns an IPv6 prefix as a global NAT-PT prefix.
|
Step 4 |
interface type number Example:
|
Specifies an interface type and number, and places the router in interface configuration mode. |
Step 5 |
ipv6 address ipv6-address {/prefix-length | link-local } Example:
|
Specifies an IPv6 address assigned to the interface and enables IPv6 processing on the interface. |
Step 6 |
ipv6 nat Example:
|
Enables NAT-PT on the interface. |
Step 7 |
exit Example:
|
Exits interface configuration mode, and returns the router to global configuration mode. |
Step 8 |
interface type number Example:
|
Specifies an interface type and number, and places the router in interface configuration mode. |
Step 9 |
ip address ip-address mask [secondary ] Example:
|
Specifies an IP address and mask assigned to the interface and enables IP processing on the interface. |
Step 10 |
ipv6 nat Example:
|
Enables NAT-PT on the interface. |
Perform this task to enable customers to send traffic from their IPv6 network to an IPv4 network without configuring IPv6 destination address mapping. This task shows the ipv6 nat prefix v4-mapped command configured on a specified interface, but the command could alternatively be configured globally:
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enables privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
interface type number Example:
|
Specifies an interface type and number, and places the router in interface configuration mode. |
Step 4 |
ipv6 nat prefix ipv6-prefix v4-mapped {access-list-name | ipv6-prefix } Example:
|
Enables customers to send traffic from their IPv6 network to an IPv4 network without configuring IPv6 destination address mapping. |
Perform this task to configure static or dynamic IPv6 to IPv4 address mappings. The dynamic address mappings include assigning a pool of IPv4 addresses and using an access list, prefix list, or route map to define which packets are to be translated.
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enables privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
Configure one of the following commands:
Example:
|
Enables a static IPv6 to IPv4 address mapping using NAT-PT. or Enables a dynamic IPv6 to IPv4 address mapping using NAT-PT. |
Step 4 |
ipv6 nat v6v4 pool name start-ipv4 end-ipv4 prefix-length prefix-length Example:
|
Specifies a pool of IPv4 addresses to be used by NAT-PT for dynamic address mapping. |
Step 5 |
ipv6 nat translation [max-entries number ] {timeout | udp-timeout | dns-timeout | tcp-timeout | finrst-timeout | icmp-timeout } {seconds | never } Example:
|
(Optional) Specifies the time after which NAT-PT translations time out. |
Step 6 |
ipv6 access-list access-list-name Example:
|
(Optional) Defines an IPv6 access list and enters IPv6 access list configuration mode.
|
Step 7 |
permit protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-address } [operator [port-number ]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address } Example:
|
(Optional) Specifies permit conditions for an IPv6 ACL. |
Step 8 |
end Example:
|
Exits IPv6 access list configuration mode, and returns to privileged EXEC mode. |
Step 9 |
show ipv6 nat translations [icmp | tcp | udp ] [verbose ] Example:
|
(Optional) Displays active NAT-PT translations.
|
Step 10 |
show ipv6 nat statistics Example:
|
(Optional) Displays NAT-PT statistics. |
Perform this optional task to configure static or dynamic IPv4 to IPv6 address mappings. The dynamic address mappings include assigning a pool of IPv6 addresses and using an access list, prefix list, or route map to define which packets are to be translated.
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enables privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
Configure one of the following commands:
Example:
|
Enables a static IPv4 to IPv6 address mapping using NAT-PT. or Enables a dynamic IPv4 to IPv6 address mapping using NAT-PT. |
Step 4 |
ipv6 nat v4v6 pool name start-ipv6 end-ipv6 prefix-length prefix-length Example:
|
Specifies a pool of IPv6 addresses to be used by NAT-PT for dynamic address mapping. |
Step 5 |
access-list {access-list-name | number } {deny | permit } [source source-wildcard ] [log ] Example:
|
Specifies an entry in a standard IPv4 access list. |
Step 6 |
end Example:
|
Exits global configuration mode and returns to privileged EXEC mode. |
Perform this task to configure Port Address Translation (PAT) for IPv6 to IPv4 address mappings. Multiple IPv6 addresses are mapped to a single IPv4 address or to a pool of IPv4 addresses. Use an access list, a prefix list, or a route map to define which packets must be translated.
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enables privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
Configure one of the following commands:
Example:
|
Enables a dynamic IPv6 to IPv4 address overload mapping using a pool address. or Enables a dynamic IPv6 to IPv4 address overload mapping using an interface address. |
Step 4 |
ipv6 nat v6v4 pool name start-ipv4 end-ipv4 prefix-length prefix-length Example:
|
Specifies a pool of IPv4 addresses to be used by NAT-PT for dynamic address mapping. |
Step 5 |
ipv6 nat translation [max-entries number ] {timeout | udp-timeout | dns-timeout | tcp-timeout | finrst-timeout | icmp-timeout } {seconds | never } Example:
|
(Optional) Specifies the time after which NAT-PT translations time out. |
Step 6 |
ipv6 access-list access-list-name Example:
|
(Optional) Defines an IPv6 access list and enters IPv6 access list configuration mode.
|
Step 7 |
permit protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-address } [operator [port-number ]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address } Example:
|
(Optional) Specifies permit conditions for an IPv6 ACL. |
Step 8 |
end Example:
|
Exits IPv6 access list configuration mode and returns to privileged EXEC mode. |
These commands are optional. Use these commands in any order.
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
enable Example:
|
Enables higher privilege levels, such as privileged EXEC mode.
|
||
Step 2 |
clear ipv6 nat translation * Example:
|
Clears dynamic Network Address Translation (NAT)-Port Translation (PT) entries from the dynamic translation state table.
|
||
Step 3 |
debug ipv6 nat [detailed | port ] Example:
|
Displays debugging messages for NAT-PT translation events. |
The following example configures the NAT-PT prefix globally, enables NAT-PT on two interfaces, and configures two static NAT-PT mappings. Ethernet interface 3/1 is configured as IPv6 only, and Ethernet interface 3/3 is configured as IPv4 only.
interface Ethernet3/1
ipv6 address 2001:DB8:3002::9/64
ipv6 enable
ipv6 nat
!
interface Ethernet3/3
ip address 192.168.30.9 255.255.255.0
ipv6 nat
!
ipv6 nat v4v6 source 192.168.30.1 2001:DB8:0::2
ipv6 nat v6v4 source 2001:DB8:bbbb:1::1 10.21.8.10
ipv6 nat prefix 2001:DB8:0::/96
The following example shows an access list that permits any IPv6 source address with the prefix 2001::/96 to enter the destination with the 2000::/96 prefix. The destination is translated to the last 32 bit of its IPv6 address; for example: source address is 2001::1 and destination address is 2000::192.168.1.1. The destination is translated to 192.168.1.1 in the IPv4 network.
interface gigabitethernet 3/1/1
ipv6 nat prefix 2000::/96 v4-mapped v4map-acl
ipv6 access-list v4map-acl
permit ipv6 2001::/96 2000::/96
The following example configures the NAT-PT prefix globally, enables NAT-PT on two interfaces, and configures one static NAT-PT mapping (used, for example, to access a DNS server). A dynamic NAT-PT mapping is also configured to map IPv6 addresses to IPv4 addresses using a pool of IPv4 addresses named v4pool. The packets to be translated by NAT-PT are filtered using an IPv6 access list named pt-list1. The User Datagram Protocol (UDP) translation entries are configured to time out after 10 minutes. Ethernet interface 3/1 is configured as IPv6 only, and Ethernet interface 3/3 is configured as IPv4 only.
interface Ethernet3/1
ipv6 address 2001:DB8:bbbb:1::9/64
ipv6 enable
ipv6 nat
!
interface Ethernet3/3
ip address 192.168.30.9 255.255.255.0
ipv6 nat
!
ipv6 nat v4v6 source 192.168.30.1 2001:DB8:0::2
ipv6 nat v6v4 source list pt-list1 pool v4pool
ipv6 nat v6v4 pool v4pool 10.21.8.1 10.21.8.10 prefix-length 24
ipv6 nat translation udp-timeout 600
ipv6 nat prefix 2001:DB8:1::/96
!
ipv6 access-list pt-list1
permit ipv6 2001:DB8:bbbb:1::/64 any
The following example configures the NAT-PT prefix globally, enables NAT-PT on two interfaces, and configures one static NAT-PT mapping (used, for example, to access a DNS server). A dynamic NAT-PT mapping is also configured to map IPv4 addresses to IPv6 addresses using a pool of IPv6 addresses named v6pool. The packets to be translated by NAT-PT are filtered using an access list named pt-list2. Ethernet interface 3/1 is configured as IPv6 only, and Ethernet interface 3/3 is configured as IPv4 only.
interface Ethernet3/1
ipv6 address 2001:DB8:bbbb:1::9/64
ipv6 enable
ipv6 nat
!
interface Ethernet3/3
ip address 192.168.30.9 255.255.255.0
ipv6 nat
!
ipv6 nat v4v6 source list 72 pool v6pool
ipv6 nat v4v6 pool v6pool 2001:DB8:0::1 2001:DB8:0::2 prefix-length 128
ipv6 nat v6v4 source 2001:DB8:bbbb:1::1 10.21.8.0
ipv6 nat prefix 2001:DB8:0::/96
!
access-list 72 permit 192.168.30.0 0.0.0.255
The following example shows how all dynamic NAT-PT translations are cleared from the dynamic translation state table using the clear ipv6 nat translation * command. After configuring the clear command, when you configure the show ipv6 nat translations command, only static translation configurations are displayed.
Device# clear ipv6 nat translation *
Device# show ipv6 nat translations
Prot IPv4 source IPv6 source
IPv4 destination IPv6 destination
--- --- ---
192.168.123.2 2001:DB8::2
--- --- ---
192.168.122.10 2001:DB8::10
--- 192.168.124.8 2001:DB8:3::8
--- ---
--- 192.168.121.4 2001:DB8:5::4
--- ---
The following sample output from the show ipv6 nat translations command displays information about active Network Address Translation (NAT)-Port Translation (PT) translations:
Device# show ipv6 nat translations
Prot IPv4 source IPv6 source
IPv4 destination IPv6 destination
--- --- ---
192.168.123.2 2001:DB8::2
--- --- ---
192.168.122.10 2001:DB8::10
tcp 192.168.124.8,11047 2001:DB8:3::8,11047
192.168.123.2,23 2001:DB8::2,23
udp 192.168.124.8,52922 2001:DB8:3::8,52922
192.168.123.2,69 2001::2,69
udp 192.168.124.8,52922 2001:DB8:3::8,52922
192.168.123.2,52922 2001:DB8::2,52922
--- 192.168.124.8 2001:DB8:3::8
192.168.123.2 2001:DB8::2
--- 192.168.124.8 2001:DB8:3::8
--- --- ---
Router# show ipv6 nat statistics
Total active translations: 4 (4 static, 0 dynamic; 0 extended)
NAT-PT interfaces:
Ethernet3/1, Ethernet3/3
Hits: 0 Misses: 0
Expired translations: 0
Related Topic |
Document Title |
---|---|
IPv6 addressing and connectivity |
IPv6 Configuration Guide |
Cisco IOS commands |
|
IPv6 commands |
|
Cisco IOS IPv6 features |
Standard/RFC |
Title |
---|---|
RFCs for IPv6 |
IPv6 RFCs |
Description |
Link |
---|---|
The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password. |
The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Feature Name |
Releases |
Feature Information |
---|---|---|
NAT-PT: Support for DNS ALG |
12.2(13)T |
IPv6 provides DNS ALG support. |
NAT-PT: Support for FTP ALG |
12.3(2)T |
IPv6 provides FTP ALG support. |
NAT-PT: Support for Fragmentation |
12.3(2)T |
Packet fragmentation is enabled by default when IPv6 is configured, allowing IPv6 and IPv4 networks to resolve fragmentation problems between the networks. |
NAT-PT: Support for Overload |
12.3(2)T |
This feature allows a single IPv4 address to be used among multiple sessions by multiplexing on the port number to associate several IPv6 users with a single IPv4 address. |