NAT64
IPv6 transition mechanisms |
---|
Standards Track |
Experimental |
Informational |
Drafts |
Deprecated |
NAT64 is an IPv6 transition mechanism that facilitates communication between IPv6 and IPv4 hosts by using a form of network address translation (NAT). The NAT64 gateway is a translator between IPv4 and IPv6 protocols,[1] for which function it needs at least one IPv4 address and an IPv6 network segment comprising a 32-bit address space. The "well-known prefix" reserved for this service is 64:ff9b::/96.
An IPv6 client embeds the IPv4 address it wishes to communicate with using the host part of the IPv6 network segment, resulting in an IPv4-embedded IPv6 addresses (hence the 32-bit address space in the IPv6 network segment), and sends packets to the resulting address. The NAT64 gateway creates a mapping between the IPv6 and the IPv4 addresses, which may be manually configured or determined automatically.[2]
Principle of operation
[edit]A simple NAT64 installation may consist of a gateway with two interfaces connected to an IPv4 network and an IPv6 network, respectively. Traffic from the IPv6 network is routed via the gateway which performs all the necessary translations for transferring packets between the two networks. However, the translation is not symmetric,[3] as the IPv6 address space is much larger than the IPv4 address space; thus, one-to-one address mapping is not possible. The gateway maintains IPv6-to-IPv4 address mapping, which may be established with an automatic algorithm (stateless mapping) or with special and manual translations (stateful mapping) when the first packet from the IPv6 network reaches the NAT64 gateway.
Stateless translation is appropriate when a NAT64 translator is used in front of IPv6-only servers to allow them to be reached by remote IPv4-only clients.[4] Stateful translation is suitable for deployment at the client side or at the service provider, allowing IPv6-only client hosts to reach remote IPv4-only nodes.
In general, NAT64 is designed to be used when the communication is initiated by IPv6 hosts. Some mechanisms, including static address mapping, exist to allow the inverse scenario.[5]
Not every type of resource is accessible with NAT64. Protocols that embed IPv4 literal addresses, such as SIP and SDP, FTP, WebRTC, Skype, MSN, and any other content with IPv4 literals are excluded, but a dual-stacked web proxy allows IPv6-only clients to access even web pages with IPv4 literals in URLs. However, 464XLAT, which uses NAT64, allows use of such protocols over IPv6-only connections.[6] For SIP and FTP, the problem can also be solved using an application-level gateway, or using Port Control Protocol with the PREFIX64 extension.[7]
Implementations
[edit]- Jool [8]
- OpenWrt via the jool-tools-netfilter opkg package [9]
- Tayga [10]
- MacOS via the "Create NAT64 Network" in internet sharing [11]
- Junos OS[12]
References
[edit]- ^ C. Bao; C. Huitema; M. Bagnulo; M. Boucadair; X. Li (October 2010). IPv6 Addressing of IPv4/IPv6 Translators. Internet Engineering Task Force (IETF). doi:10.17487/RFC6052. ISSN 2070-1721. RFC 6052. Proposed Standard. Updates RFC 4291.
- ^ M. Bagnulo; P. Matthews; I. van Beijnum (April 2011). Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers. Internet Engineering Task Force (IETF). doi:10.17487/RFC6146. ISSN 2070-1721. RFC 6146. Proposed Standard.
- ^ Mavrin, Alex. "NAT64 power and limitations". Blog article. Archived from the original on 8 January 2014. Retrieved 6 January 2014.
- ^ "NAT64 Address Translation".
- ^ "NAT64 Technology: Connecting IPv6 and IPv4 Networks". Cisco. Archived from the original on 2020-11-12. Retrieved 2021-01-12.
- ^ M. Mawatari; M. Kawashima; C. Byrne (April 2013). 464XLAT: Combination of Stateful and Stateless Translation. IETF. doi:10.17487/RFC6877. ISSN 2070-1721. RFC 6877. Informational.
- ^ M. Boucadair (May 2014). Discovering NAT64 IPv6 Prefixes Using the Port Control Protocol (PCP). Internet Engineering Task Force. doi:10.17487/RFC7225. RFC 7225. Proposed Standard.
- ^ "Introduction to Jool". Jool. Retrieved April 4, 2024.
- ^ "package: jool-tools-netfilter". OpenWrt wiki. Retrieved April 4, 2024.
- ^ Lutchansk, Nathan. "Tayga- Simple, no-fuss NAT64 for Linux". Retrieved April 4, 2024.
- ^ "Supporting IPv6 DNS64/NAT64 Networks". March 27, 2017. Retrieved April 4, 2024.
- ^ "Configuring Stateful NAT64 for Handling IPv4 Address Depletion". Retrieved April 4, 2024.
- ^ "Understand and Configure NAT64". Retrieved April 4, 2024.