Why There Is a Transition at All
IPv4 uses 32-bit addresses, giving roughly 4.3 billion unique values. IPv6 uses 128-bit addresses, giving 340 undecillion. They are not simply different spellings of the same thing — an IPv4-only host cannot directly speak to an IPv6-only host without help. The internet cannot be switched off and rebuilt overnight, so the transition is really a set of coexistence strategies that let both protocols run simultaneously while IPv6 adoption grows.
The Main Transition Models
| Model | How It Works | Where You See It |
|---|---|---|
| Dual stack | Devices run IPv4 and IPv6 together | Home broadband, mobile networks, cloud servers |
| IPv6-only with NAT64 | Clients use IPv6 and a gateway translates to IPv4 when needed | Mobile and modern managed networks |
| 464XLAT | Adds IPv4-in-IPv6 encapsulation for apps that require IPv4 | Cellular networks with IPv6-only cores |
| Tunneling (6to4, Teredo) | One protocol is carried inside the other | Legacy transition setups, now deprecated |
| CGNAT | Many customers share public IPv4 addresses | ISPs stretching scarce IPv4 addresses |
Dual Stack: Running Both Protocols Simultaneously
Dual stack is the cleanest user experience. Your device receives both an IPv4 address and an IPv6 address. When a destination has an AAAA record, the device can use IPv6. When a destination is IPv4-only, it falls back to IPv4. Networks must run and manage two protocol stacks, which means two routing tables, two address plans, and two sets of firewall rules — but end users rarely notice the difference.
Modern operating systems implement the Happy Eyeballs algorithm (RFC 8305) to handle dual-stack connections gracefully. When a hostname resolves to both an IPv4 and an IPv6 address, the OS attempts the IPv6 connection first. If IPv6 does not respond within roughly 250 milliseconds, it starts an IPv4 connection in parallel and uses whichever completes first. This prevents broken or slow IPv6 paths from degrading user experience, which was a major complaint during early IPv6 rollouts.
NAT64 and DNS64
On IPv6-only networks, NAT64 lets clients reach IPv4-only services through a translation gateway. The gateway maintains a pool of IPv4 addresses and maps outbound IPv6 flows to IPv4 flows, then maps replies back. DNS64 completes the picture: it synthesizes IPv6 addresses for IPv4-only destinations by embedding the IPv4 address inside a well-known IPv6 prefix. The client sees an IPv6 address, connects over IPv6 to the NAT64 gateway, and the gateway handles the IPv4 side transparently.
This model is common on modern mobile networks, where the radio access and core network are IPv6-only but much of the internet still serves IPv4. Most users on mobile data are already working through NAT64/DNS64 without knowing it.
464XLAT for Cellular Networks
Some applications and operating system components are hardcoded to use IPv4 sockets. On a pure IPv6 network, NAT64 alone is not enough for those. 464XLAT solves this by adding a client-side translation component (CLAT) that presents a fake IPv4 interface to the application. The CLAT translates IPv4 packets from the app into IPv6 packets, which are then carried to the network's PLAT (the NAT64 gateway) and translated onward to IPv4. Android, iOS, and Windows all implement CLAT support, making 464XLAT the practical foundation of most carrier IPv6-only deployments.
Tunneling: 6to4 and Teredo (Now Deprecated)
Early in IPv6 deployment, two tunneling mechanisms helped connect IPv6 islands over IPv4 infrastructure. 6to4 encapsulated IPv6 packets inside IPv4 using protocol 41 and derived a tunnel address from the public IPv4 address. Teredo wrapped IPv6 in UDP so it could pass through NAT devices. Both were clever engineering, but they introduced unpredictable routing, MTU problems, and security concerns. Neither is recommended today. Operating systems have disabled or removed them by default. Native dual stack, NAT64, or 464XLAT are cleaner replacements.
Why the Transition Is Taking So Long
IPv6 was standardized in 1998. Adoption is genuinely faster than it once was — Google reports roughly 45 to 50 percent of traffic reaching its services over IPv6 — but full transition remains years away. Several factors slow it down:
- Embedded and IoT devices with firmware that will never be updated remain on IPv4-only stacks.
- Enterprise and campus networks built before IPv6 was common require significant re-addressing to convert.
- NAT habits built around IPv4 sharing are deeply embedded in network designs, training, and tooling.
- ISP reluctance to invest in IPv6 customer equipment, provisioning, and support training when IPv4 still functions.
- IPv4 address markets let organizations buy and sell IPv4 blocks, reducing the financial urgency to migrate.
IPv6 adoption varies significantly by region. Mobile-heavy markets such as India lead globally because mobile networks deployed IPv6-only cores from the start. The United States has strong adoption driven by major mobile carriers and large cloud providers. Parts of Europe, Asia-Pacific, and Latin America lag depending on ISP investment. Less than 15 percent of traffic on many sub-Saharan African networks uses IPv6.
How to Check If Your ISP Supports IPv6
The simplest method is to visit a site such as test-ipv6.com from your browser. It reports whether your connection has a working IPv6 address and whether name resolution uses IPv6 correctly. You can also check your router's WAN status page for an IPv6 address — a prefix-delegated /64 or /56 from the ISP is a good sign. On Linux and macOS, running ip -6 addr or ifconfig shows whether your interfaces have global unicast IPv6 addresses. On Windows, ipconfig /all shows IPv6 addresses on each adapter. An address starting with 2 or 3 is a global unicast address; one starting with fe80 is only a link-local address, which does not reach the public internet.
CGNAT Is Not IPv6, But It Is Part of the Story
Carrier-grade NAT lets many customers share fewer public IPv4 addresses. It helps ISPs stretch IPv4 inventory, but it can complicate port forwarding, gaming, hosting, VPNs, and remote access. In a healthy transition, IPv6 reduces the need for additional layers of IPv4 address sharing. The long-term solution to CGNAT friction is not better CGNAT — it is deploying IPv6 so devices can have unique public addresses again.
What Users Actually Notice
- Most websites work normally because major platforms support both protocols.
- Happy Eyeballs prevents broken IPv6 paths from noticeably slowing page loads.
- Some games, VPNs, cameras, and remote-access tools behave differently behind CGNAT.
- IPv6 can avoid NAT-related problems when both ends support it.
- Speed tests may choose an IPv4 or IPv6 server path depending on availability.
Frequently Asked Questions
Why has IPv6 not replaced IPv4 completely?
IPv4 remains widely used because old systems, applications, networks, and business processes still depend on it. The internet must keep working during the transition.
What is dual stack?
Dual stack means a device or network runs IPv4 and IPv6 at the same time, using whichever protocol is available and preferred for a destination.
What is NAT64?
NAT64 lets IPv6-only clients reach IPv4-only servers by translating IPv6 traffic to IPv4 at a network gateway, often with DNS64 support.