Connectivity Between IPv4 and IPv6 Hosts Using Stateless NAT 46

The Network Address Translation 46 (NAT 46) feature solves IPv4 to IPv6 connectivity by providing a mechanism for connectivity of IPv4 hosts to IPv6 internet when dual stack and IPv6 tunneling solutions cannot be used.

Feature Information for Connectivity Between IPv4 and IPv6 Hosts Using Stateless NAT 46

Table 1. Feature Information for Connectivity Between IPv4 and IPv6 Hosts Using Stateless NAT 46

Feature Name

Releases

Feature Information

Connectivity Between IPv4 and IPv6 Hosts Using Stateless NAT 46

Cisco IOS XE Gibraltar 16.10.1 Release

The Network Address Translation 46 (NAT 46) feature solves IPv4 to IPv6 connectivity by providing a mechanism for connectivity of IPv4 hosts to IPv6 internet when dual stack and IPv6 tunneling solutions cannot be used.

Note

 

NAT 46 is supported only on Cisco ISR 4000 platforms.

Restrictions for NAT 46

  • Only Domain Name System (DNS) application layer gateway (ALG) is supported.

  • Fragmented packet is not supported.

  • Maximum Transmission Unit (MTU) discovery after converting to IPv6 packets is not supported.

  • Virtual Routing and Forwarding-aware NAT 46 is not supported.

  • Both NAT44 (static, dynamic, and PAT) configuration and stateful NAT46 configurations are not supported on the same interface.

  • High-speed Logging (HSL) is not supported.

  • Several IPv4 stateful features (PBR, ZBFW, WAAS, WCCP, NBAR, and so on) do not work after converting to IPv6 packets, and are not supported.

  • High availability is not supported.

Information About NAT 46

Overview of NAT 46

The NAT46 solution solves IPv4 host to IPv6 internet connectivity. IPv4 hosts trying to reach a server, first initiate a DNS type A query packet. The NAT 46 router changes this to type AAAA query. When the query response is received, NAT 46 retrieves the IPv6 address from the response packet. An IPv4 address is allocated from the configured NAT 46 pool and an address binding is done for the retrieved IPv6 address and the allocated IPv4 address. An IPv4 address DNS response is sent to the IPv4 host. The source address of packets originating from IPv4 hosts is converted using a configured NAT 46 IPv6 prefix. The destination IPv4 address is translated to IPv6 address using pool address binding created during DNS packet flow.

Example:

Configured Prefix

IPv4 Address

IPv4-Embedded IPv6 Address

2002:0DB8::/96
192.0.2.33
2002:0DB8::C000221

Scalability on NAT 46

There is no limitation to the number of private IPv4 addresses that can be supported because no sessions are maintained. The number of IPv6 hosts that can be represented by the IPv4 pool address should be scalable up to 40,000.

NAT 46 Prefix

The NAT 46 prefix cannot be same as the interface prefix. Neighbor Discovery Neighbor/Router Solicitation messages for the addresses in the NAT 46 prefix are not answered by the NAT 46 router. Hence, NAT 46 prefix cannot be same as the interface prefix.

If a larger network (smaller prefix that is less than 96) is obtained from the service provider, the network can be subdivided into multiple smaller networks and NAT 46 prefix can be configured with a smaller network (prefix 96 bits). In addition, the NAT 46 router needs to be configured as a gateway or next hop router for the IPv6 hosts on an adjacent router of the service provider network.

Configuring Network Address Translation 46

Procedure


Step 1

enable

Example:

Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:

Device# configure terminal

Enters global configuration mode.

Step 3

interface type number

Example:

Device(config)# interface gigabitethernet 1/2/0

Configures an interface and enters interface configuration mode.

Step 4

ip address ip-address mask

Example:

Device(config-if)# ip address 209.165.201.1 255.255.255.0

Configures an IPv4 address for an interface.

Step 5

nat64 enable

Example:

Device(config-if)# nat64 enable

Enables NAT46 translation on an IPv4 interface.

Step 6

exit

Example:

Device(config-if)# exit

Exits interface configuration mode and enters global configuration mode.

Step 7

interface type number

Example:

Device(config)# interface gigabitethernet 0/0/0

Configures an interface and enters interface configuration mode.

Step 8

ipv6 enable

Example:

Device(config-if)# ipv6 enable

Enables IPv6 processing on an interface.

Step 9

ipv6 address {ipv6-address/prefix-length | prefix-name sub-bits/ prefix-lenth

Example:

Device(config-if)# ipv6 address 2001:DB8:1::1/96

Configures an IPv6 address based on an IPv6 general prefix and enables IPv6 processing on an interface.

Step 10

nat64 enable

Example:

Device(config-if)# nat64 enable

Enables NAT46 translation on an IPv6 interface.

Step 11

exit

Example:

Device(config-if)# exit

Exits interface configuration mode and enters global configuration mode.

Step 12

nat64 settings nat46 enable

Example:

Device(config)# nat64 settings nat46 enable

Enables NAT46 in the NAT64 settings.

Step 13

nat46 v6 prefix ipv6 prefix/prefix-length

Example:

Device(config)# nat46 v6 prefix 2001::/96

Configures the NAT46 IPv6 prefix.

Step 14

nat46 v4 pool pool-name pool-address-range

Example:

Device(config)# nat46 v4 nat46_pool 13.0.0.1 13.0.0.200

Configures the NAT46 pool address range.

Step 15

end

Example:

Device(config)# end

Exits global configuration mode and returns to privileged EXEC mode.


Verifying the NAT 46 Configuration

Use the show nat64 statistics command to view the NAT 46 statistics. The following is sample output of the command.

SUMMARY STEPS

  1. show nat64 statistics

DETAILED STEPS


show nat64 statistics

Example:


Router# show nat64 statistics
 
NAT64 Statistics
Total active translations: 0 (0 static, 0 dynamic; 0 extended)
Sessions found: 0
Sessions created: 0
Expired translations: 0
Global Stats:
   Packets translated (IPv4 -> IPv6)
   Stateless: 0
   Stateful: 0
   MAP-T: 0
   NAT46: 30
   Packets translated (IPv6 -> IPv4)
   Stateless: 0
   Stateful: 0
   MAP-T: 0
   NAT46: 30