NAT-PT V4-Mapped V4V6 Translation enables all IPv4 addresses from the internet to be dynamically translated into IPv6 addresses within our network using a NAT-PT IPv6 /96 prefix, without requiring manual configuration. This process will be the focus of our discussion and demonstration in this lesson.
NAT-PT V4-Mapped Fundamental
NAT-PT Translation Types
As you know, there are two types of translations in NAT-PT.
NAT-PT V6V4 Translation refers to the process of translating internal IPv6 addresses to IPv4 addresses when an IPv6 network communicates with the IPv4 internet. This translation can be implemented using three methods: static, dynamic, and PAT. These methods were discussed and demonstrated in the previous sections.
NAT-PT V4V6 Translation, on the other hand, involves translating IPv4 addresses from the IPv4 internet into IPv6 addresses within an IPv6 network. This type of translation has no limitations, since all IPv4 addresses can be easily mapped within an IPv6 /96 prefix.
In the previous section, we demonstrated how to translate IPv4 addresses into IPv6 addresses using the static method. However, this approach is not scalable when the destination is the IPv4 internet. With NAT-PT V4-Mapped V4V6 Translation, IPv4 addresses are automatically mapped to IPv6 addresses by appending the IPv4 address at the end of IPv6 NAT-PT /96 prefix. This is what we demonstrate in this lesson.
NAT-PT V4-Mapped Mechanisms and Examples
To better understand how NAT-PT V4-Mapped V4V6 translation works, let’s first review how we manually mapped an IPv4 address to the enterprise NAT-PT IPv6 prefix in the previous lessons. We mapped the IPv4 address 4.2.2.4 to the IPv6 address 2001:BEB:4:4:4:4:0402:0204, by converting the IPv4 address into hexadecimal and appending it to the NAT-PT IPv6 prefix.
This is the exact process performed by NAT-PT V4-Mapped, except it is done dynamically, meaning the IPv4 address is automatically translated to an IPv6 address in the same manner.
For example, the following IPv4 addresses are dynamically translated to IPv6 addresses using NAT-PT V4-Mapped:
NAT-PT V4-Mapped Configuration Example
1.1.1.1 → 2001:BEBE:4:4:4:0101:0101 4.2.2.4 → 2001:BEBE:4:4:4:0402:0204 8.8.8.8 → 2001:BEBE:4:4:4:0808:0808 172.16.12.15 → 2001:BEBE:4:4:4:AC10:0C0F
This is the topology we implemented in previous lessons. The IPv6 network with the prefix 2001:BEBE::/32 needs to communicate with the IPv4 Internet. Between these two networks, there is a NAT-PT device with the IPv6 prefix 2001:BEBE:4:4:4:4::/96 already configured, which is part of the enterprise’s IPv6 address range.
We have already discussed and implemented V6V4 translations using three methods: static, dynamic, and PAT. All configurations for these translations are already set up on the device, and I will not modify any of them.
########## V6V4 Translation ########## ########## V6V4 Translation ########## 1. ########## Static NAT ########## ipv6 nat v6v4 source 2001:BEBE:0:1::2 12.12.12.22 2. ########## dynamic NAT ########## ipv6 nat v6v4 pool POOL1 12.12.12.5 12.12.12.6 prefix-length 24 ! ipv6 access-list Internet_Users permit ipv6 2001:BEBE:0:1:100::/80 any ! ipv6 nat v6v4 source list Internet_Users pool POOL1 3. ########## PAT ########## ipv6 access-list Internet_Users_2 permit ipv6 2001:BEBE:0:1:200::/80 any ! ipv6 nat v6v4 source list Internet_Users_2 interface eth0/1 overload
However, for V4V6 translation, I have removed the old static translation from 4.2.2.4 to 2001:BEBE:4:4:4:4:0402:0204. This translation must now be handled dynamically using the V4-Mapped mechanism.
To observe the results of V4V6 translation, I have added two additional loopback interfaces—1.1.1.1 and 8.8.8.8—in addition to the existing 4.2.2.4.
For the configuration of NAT-PT V4V6 translation with V4-Mapped, the keyword „v4-mapped
“
is added at the end of the NAT-PT prefix. Additionally, an IPv6 access list is configured to restrict the dynamic V4V6 translation to a specific range of IPv6 addresses within the network. In this example, the access list is set to any
, allowing all IPv6 addresses to match and enabling translation to the dynamic destination in the subnet configured for NAT-PT prefix.
########## V4V6 Translation ########## ########## V4V6 Translation ########## ipv6 access-list V4MAP permit ipv6 any 2001:BEBE:4:4:4:4::/96 ! ipv6 nat prefix 2001:BEBE:4:4:4:4::/96 v4-mapped V4MAP
NAT-PT V4-Mapped Verification
To verify the operation of the NAT-PT V4-Mapped process, I initiated a ping from an IPv6 client to the IPv6 equivalents of the following Internet IPv4 addresses:
1.1.1.1 → 2001:BEBE:4:4:4:4:0101:0101
4.2.2.4 → 2001:BEBE:4:4:4:4:0402:0204
8.8.8.8 → 2001:BEBE:4:4:4:4:0808:0808
The successful ping results confirm that the dynamic V4V6 translation is functioning correctly.
IPv6-Client#ping 2001:BEBE:4:4:4:4:0101:0101 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:BEBE:4:4:4:4:101:101, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
IPv6-Client#ping 2001:BEBE:4:4:4:4:0808:0808 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:BEBE:4:4:4:4:808:808, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
IPv6-Client#ping 2001:BEBE:4:4:4:4:0402:0204 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:BEBE:4:4:4:4:402:204, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/5 ms
Using the „
s
h
ow
ipv6 translation
“ command, we can observe that for each session, a dynamic entry is generated in the translation table.
The first line of each session entry corresponds to the V6V4 translation.
The second line reflects the V4V6 translation result.
These entries provide detailed insights into the active translation process and validate proper NAT-PT operation.
NAT-PT#show ipv6 nat translations Prot IPv4 source IPv6 source IPv4 destination IPv6 destination icmp 12.12.12.22,6813 2001:BEBE:0:1::2,6813 1.1.1.1,6813 2001:BEBE:4:4:4:4:101:101,6813 icmp 12.12.12.22,8645 2001:BEBE:0:1::2,8645 1.1.1.1,8645 2001:BEBE:4:4:4:4:101:101,8645 icmp 12.12.12.22,9623 2001:BEBE:0:1::2,9623 1.1.1.1,9623 2001:BEBE:4:4:4:4:101:101,9623 icmp 12.12.12.22,8264 2001:BEBE:0:1::2,8264 4.2.2.4,8264 2001:BEBE:4:4:4:4:402:204,8264 icmp 12.12.12.22,6422 2001:BEBE:0:1::2,6422 8.8.8.8,6422 2001:BEBE:4:4:4:4:808:808,6422 --- 12.12.12.22 2001:BEBE:0:1::2 --- ---
Complete Configuration Verification
!!! NAT-PT interface Ethernet0/0 no shutdown ipv6 address 2001:BEBE:0:1::1/64 ipv6 enable ipv6 nat ! interface Ethernet0/1 no shutdown ip address 12.12.12.1 255.255.255.0 ipv6 enable ipv6 nat ! ip route 0.0.0.0 0.0.0.0 12.12.12.2 ! ipv6 nat v6v4 source 2001:BEBE:0:1::2 12.12.12.22 ! ipv6 nat v6v4 pool POOL1 12.12.12.5 12.12.12.6 prefix-length 24 ! ipv6 access-list Internet_Users permit ipv6 2001:BEBE:0:1:100::/80 any ! ipv6 nat v6v4 source list Internet_Users pool POOL1 ! ipv6 access-list Internet_Users_2 permit ipv6 2001:BEBE:0:1:200::/80 any ! ipv6 nat v6v4 source list Internet_Users_2 interface eth0/1 overload ! ipv6 access-list V4MAP permit ipv6 any 2001:BEBE:4:4:4:4::/96 ! ipv6 nat prefix 2001:BEBE:4:4:4:4::/96 v4-mapped V4MAP
!!! IPv4-Server interface Ethernet0/0 no shutdown ip address 12.12.12.2 255.255.255.0 ! interface Loopback0 ip address 4.2.2.4 255.255.255.255 ! interface Loopback1 ip address 1.1.1.1 255.255.255.255 ! interface Loopback2 ip address 8.8.8.8 255.255.255.255 ! ip route 0.0.0.0 0.0.0.0 12.12.12.1
!!! IPv6-Client interface Ethernet0/0 no shutdown ipv6 address 2001:BEBE:0:1::2/64 ipv6 address 2001:BEBE:0:1:100::2/64 ipv6 address 2001:BEBE:0:1:100::3/64 ipv6 address 2001:BEBE:0:1:100::4/64 ipv6 address 2001:BEBE:0:1:100::5/64 ipv6 address 2001:BEBE:0:1:200::2/64 ipv6 address 2001:BEBE:0:1:200::3/64 ipv6 address 2001:BEBE:0:1:200::4/64 ipv6 address 2001:BEBE:0:1:200::5/64 ! ipv6 route ::/0 2001:BEBE:0:1::1