IPv6-Only Network with NAT64/464XLAT
Running an IPv6-only local network while maintaining IPv4 internet connectivity
Laurent Goudet · February 3, 2026 · 3 min read
IPv4 addresses are running out. ARIN exhausted its free pool in September 2015. RIPE followed in November 2019. The remaining addresses are either hoarded by large organizations or traded on a secondary market at $30-50 per address. Meanwhile, mobile carriers — facing explosive device growth — needed a path forward that didn’t depend on buying more IPv4 space.
The answer was IPv6-only networks with NAT64 as the bridge. Instead of running dual-stack (maintaining both IPv4 and IPv6 in parallel, with all the operational complexity that entails), carriers like T-Mobile, Reliance Jio, and SK Telecom went IPv6-only internally and used NAT64 to translate when talking to the IPv4 internet. The internal network simplifies dramatically: one address family, one set of firewall rules, one routing table.
But IPv6-only breaks things. Legacy apps with hardcoded IPv4 addresses, protocols that embed IPs in payloads, VPN clients that assume IPv4 — all of these fail. 464XLAT solves the last mile by adding CLAT (Customer-side translator) on the device itself. This is how it all fits together.
464XLAT Architecture
NAT64 Address Translation
The /96 prefix leaves exactly 32 bits for the IPv4 address to be embedded
DNS64: Transparent Address Synthesis
What Breaks on IPv6-Only
NAT64 with DNS64 handles the common case — apps that resolve hostnames via DNS. But several categories of traffic break on an IPv6-only network, and understanding them explains why CLAT exists.
Hardcoded IPv4 literals. Any app that connects directly to an IP address (not a hostname) bypasses DNS64 entirely. Game clients, IoT firmware, and legacy enterprise software are common offenders. CLAT intercepts these IPv4 packets at the device level and translates them to IPv6 before they hit the network.
Protocols that embed addresses in payloads. SIP (VoIP) and FTP active mode put IP addresses inside the application-layer data. A NAT64 gateway translates packet headers but not payloads, so these protocols see stale IPv4 addresses and fail. Application-level gateways (ALGs) can help, but they add complexity and often lag behind protocol updates.
VPNs and peer-to-peer. IPsec and WireGuard tunnels typically expect an IPv4 inner address. Peer-to-peer apps that exchange IP addresses out-of-band (WebRTC ICE candidates, BitTorrent) also struggle. The CLAT’s virtual IPv4 interface solves most VPN scenarios; P2P generally requires dual-stack or protocol-level IPv6 support.
Where Translation Happens
NAT64 + DNS64 (Network-side)
- Runs on the router/gateway
- Works for all IPv6-capable apps
- Requires DNS64 for transparent operation
- One translator serves entire network
- Apps using DNS work automatically
CLAT (Client-side)
- Runs on the end device
- Handles apps using hardcoded IPv4
- Creates a virtual IPv4 interface
- Uses eBPF for efficient packet rewriting
- Recently added to NetworkManager (Linux)
Practical Deployment
Home lab and small networks. Tayga and Jool are the two main open-source NAT64 implementations for Linux. Tayga is simpler (userspace, TUN-based); Jool is faster (kernel module, supports stateful and stateless modes). Pair either with a DNS64-capable resolver like BIND or Unbound, and you have a working IPv6-only network with IPv4 internet access.
Mobile carriers at scale. T-Mobile’s IPv6-only deployment covers hundreds of millions of devices. Android has included CLAT since version 4.3 (2013), and iOS uses its own implementation transparently. The network-side NAT64 runs on carrier-grade hardware with stateful tracking of millions of simultaneous translations.
Enterprise. Organizations with large IPv4 allocations face increasing costs as addresses appreciate. Migrating internal networks to IPv6-only with NAT64 at the edge eliminates the need for internal IPv4 addressing. The operational savings — one address plan, one set of ACLs, no NAT44 — often justify the migration effort within a year.
464XLAT is widely deployed by mobile carriers (T-Mobile, etc.) to conserve IPv4 addresses.
Android has supported CLAT since Android 4.3. Linux NetworkManager support landed in 2024.
Frequently Asked Questions
Why run IPv6-only instead of dual-stack?
Dual-stack doubles your operational surface: two sets of firewall rules, two address plans, two failure modes. IPv6-only with NAT64 eliminates IPv4 from the internal network entirely, simplifying management. Carriers like T-Mobile and Reliance Jio moved to IPv6-only because it also conserves scarce IPv4 addresses — ARIN exhausted its free pool in 2015, RIPE in 2019.
What breaks when you remove IPv4, and how does 464XLAT fix it?
Apps with hardcoded IPv4 literals (socket calls to 10.0.0.1), protocols that embed IP addresses in payloads (SIP, FTP active mode), and VPN clients expecting IPv4 interfaces all break on IPv6-only networks. 464XLAT solves this by running CLAT on the device, which creates a virtual IPv4 interface — legacy apps see IPv4 while the network runs pure IPv6.
How does DNS64 make NAT64 transparent to applications?
When an app queries a hostname and the target only has an A record (IPv4), DNS64 synthesizes a fake AAAA record by embedding the IPv4 address in the NAT64 prefix (64:ff9b::/96). The app connects to this synthetic IPv6 address, and the NAT64 gateway translates back to IPv4 on the wire. The app never knows IPv4 was involved.
Who uses NAT64 in production?
Mobile carriers like T-Mobile deploy NAT64/464XLAT at scale. Android has supported CLAT since Android 4.3, and Linux NetworkManager added support in 2024.
Other deep-dives
TLS vs mTLS Handshake
Comparing standard and mutual TLS authentication flows
Network SecurityTLS 1.2 vs TLS 1.3 Handshake
Comparing handshake efficiency and security improvements
CDN EngineeringThe Fastly VCL == false Trap
How using == false instead of ! in Fastly VCL compound conditions can silently break your logic
AI & IndustrySomething Big Is Happening — But It's Not What You Think
Why AI is an abstraction layer shift, not an extinction event — a practitioner's response to the viral AI essay
AI & IndustryAI Agent Orchestration at Scale — What Actually Works in Production
Patterns and hard lessons from running multi-agent systems at 80M+ user scale: routing, fallback chains, context management, and why most agent architectures fail.
Network SecurityDNSSEC: Chain of Trust from Root to This Domain
How DNSSEC builds a cryptographic chain of trust from the DNS root to this zone — with Pulumi setup and live dig verification
Network SecurityRolling Out DMARC Enforcement at Scale
A practical guide to deploying DMARC across a large platform — SPF, DKIM, and alignment fixes across AWS SES, Google Workspace, Postfix relays, and dozens of domains
Cloud SecurityYour Google Maps API Key Can Now Drain Your Bank Account
Google silently changed API key permissions so that keys meant for Maps can now call Gemini AI. Here's how to audit your GCP projects and lock down exposed keys before someone else finds them.