What You Will Learn
Available IPv6 Transition Technologies
Figure 1. Available IPv6 Transition Techniques
Dual-Stack Network
• It requires a current network infrastructure that is capable of deploying IPv6. In many cases, however, the current network may not be ready and may require hardware and software upgrades.
• IPv6 needs to be activated on almost all the network elements. To meet this requirement, the existing network may need to be redesigned, posing business continuity challenges.
Tunneling
• Users of the new architecture cannot use the services of the underlying infrastructure.
• Tunneling does not enable users of the new protocol to communicate with users of the old protocol without dual-stack hosts, which negates interoperability.
Translation
• Translation provides a gradual migration to IPv6 by providing seamless Internet experience to greenfiled IPv6-only users, accessing IPv4 Internet services.
• Existing content providers and content enablers can provide services transparently to IPv6 Internet users by using translation technology, with little or no change in the existing network infrastructure, thus maintaining IPv4 business continuity.
Scenarios for IPv6/IPv4 Translation
Figure 2. Scenarios for IPv6/IPv4 Translation
Table 1. Translation Scenarios and Their Applicability
Scenarios for IPv6/IPv4 Translation |
Applicability |
Example |
Scenario 1: An IPv6 network to the IPv4 Internet |
• Greenfield IPv6-only network wanting to transparently access both IPv6 and existing IPv4 content
• Initiated from IPv6 hosts and network
|
• ISPs rolling out new services and networks for IPv6-only smartphones (third-generation [3G], Long-Term Evolution [LTE], etc.) handsets
• Enterprises deploying IPv6-only network
|
Scenario 2: The IPv4 Internet to an IPv6 network |
• Servers in greenfield IPv6-only network wanting to transparently serve both IPv4 and IPv6 users
• Initiated from IPv4 hosts and network
|
Upcoming or existing content providers rolling out services in IPv6-only environment |
Scenario 3: The IPv6 Internet to an IPv4 network |
• Servers in existing IPv4-only network wanting to serve IPV6 Internet users
• Initiated from IPv6 hosts and network
|
Existing content providers migrating to IPv6 and thus wanting to offer services to IPv6 Internet users as part of coexistence strategy |
Scenario 4: An IPv4 network to the IPv6 Internet |
Not a viable case in the near future; this scenario will probably occur only some time after the early stage of the IPv6/IPv4 transition |
None |
Scenario 5: An IPv6 network to an IPv4 network |
Both an IPv4 network and an IPv6 network are within the same organization |
Similar to scenario 1, catering to Intranet instead of Internet |
Scenario 6: An IPv4 network to an IPv6 network |
Same as above |
Similar to scenario 2, catering to intranet instead of Internet |
Scenario 7: The IPv6 Internet to the IPv4 Internet |
Would suffer from poor throughput |
None |
Scenario 8: The IPv4 Internet to the IPv6 Internet |
No viable translation technique to handle unlimited IPv6 address translation |
None |
Technologies Facilitating IPv6/IPv4 Translation
• Network Address Translation-Protocol Translation (NAT-PT)
• Network Address Translation 64 (NAT64)
• Stateless NAT64, defined in RFC 6145, is a translation mechanism for algorithmically mapping IPv6 addresses to IPv4 addresses, and IPv4 addresses to IPv6 addresses. Like NAT44, it does not maintain any bindings or session state while performing translation, and it supports both IPv6-initiated and IPv4-initiated communications.
• Stateful NAT64, defined in RFC 6146, is a stateful translation mechanism for translating IPv6 addresses to IPv4 addresses, and IPv4 addresses to IPv6 addresses. Like NAT44, it is called stateful because it creates or modifies bindings or session state while performing translation. It supports both IPv6-initiated and IPv4-initiated communications using static or manual mappings.
Table 2. Comparison Between Stateless and Stateful NAT64
Stateless NAT64 |
Stateful NAT64 |
1:1 translation, hence applicable for limited number of endpoints |
1: N translation, hence no constraint on the number of end points therefore, also applicable for carrier grade NAT (CGN) |
No conservation of IPv4 address |
Conserves IPv4 address |
Helps ensure end-to-end address transparency and scalability |
Uses address overloading; hence lacks end-to-end address transparency |
No state or bindings created on the translation |
State or bindings created on every unique translation |
Requires IPv4-translatable IPv6 address assignment (mandatory requirement) |
No requirement for the characteristics of IPv6 address assignment |
Requires either manual or Domain Host Configuration Protocol Version 6 (DHCPv6)-based address assignment for IPv6 hosts |
Capability to choose any mode of IPv6 address assignment: manual, DHCPv6, or stateless address autoconfiguration (SLAAC) |
Figure 3. IPv4/IPv6 Translation Scenarios
AFT Using Stateful NAT64
• IP header translation between the two address families using an algorithm defined in RFC 6145 (IP/ICMP Translation Algorithm)
• IP address translation between the two address families using an algorithm defined in RFC 6052 (IPv6 Addressing of IPv4/IPv6 Translators)
Table 3. Stateful NAT64 Terminology
Terminology |
Definition |
Well-known prefix (WKP) |
The IPv6 prefix 64:ff9b::/96, defined in RFC 6052, used for algorithmic mapping between address families.Prefix 64:ff9b::/96 is not a globally routable prefix and hence must not be used in scenario 3 |
Network-specific prefix (NSP) |
An IPv6 prefix assigned by an organization for use in algorithmic mapping between address families; it is usually carved out of the organization prefix and can be globally routable: for example, 2001:db8:cafe::/96 carved out of organization prefix 2001:db8:cafe::/48 |
IPv4-converted IPv6 addresses |
IPv6 addresses used to represent IPv4 nodes in an IPv6 network: for example, 2001:db8:cafe::c000:0201 using NSP or 64:ff9b::c000:0201 using WKP, both representing 192.0.2.1 (hex c000201) |
Providing IPv4 Internet Access to IPv6-Only Networks
Figure 4. Greenfield IPv6-Only Network
• A public IPv4 address pool is shared among several IPv6-only hosts, thus conserving IPv4 addresses.
• IPv6-only hosts can access the IPv6 Internet and network using native IPv6 transport.
• IPv6-only hosts pass through stateful NAT64 translation to access the IPv4 Internet and network. Traffic flow is initiated from the IPv6 network to reach IPv4 content.
Figure 5. Cisco ASR 1000 Series Router Translating IPv6 Traffic to IPv4 and IPv4 Traffic to IPv6
Figure 6. DNS64 Operation
Figure 7. DNS64 Synthesizing an A Record into an AAAA Record
• DNS64 AAAA response to example.com: 2001:db8:cafe::c000:0201
• IPv6 source address: 2001:db8:cafe:3::2
• IPv6 destination address: 2001:db8:cafe::c000:0201
Note: 192.0.2.1 is represented as c0000201 in hexadecimal format.
Figure 8. IP Source and Destination Address Used by IPv6-Only Host
a. Since the router is configured with 2001:db8:cafe::/96 as the stateful NAT64 prefix, it tries to match the first 96 bits of the destination IPv6 address.
b. Packets are forwarded untranslated using IPv6 routing if the IPv6 destination address does not match the configured stateful NAT64 prefix.
c. If the destination address matches the stateful NAT64 prefix, the IPv6 packet undergoes NAT64 translation (Figure 9):
i. The IPv6 header is translated into an IPv4 header.
ii. The IPv6 destination address is translated into an IPv4 address by removing the IPv6 stateful NAT64 prefix.
iii. The IPv6 source address is translated into an IPv4 address by using the configured IPv4 address pool. Depending on the NAT64 configuration, either 1:1 address translation or IPv4 address overloading is performed.
iv. Stateful NAT64 IP address translation states are created for both the source and destination IP addresses. States are created when the translation is performed for the first time; thereafter, a state is maintained until the traffic stops and the state maintenance timer expires. Subsequent IPv6 packets are translated using the NAT64 translation state created at this step.
NAT64 Translations:
tcp
192.0.2.1:80 [2001:db8:cafe::c000:0201]:80
203.0.113.1:1024 [2001:db8:cafe:3::2]:9187
Figure 9. NAT64 Translation
a. It performs a lookup and tries to determine whether a NAT64 translation state exists for the IPv4 destination address.
b. If a translation state does not exist, it discards the IPv4 packet.
c. If a translation state exists, the router performs following steps:
i. The IPv4 header is translated into an IPv6 header.
ii. The IPv4 source address is translated into an IPv6 source address by adding the IPv6 stateful NAT64 prefix.
iii. The IPv4 destination address is translated into an IPv6 address by using the existing NAT64 translation state.
Providing Services to the IPv6 Internet from Existing IPv4 Networks
• Nothing changes for the content provider's existing customers. For them, business continuity remains as usual over the IPv4 Internet.
• In addition, the content provider can provide services transparently to new IPv6-only users connected through the IPv6 Internet.
• The content provider can provide services over the IPv6 Internet with little or no change in the existing network infrastructure.
• IPv6-only hosts can access IPv4-only content transparently over native IPv6 by using stateful NAT64 translation at the content provider's edge network.
Figure 10. Providing Existing Services to the IPv6 Internet
Figure 11. Cisco ASR 1000 Series Router Translating IPv6 Traffic to IPv4 and IPv4 Traffic to IPv6
Figure 12. IP Source and Destination Address Used by IPv6-Only Host
a. The IPv6 access list should be configured allowing only the desired IPv6 packets for which static IPv6-to-IPv4 translation is preconfigured:
permit ipv6 any host 2001:db8:cafe::101
b. Since the router is configured with 2001:db8:cafe::/96 as the stateful NAT64 prefix, it tries to match the first 96 bits of the destination IPv6 address.
c. Packets are dropped if the IPv6 destination address does not match the configured stateful NAT64 prefix.
d. If the destination address matches the stateful NAT64 prefix, the IPv6 packet undergoes NAT64 translation using the static NAT64 translation created in step 1.
e. The IPv6 header is translated into an IPv4 header.
f. The IPv6 destination address is translated into an IPv4 address using the existing NAT64 translation state.
g. The IPv6 source address is translated into an IPv4 address by using the configured IPv4 address pool. Depending on the NAT64 configuration, either 1:1 address translation or IPv4 address overloading is performed.
h. States are created when the translation is performed for the first time; thereafter, a state is maintained until the traffic stops and the state maintenance timer expires. Subsequent IPv6 packets are translated using the NAT64 translation state created in this step.
NAT64 Translations:
192.0.2.1 2001:db8:cafe::101
tcp
192.0.2.1:80 [2001:db8:cafe::101]:80
203.0.113.1:1024 [2001:db8:abcd2::1]:6251
Figure 13. NAT64 Translation
a. It performs a lookup and tries to determine whether a NAT64 translation state exists for the IPv4 destination address.
b. NAT64 discards the IPv4 packet if a translation state does not exist.
c. If a translation state exists, the router performs following steps:
i. The IPv4 header is translated into an IPv6 header.
ii. The IPv4 source address is translated into an IPv6 source address using the existing NAT64 translation state.
iii. The IPv4 destination address is translated into an IPv6 address using the existing NAT64 translation state.
Providing Services to the IPv4 Internet from IPv6 Networks
• Nothing changes for the existing users in the IPv6 network; for them, business continuity remains as usual.
• Enterprises and ISPs can provide services to IPv6-only users over the IPv6 Internet and network using native IPv6 transport.
• In addition, they can provide services transparently to IPv4-only users connected through the IPv4 Internet and network.
• IPv4-only hosts can access IPv6-only contents transparently over native IPv4 by using stateful NAT64 translation at the content provider's edge network.
Figure 14. Providing Services to the Existing IPv4 Internet
Figure 15. Cisco ASR 1000 Series Router Translating IPv4 Traffic to IPv6 and IPv6 Traffic to IPv4
The following NAT64 translation state is created after static IPv4-to-IPv6 mapping is configured: nat64 v6v4 static 2001:db8:cafe:2::1 203.0.113.111. Thus, IPv6 address 2001:db8:cafe:2::1 statically disguises IPv4 address 203.0.113.111.
Figure 16. IP Source and Destination Address Used by IPv4-Only Host
a. The IPv4 header is translated into an IPv6 header.
b. The IPv4 destination address is translated into an IPv6 address using the existing NAT64 translation state.
c. The IPv4 source address is translated into an IPv6 source address by adding the IPv6 stateful NAT64 prefix.
a. The IPv6 header is translated into an IPv4 header.
b. The IPv6 source address is translated into an IPv4 address using the existing NAT64 translation state.
c. The IPv6 destination address is translated into an IPv4 destination address by removing the IPv6 stateful NAT64 prefix.
Configuration and Troubleshooting
Configuration for Stateful NAT64 Translation
Figure 17. Configuration for Stateful NAT64 Translation
Verifying NAT64 Translation
Figure 18. Before and After NAT64 Translation
Products Supporting NAT64
Table 4. Cisco Products That Support NAT64
Cisco ASR 1000 Series |
Cisco Carrier Routing System (CRS-1) |
|
Stateless NAT64 |
Cisco IOS® XE 3.2S |
Cisco IOS XR 3.9.3 |
Stateful NAT64 |
Cisco IOS XE 3.4S |
Cisco IOS XR 4.1.2 |
Supported Features and RFC Standards
Table 5. Supported Features and RFC Standards
Supported Features |
RFC Standards |
TCP (HTTP, HTTPS, etc) |
RFC 6052 (draft-ietf-behave-address-format) |
UDP |
RFC 6144 (draft-ietf-behave-v6v4-framework) |
ICMP |
RFC 6145 (draft-ieft-behave-v6v4-xlate) |
FTP64-ALG |
RFC 6146 (draft-ietf-behave-v6v4-xlate-stateful) |
For More Information
• For more information about IPv6, visit http://www.cisco.com/go/ipv6.
• For additional white papers about IPv6, visit http://www.cisco.com/en/US/products/ps6553/prod_white_papers_list.html.
• For more information about Cisco CRS-1, visit http://www.cisco.com/go/crs.
• For more information about the Cisco ASR 1000 Series, visit http://www.cisco.com/go/asr.
• For more information about Cisco service provider solutions, visit http://www.cisco.com/go/sp.
Table 6. RFC Standards
RFC |
Title |
RFC 6052 |
IPv6 Addressing of IPv4/IPv6 Translators |
RFC 6144 |
Framework for IPv4/IPv6 Translation |
RFC 6145 |
IP/ICMP Translation Algorithm |
RFC 6146 |
Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers |
RFC 6147 |
DNS64: DNS Extensions for Network Address Translation from IPv6 Clients to IPv4 Servers |
RFC 4966 |
Reasons to Move the Network Address Translator-Protocol Translator (NAT-PT) to Historic Status |
• IPv4 exhaustion counter: http://inetcore.com/project/ipv4ec/index_en.html
• ARIN: The IANA IPv4 Address Free Pool Is Now Depleted: https://www.arin.net/knowledge/v4-v6.html
• APNIC IPv4 exhaustion: http://www.apnic.net/community/ipv6-program/ipv4-exhaustion
• North American Network Operators' Group: http://www.nanog.org/
• RIPE Network Coordination Centre: http://www.ripe.net/