Content deleted Content added
m Reverted 3 edits by 2804:1B3:6080:8FA6:4933:EFD4:C5A3:B310 (talk) to last revision by Rodw |
fix typo |
||
(19 intermediate revisions by 10 users not shown) | |||
Line 4:
An '''IPv6 transition mechanism''' is a technology that facilitates the [[IPv6 deployment|transitioning]] of the [[Internet]] from the [[Internet Protocol version 4]] (IPv4) infrastructure in use since 1983 to the successor addressing and routing system of [[IPv6|Internet Protocol Version 6]] (IPv6). As IPv4 and IPv6 networks are not directly interoperable, transition technologies are designed to permit hosts on either network type to communicate with any other host.
To meet its technical criteria, IPv6 must have a straightforward transition plan from the current IPv4.<ref name="RFC1726">{{Cite IETF |title=Technical Criteria for Choosing IP The Next Generation (IPng) |rfc=1726 |last1=Partridge |first1=C. |last2=Kastenholz |first2=F. |date=December 1994 }}</ref> The [[Internet Engineering Task Force]] (IETF) conducts working groups and discussions through the IETF [[Internet Draft]]s and [[Request for Comments]] processes to develop these transition technologies
==Stateless IP/ICMP Translation==
Line 17:
==6rd==
{{Main|IPv6 rapid deployment}}
6rd was developed by [[Rémi Després]].<ref>{{Cite IETF|rfc=5569}}</ref><ref>{{Cite web |title=IETF RFC 5569 - IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) |url=https://www.researchgate.net/publication/262571770}}</ref> It is a mechanism to facilitate rapid deployment of the IPv6 service across [[IPv4]] infrastructures of Internet service providers ([[Internet service provider|ISP]]s). It uses stateless address mappings between [[IPv4]] and [[IPv6]] addresses, and transmits [[IPv6]] packets across automatic tunnels that follow the same optimized routes between customer nodes as [[IPv4]] packets.<ref>{{Cite web |title=IPv6 Rapid Deployment |url=https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/interface/configuration/xe-16-10/ir-xe-16-10-book/ip6-6rd-tunls-xe.pdf}}</ref>
It was used for an early large deployment of an IPv6 service with native addresses during 2007 (RFC 5569<ref name=RFC5569>{{Cite IETF |title=IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) |rfc=5569 |last1=Despres |first1=R. |date=January 2010 }}</ref>). The standard-track specification of the protocol is in RFC 5969.<ref name=RFC5969>{{Cite IETF |title=IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) – Protocol Specification |rfc=5969 |last1=Troan |first1=O. |date=August 2010 }}</ref>
==Transport Relay Translation==
The address, for example, if packets are to be transmitted from an IPv6 address ({{IPaddr|fec0:0:0:1::
TRT employs a similar operation to DNS translation between AAAA and A records known as ''[[DNS
==NAT64==
{{main
[[Image:NAT64.svg|thumb|NAT64 and DNS64]]
[[NAT64]] is a mechanism to allow IPv6 hosts to communicate with IPv4 servers. The NAT64 server is the endpoint for at least one IPv4 address and an IPv6 network segment of 32-bits, e.g., {{IPaddr|64:ff9b::|96}}.{{Ref RFC|6052}} The IPv6 client embeds the IPv4 address with which it wishes to communicate using these bits, and sends its packets to the resulting address. The NAT64 server then creates a [[Network address translation|NAT]]-mapping between the IPv6 and the IPv4 address, allowing them to communicate.{{Ref RFC|6146}}
Line 38 ⟶ 37:
There are two noticeable issues with this transition mechanism:
* It only works for cases where DNS is used to find the remote host address
* Because the DNS64 server needs to return records not specified by the ___domain owner, [[DNSSEC]] validation against the [[DNSSEC#Deployment at the DNS root|root]] will fail in cases where the DNS server doing the translation is not the ___domain owner's server.
Line 53 ⟶ 52:
;Implementations
* [[Unbound (DNS server)|Unbound]]
* [[OpenWrt]] via unbound opkg packages
==ISATAP==
Line 64 ⟶ 63:
==464XLAT==
464XLAT{{ref
The client uses a SIIT translator to convert packets from IPv4 to IPv6. These are then sent to a [[NAT64]] translator which translates them from IPv6 back into IPv4 and on to an IPv4-only server. The client translator may be implemented on the client itself or on an intermediate device and is known as the CLAT (Customer-side transLATor). The NAT64 translator, or PLAT (Provider-side transLATor), must be able to reach both the server and the client (through the CLAT). The use of NAT64 limits connections to a
;Implementations
Line 74 ⟶ 73:
*[[Android (operating system)|Android]] includes a native implementation of CLAT since [[Android Jelly Bean|Jelly Bean]] 4.3, released in 2013.<ref>{{Cite web |last=Drown |first=Dan |title=What is Android CLAT? |url=https://github.com/toreanderson/clatd |access-date=January 15, 2023 |website=Dan's Notes |archive-date=December 17, 2022 |archive-url=https://web.archive.org/web/20221217201141/https://github.com/toreanderson/clatd |url-status=live }}</ref>
* [[Windows 10]] has a native WWAN-only implementation of 464XLAT for desktop and mobile since the [[Windows 10 version 1703|2017 Creators Update]].<ref>{{cite web |last1=Havey |first1=Daniel |last2=Balasubramanian |first2=Praveen |date=February 14, 2019 |title=Core Network Stack Features in the Creators Update for Windows 10 |url=https://techcommunity.microsoft.com/t5/Networking-Blog/Core-Network-Stack-Features-in-the-Creators-Update-for-Windows/ba-p/339676 |access-date=January 15, 2023 |website=[[Microsoft]] Networking Blog |archive-date=February 1, 2023 |archive-url=https://web.archive.org/web/20230201204557/https://techcommunity.microsoft.com/t5/networking-blog/core-network-stack-features-in-the-creators-update-for-windows/ba-p/339676 |url-status=live }}</ref>
* [[Windows 11]] (24H2) has the same implementation as Windows 10. A future version will extend CLAT support to other network devices (currently limited to WWAN). The implementation will use RFC 7050 (ipv4only.arpa DNS query), RFC 8781 (PREF64, and RFC 8925 (DHCP Option 108) standard
* [[macOS]] starts to have native CLAT support in Ventura, released in 2022.<ref>{{cite web |title=Twitter
|access-date=27 June 2022|url=https://twitter.com/Oskar456/status/1541509105898164225}}</ref>
Line 80 ⟶ 79:
|access-date=5 November 2018|url=https://www.ietf.org/mail-archive/web/v6ops/current/msg30153.html}}</ref> Additionally, Apple requires all apps submitted to the [[App Store (iOS)|App Store]] to work on IPv6 networks.<ref>{{cite web|last1=van Beijnum|first1=Iljitsch|title=Apple to iOS devs: IPv6-only cell service is coming soon, get your apps ready|url=https://arstechnica.com/apple/2015/06/apple-to-ios-devs-ipv6-only-cell-service-is-coming-soon-get-your-apps-ready/|website=Ars Technica|access-date=2 July 2016|date=2015-06-16|archive-date=2016-06-28|archive-url=https://web.archive.org/web/20160628114602/http://arstechnica.com/apple/2015/06/apple-to-ios-devs-ipv6-only-cell-service-is-coming-soon-get-your-apps-ready/|url-status=live}}</ref>
* clatd is a CLAT implementation for [[Linux]].<ref>{{Cite web |last1=Anderson |first1=Tore |date=May 20, 2019 |title=clatd |url=https://github.com/toreanderson/clatd |access-date=January 15, 2023 |website=[[GitHub]] |archive-date=December 17, 2022 |archive-url=https://web.archive.org/web/20221217201141/https://github.com/toreanderson/clatd |url-status=live }}</ref>
* [[Network Manager]] (WIP)
* [[OpenWRT]] linux OS for routers has optional support for clat via the 464xlat package
* [[FreeBSD]] has implemented NAT64 CLAT since Release 12.1.<ref>{{Cite web |last=Baoi |first=Danilo G. |date=June 19, 2021 |title=FreeBSD 12.1-RELEASE Release Notes |url=https://www.freebsd.org/releases/12.1R/relnotes/ |website=FreeBSD |access-date=January 15, 2023 |archive-date=January 15, 2023 |archive-url=https://web.archive.org/web/20230115224443/https://www.freebsd.org/releases/12.1R/relnotes/ |url-status=live }}</ref>
Line 93 ⟶ 92:
==V4-via-v6 routing==
''V4-via-v6'' routing<ref>{{Cite IETF|title=IPv4 routes with an IPv6 next hop|draft=draft-chroboczek-intarea-v4-via-v6-03|last1=Chroboczek|first1=Juliusz|last2=Kumari|first2=Warren|last3=Høiland-Jørgensen|first3=Toke|date=Jan 2025}}</ref> is a technique where IPv4 addresses are assigned to end hosts only while intermediate routers are only assigned IPv6 addresses. IPv4 routes are propagated as usual, and no packet translation or encapsulation is employed, but use an IPv6 next hop. V4-via-v6 reduces the amount of management required, since the core network only needs to be assigned IPv6 addresses, but still requires that the core network be able to forward IPv4 packets.
V4-via-v6 is defined for the [[Border Gateway Protocol]] (BGP)<ref>{{Cite IETF|title=Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop|rfc=5549|last1=Le Faucheur|first1=François|last2=Rosen|first2=Eric|date=May 2009}}</ref> and the [[Babel (protocol)|Babel routing protocol]].<ref>{{Cite IETF|rfc=9229|title=Pv4 Routes with an IPv6 Next Hop in the Babel Routing Protocol|last1=Chroboczek|first1=Juliusz|date=May 2022}}</ref> It has been implemented in the [[Bird Internet routing daemon]]<ref>{{Cite web |last=Rammhold |first=Andreas |date=December 15, 2020 |title=[RFC] Babel: Add v4viav6 Support |url=https://bird.network.cz/pipermail/bird-users/2020-December/015082.html |access-date=2023-01-15 |website=BIRD Internet Routing Daemon |archive-date=2022-12-29 |archive-url=https://web.archive.org/web/20221229084844/https://bird.network.cz/pipermail/bird-users/2020-December/015082.html |url-status=live }}</ref> and in [[Babel (protocol)#Implementations|''babeld'']].<ref>{{Cite web |last=Chroboczek |first=Juliusz |date=May 5, 2022 |title=[Babel-users] ANNOUNCE: babeld-1.12 |url=https://alioth-lists.debian.net/pipermail/babel-users/2022-May/003963.html |access-date=2023-01-15 |website=Debian Alioth Lists |archive-date=2022-12-29 |archive-url=https://web.archive.org/web/20221229084813/https://alioth-lists.debian.net/pipermail/babel-users/2022-May/003963.html |url-status=live }}</ref>
==MAP==
Line 126 ⟶ 125:
*[https://downloads.isc.org/isc/aftr/ Address Family Transition Router (AFTR)], a DS-Lite implementation
*[https://code.google.com/p/fabfi/wiki/niit niit] Linux Kernel device that allow transmission of IPv4 unicast traffic through an IPv6 network
*[http://www.ivi2.org/IVI/ IVI] {{Webarchive|url=https://web.archive.org/web/20150319154837/http://www.ivi2.org/IVI/ |date=2015-03-19 }} IPv4/IPv6 packet translation implementation as a Linux kernel(2.6 only) patch
*[[Microsoft Forefront Unified Access Gateway]], a reverse proxy and VPN solution that implements DNS64 and NAT64
*[[BIND]], Berkeley Internet Name Domain DNS server, implements DNS64 since version 9.8
Line 140 ⟶ 139:
==External links==
* {{Sum RFC|3089}}
* {{Sum RFC|6144}}
* {{Sum RFC|6219}}
* {{Sum RFC|6535}}
* ''IPv6 in Practice'', Benedikt Stockebrand (2006), {{ISBN|3-540-24524-3}}
*[http://cr.yp.to/djbdns/ipv6mess.html D. J. Bernstein – The IPv6 mess]
*[https://web.archive.org/web/20070901003217/http://www.join.uni-muenster.de/Dokumente/Howtos/Howto_TRT.php?lang=en Christian and Tina Strauf – Transport Relay Translator How To]
|