IPv6 transition mechanism: Difference between revisions

Content deleted Content added
6rd: cites
fix typo
 
(10 intermediate revisions by 3 users not shown)
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_IETF_RFC_5569_-_IPv6_Rapid_Deployment_on_IPv4_Infrastructures_6rd262571770}}</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>
Line 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,; if IPv4 literals are used the DNS64 server will never be involved.
* 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 52:
 
;Implementations
* [[Unbound (DNS server)|Unbound]] dnsDNS server via the dns64 module <ref>{{cite web|url=https://github.com/NLnetLabs/unbound/blob/master/doc/README.DNS64|title=README.DNS64|website=[[GitHub]]|access-date=2024-04-07|archive-date=2024-04-07|archive-url=https://web.archive.org/web/20240407205104/https://github.com/NLnetLabs/unbound/blob/master/doc/README.DNS64|url-status=live}}</ref>
* [[OpenWrt]] via unbound opkg packages.
 
==ISATAP==
Line 65:
464XLAT{{ref RFC|6877}} allows clients on IPv6-only networks to access IPv4-only Internet services.<ref>{{cite news|title=Video: 464XLAT Live Demo at World IPv6 Congress in Paris|date=3 April 2013|newspaper=[[Internet Society]]|url=http://www.internetsociety.org/deploy360/blog/2013/04/video-464xlat-live-demo-at-world-ipv6-congress-in-paris/|last1=Žorž|first1=Jan|access-date=5 August 2013|archive-date=13 September 2017|archive-url=https://web.archive.org/web/20170913134101/http://www.internetsociety.org/deploy360/blog/2013/04/video-464xlat-live-demo-at-world-ipv6-congress-in-paris/|url-status=live}}</ref><ref>{{cite web|title=464XLAT – A Solution for Providing IPv4 Services Over and IPv6-only Network|publisher=[[T-Mobile USA]]|access-date=5 August 2013|url=https://sites.google.com/site/tmoipv6/464xlat|archive-date=12 November 2020|archive-url=https://web.archive.org/web/20201112031924/https://sites.google.com/site/tmoipv6/464xlat|url-status=dead}}</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 client-serverclient–server model using UDP, TCP, and ICMP.
 
;Implementations
Line 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 .<ref>{{cite web |access-date=March 7, 2024 |url=https://techcommunity.microsoft.com/t5/networking-blog/windows-11-plans-to-expand-clat-support/ba-p/4078173 |title=Windows 11 Plans to Expand CLAT Support |website=[[Microsoft]] Networking Blog |archive-date=March 8, 2024 |archive-url=https://web.archive.org/web/20240308105450/https://techcommunity.microsoft.com/t5/networking-blog/windows-11-plans-to-expand-clat-support/ba-p/4078173 |url-status=live }}</ref>
* [[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 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):<ref>{{Cite web |last1=StrodlrStrodl|first1=Mary|date=Jan 12, 2025 |title=Add support for CLAT using a BPF program|url=https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2107 |access-date=February 6, 2025 |website=[[GitLab]]|url-status=live}}</ref>
* [[OpenWRT]] linux OS for routers has optional support for clat via the 464xlat package .<ref>{{cite web| title=OpenWrt Wiki package: 464xlat|url=https://openwrt.org/packages/pkgdata/464xlat|website=OpenWrt|access-date=1 April 2024}}</ref>
* [[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 94:
''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 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