Free Connectivity Test

IPv6 Compatibility Test

Instantly test whether your device and ISP support IPv6. Detects your IPv6 address, identifies the address type (Global Unicast, ULA, Teredo, 6to4, CGNAT), tests dual-stack connectivity, checks DNS64/NAT64 translation, validates DNSSEC support, and produces an IPv6 readiness score. Works across all ISPs — Jio, Airtel, BSNL, ACT, and international providers.

Instant auto-detection Dual-stack test DNSSEC validation DNS64 / NAT64 detection IPv6 readiness score Always free
Network tool
Enable JavaScript to run lookups and interactive features on this page.

Hero, guides, and sidebar links below work without JavaScript. The interactive checker needs JavaScript enabled in your browser.

What Is the IPv6 Compatibility Test?

The IPv6 compatibility test checks eight aspects of your network's IPv6 readiness: whether you have a real globally-routable IPv6 address, whether IPv4 is still working (dual-stack), the type and quality of your IPv6 address, whether your ISP uses DNS64/NAT64 translation for backward compatibility, whether your DNS resolver validates DNSSEC, and whether DNS-over-HTTPS is in use. Together these checks produce an IPv6 readiness score that tells you how prepared your connection is for an IPv6-first internet.

IPv6 compatibility test checks connectivity, address type, dual-stack support, DNSSEC and DNS64 for full IPv6 readiness

IPv6 adoption has accelerated dramatically — as of 2024 over 45% of Google traffic uses IPv6. Testing your connection reveals what your ISP actually provides and whether your applications will work correctly on an IPv6-first network

IPv6 Address Types — What Your Result Means

Address TypeFormatWhat It MeansScore Impact
Global Unicast2000::/3Real, internet-routable IPv6 address. Your ISP has assigned you a genuine IPv6 address. Websites that are IPv6-only are directly reachable. Best possible result.+40 points
Dual-Stack GlobalIPv4 + 2000::/3Both IPv4 and IPv6 are active. The browser prefers IPv6 for AAAA-capable sites (Happy Eyeballs RFC 6555). Ideal configuration — no compatibility loss during transition.+40 points
Teredo (2001:0::/32)2001:0:*/32IPv6 over IPv4 tunnel. Windows' automatic IPv6 through NAT. Unreliable — depends on Teredo servers, poor performance, often blocked. Not a substitute for native IPv6.+10 points
6to4 (2002::/16)2002:*/16Deprecated automatic tunnel embedding IPv4 in IPv6. Unreliable relay infrastructure. Rarely seen today — indicates very old network configuration.+5 points
ULA (fc00::/7)fc00:: or fd00::Unique Local Address — IPv6 equivalent of RFC 1918 private ranges. Only works on local network, not internet-routable. Router assigns ULA but no ISP IPv6 prefix received.+5 points
Link-local only (fe80::/10)fe80::Every IPv6 device has a link-local address — this is automatically assigned and only works on the local segment. Having only link-local means no ISP IPv6 support at all.+0 points
No IPv6No IPv6 connectivity. IPv4-only connection. You are on the diminishing side of the internet — some IPv6-only services and content will be unreachable.+0 points

Indian ISP IPv6 Support — Jio, Airtel, BSNL & ACT

India has one of the world's fastest-growing IPv6 deployment rates, driven primarily by Jio's mobile network which uses IPv6-only addressing with NAT64 for backward compatibility. Here is the current state of IPv6 support across major Indian ISPs:

Reliance Jio IPv6 Native
Mobile (4G/5G): IPv6-only with DNS64/NAT64. Your IPv6 address starts with 2409: or 2404:. The CGNAT range 100.64.0.0/10 is the mapped IPv4 from NAT64. Jio 5G is full native IPv6. This tool's DNS64 test will show positive for Jio users.

JioFiber (home broadband): Dual-stack (IPv4 + IPv6). Global unicast IPv6 from 2409: prefix. Both addresses are real and routable.
Airtel Partial
Mobile: IPv6 support exists but rollout is uneven. 4G connections may get IPv6 in major cities (2404: or 2405: prefix). Many users still IPv4-only via CGNAT.

Airtel Broadband/Xstream: IPv6 available in some circles but not universally deployed. Users in metro areas more likely to have IPv6. Contact Airtel support to request IPv6 if not present.
BSNL Limited
Broadband: IPv6 officially supported but actual deployment is very limited. Most BSNL FTTH and ADSL users are IPv4-only. BSNL's backbone is IPv6-capable but last-mile delivery is often not configured.

Mobile: 4G network is theoretically IPv6-capable but penetration is low. Check this tool to see your actual status — there is wide variation by circle.
ACT Fibernet Deploying
Broadband: ACT Fibernet has been deploying IPv6 across its markets (Bengaluru, Hyderabad, Chennai, Delhi). Dual-stack support available in most ACT-covered areas. IPv6 prefix is typically 2401: or 2407:.

Status: If you are on ACT and this test shows no IPv6, contact ACT support — your CPE (router/ONT) may need a firmware update or IPv6 needs to be enabled on the account.

Checking Your ISP's IPv6 Status from the Command Line

# Linux/Mac — check your IPv6 address:
ip -6 addr show # Linux: all IPv6 addresses
ifconfig | grep inet6 # Mac: IPv6 addresses on all interfaces

# Windows — check IPv6:
ipconfig | findstr IPv6 # Show IPv6 addresses
netsh interface ipv6 show addresses # Detailed IPv6 info

# Test IPv6 connectivity:
ping6 ipv6.google.com # Linux/Mac
ping ipv6.google.com # Windows (ping resolves IPv6 if AAAA exists)
curl -6 https://ipv6.google.com # HTTP test via IPv6

# Android (Jio/Airtel) — check IPv6:
Settings → About Phone → Status → IP Address
Look for a 2409: or 2404: address = Jio native IPv6

# Check if your router has IPv6:
ping6 -I eth0 fe80::1 # Gateway link-local (Linux)
traceroute6 ipv6.google.com # IPv6 path to Google

DNS64 and NAT64 — How IPv6-Only Networks Reach IPv4 Servers

When your ISP gives you an IPv6-only connection (common on Jio 4G/5G mobile networks), you can still reach IPv4-only websites through a translation mechanism called DNS64 + NAT64:

How DNS64 + NAT64 works (Jio 4G example):

1. Your phone has only IPv6: 2409:4063:408f:1234::1
2. You visit example.com (IPv4-only, A record: 93.184.216.34)
3. Your DNS resolver (DNS64-enabled, e.g. Jio's resolver):
- Queries example.com AAAA → NXDOMAIN (no IPv6 record)
- Synthesises a fake AAAA from the A record:
64:ff9b::93.184.216.34 (NAT64 prefix + IPv4)
- Returns this synthesised AAAA to your phone
4. Your phone sends IPv6 packet to 64:ff9b::93.184.216.34
5. NAT64 gateway (at Jio's network): translates IPv6→IPv4
Strips 64:ff9b:: prefix → sends IPv4 to 93.184.216.34
6. Response comes back, NAT64 translates IPv4→IPv6
7. Your phone receives response — seamlessly

# Detect DNS64/NAT64 from command line:
dig AAAA ipv4only.arpa # Should return 64:ff9b::/96 prefixed address
dig AAAA example.com @your-resolver # Compare with dig A example.com
# If AAAA returns 64:ff9b:: + ipv4: your resolver uses DNS64

NAT64 Detection — The ipv4only.arpa Trick

RFC 7050 defines a standard way to detect NAT64: query the AAAA record for ipv4only.arpa — a domain that is intentionally IPv4-only. If your DNS resolver is DNS64-enabled, it will synthesise a AAAA response embedding the IPv4 address 192.0.0.170 (and 192.0.0.171) in the NAT64 prefix. The prefix in the response reveals your ISP's NAT64 prefix:

# Standard NAT64 detection (RFC 7050):
dig AAAA ipv4only.arpa

# On a NAT64 network (e.g. Jio 4G):
ipv4only.arpa. AAAA 64:ff9b::c000:00aa
# 64:ff9b:: is the Well-Known Prefix (WKP) from RFC 6052
# c000:00aa = 192.0.0.170 in hex (the embedded IPv4)

# Some ISPs use provider-specific NAT64 prefixes:
2409:4000:0:1::c000:00aa ← Jio's own NAT64 prefix (example)

# iOS and macOS also use this RFC to auto-configure NAT64

DNSSEC — Why DNS Security Matters for IPv6 Networks

DNSSEC (DNS Security Extensions) adds cryptographic signatures to DNS responses, preventing attackers from injecting false DNS answers (DNS cache poisoning). On IPv6 networks, DNSSEC is especially important because the extended address space makes manual verification of IP addresses more difficult — a fake AAAA record pointing your traffic to a malicious IPv6 address is much harder to spot than a fake A record.

DNSSEC StatusWhat It MeansHow to Enable
Validating ✓Your DNS resolver checks DNSSEC signatures. Tampered DNS responses are rejected — you get SERVFAIL for DNSSEC-broken domains, protecting against cache poisoning attacks.You are already protected. No action needed.
Not validating ✗Your DNS resolver does not check signatures. A compromised resolver or network can return fake AAAA records. Attackers on the same network can redirect your traffic.Switch to a DNSSEC-validating resolver: 1.1.1.1, 8.8.8.8, 9.9.9.9 (Quad9). Or configure your own Unbound resolver.
Broken validation ⚠Your resolver attempts DNSSEC validation but something in the chain is wrong — typically a misconfigured zone. You may fail to resolve legitimate DNSSEC-signed domains.Check if your resolver is correctly configured. Test individual domains at dnssec-analyzer.verisignlabs.com.
# Test DNSSEC from command line:
dig +dnssec sigfail.verteiltesysteme.net
# If DNSSEC validating: returns SERVFAIL (correctly rejects bad sig)
# If NOT validating: returns NOERROR with forged records (dangerous)

dig +dnssec isc.org | grep -E 'RRSIG|AD'
# AD flag in response = Authenticated Data = DNSSEC validated

# Switch to DNSSEC-validating resolver on Linux:
echo "nameserver 9.9.9.9" | sudo tee /etc/resolv.conf
echo "nameserver 149.112.112.112" | sudo tee -a /etc/resolv.conf

# Configure DNSSEC validation in Unbound:
server:
module-config: "validator iterator"
auto-trust-anchor-file: "/etc/unbound/root.key"

Happy Eyeballs — How Browsers Choose IPv4 vs IPv6

When a website has both A (IPv4) and AAAA (IPv6) records, modern browsers use the Happy Eyeballs algorithm (RFC 6555, updated by RFC 8305) to choose the fastest connection. Understanding this explains why you might be using IPv6 without knowing it — or why having IPv6 doesn't always mean you use it:

Happy Eyeballs v2 (RFC 8305) — simplified flow:

1. DNS resolver returns both A and AAAA records simultaneously
2. Browser initiates IPv6 connection attempt to AAAA address
3. After 50ms (if IPv6 hasn't connected), browser also starts IPv4
4. Whichever connects first — browser uses that connection
5. Preference: IPv6 gets a 50ms head start (RFC 6555 was 150ms)

# Result: if your IPv6 is working but slow (e.g. tunnel), browser
# may prefer IPv4. Only native IPv6 reliably wins Happy Eyeballs.

# Check which protocol Chrome is using:
chrome://net-internals/#dns → Shows DNS resolution results
chrome://net-internals/#sockets → Shows active connections + protocol

# Force IPv6 in curl to test:
curl -6 https://www.google.com -I # Force IPv6
curl -4 https://www.google.com -I # Force IPv4 (compare)

IPv6 vs IPv4 — Performance in Practice

MetricIPv4IPv6 (Native)IPv6 (Tunnel)
LatencyBaselineEqual or better (more direct routing)Higher (extra encapsulation hop)
NATCGNAT on most mobile, adds 1–5msNo NAT needed — end-to-endNo NAT (but encapsulation overhead)
RoutingMature, well-optimised pathsGenerally well-optimised on nativeRoutes through tunnel server
Happy EyeballsFalls back to IPv4 on IPv6 failure50ms head start, preferred by browsersOften loses to IPv4 due to latency
Header size20–60 bytes40 bytes fixed (simpler processing)40 + outer header bytes
FragmentationRouters and hosts can fragmentOnly source host fragments (faster routers)Depends on tunnel MTU

Who Needs IPv6 Testing — Real Scenarios

Web Developers
Testing whether your server and application correctly handle IPv6 client connections. Identifying whether your server returns correct AAAA records and whether CDN edge nodes have IPv6. Checking dual-stack from both protocols.
DevOps / Sysadmins
Verifying cloud infrastructure (AWS, Azure, GCP) is configured for IPv6 dual-stack. Checking that load balancers, security groups, and DNS records support both A and AAAA. Testing that databases are not accidentally exposed via IPv6.
Mobile App Developers
Apple App Store requires all apps to work correctly on IPv6-only networks (Jio 4G/5G). Apps that hardcode IPv4 addresses will fail App Store review. Testing confirms your app handles NAT64-synthesised AAAA records correctly.
Security Professionals
Verifying DNSSEC is enabled to prevent DNS hijacking on IPv6 networks. Checking that corporate firewalls correctly filter IPv6 traffic and that IPv6 tunnels don't bypass security controls.
Home Users
Checking whether their ISP provides IPv6 and whether their router correctly passes IPv6 through to devices. If using Jio 4G as home broadband, understanding CGNAT and why port forwarding doesn't work (NAT64 only).
Network Engineers
Auditing enterprise IPv6 deployment completeness. Verifying DHCPv6 and SLAAC configuration. Checking that IPv6 prefixes are correctly delegated from ISP to CPE to LAN devices. Confirming prefix length is /64 or longer.
ISP / Telecom Engineers
Validating that customer-facing IPv6 deployment is complete: correct prefix delegation, DNS64 synthesis for IPv4-only destinations, NAT64 gateway performance, and DNSSEC validation in the resolver fleet.
Students / CCNA Prep
Understanding your own network's IPv6 configuration hands-on. Seeing real-world examples of Global Unicast addresses, ULA, link-local, SLAAC-generated addresses, and how dual-stack works in practice.

Frequently Asked Questions — IPv6 Compatibility Test

Do I need IPv6? Will the internet stop working without it?

The internet won't stop working immediately, but IPv6 is increasingly important. IPv4 addresses exhausted at IANA level in 2011 and at all regional registries by 2020. New cloud services, CDNs, and modern platforms are increasingly IPv6-native. Apple has required apps to support IPv6-only networks since 2016. In practice, without IPv6 you may experience: slower connections to IPv6-preferring sites (Happy Eyeballs degrades IPv4 performance when IPv6 is preferred), inability to reach IPv6-only services, and continued CGNAT penalties (shared IPs, no port forwarding, unreliable gaming). IPv6 adoption is at ~45% of Google traffic globally and growing — having IPv6 now means better performance, direct connectivity, and future-proofing.

I'm on Jio 4G — why does this test show no public IPv4 address?

Jio 4G (and 5G) uses an IPv6-only architecture with NAT64 for backward compatibility. Your device gets a genuine IPv6 address (2409: or 2404: prefix) and a CGNAT IPv4 address in the 100.64.0.0/10 range. The CGNAT address is not a public IP — it's shared among thousands of Jio users. This means: port forwarding doesn't work (you can't host servers), your "public IPv4" is not uniquely yours (privacy and legal identification issues), but browsing and apps work fine because NAT64 translates IPv6 to IPv4 for IPv4-only sites. If you need a unique public IPv4 or port forwarding, upgrade to JioFiber home broadband which uses dual-stack (real IPv4 + IPv6).

What is SLAAC and how does it differ from DHCPv6?

SLAAC (Stateless Address Autoconfiguration, RFC 4862) allows devices to automatically generate their own IPv6 address from the network prefix advertised by the router (Router Advertisement) combined with a 64-bit Interface Identifier derived from the MAC address or generated randomly (RFC 8981 privacy extensions). No DHCP server is needed. DHCPv6 (RFC 3315) works like DHCP for IPv4 — a server assigns specific IPv6 addresses to devices, giving the network administrator more control and visibility. In practice: most home/mobile networks use SLAAC (simpler), most enterprise networks use DHCPv6 (centrally managed address assignment and logging). Some networks use "stateless DHCPv6" — SLAAC for the address + DHCPv6 only to distribute DNS server information.

Why does my IPv6 address change regularly?

IPv6 Privacy Extensions (RFC 8981, formerly RFC 4941) cause devices to generate a new, random IPv6 address every few hours or days. This prevents websites from tracking you by IPv6 address across sessions — a privacy feature that doesn't exist in IPv4 because NAT already provides some anonymity. Your device actually has multiple IPv6 addresses simultaneously: a stable address based on your MAC (or a stable random EUI-64), temporary privacy addresses that rotate, and a permanent link-local address (fe80::). Most outbound connections use the temporary privacy address. Your /64 prefix (the first 64 bits) stays the same — only the last 64 bits rotate. This is normal behaviour on iOS, Android, macOS, Windows 10/11, and modern Linux.

My router has IPv6 but my devices don't — what's wrong?
If your router has a public IPv6 address but devices on the LAN don't, the issue is usually one of: (1) Router Advertisements not being sent — the router has IPv6 but isn't configured to advertise the prefix to LAN devices via RA (Router Advertisement). Check your router's IPv6 settings and enable "RA" or "IPv6 LAN." (2) Prefix Delegation not received — your router hasn't received a /48 or /56 prefix from your ISP's DHCPv6-PD (Prefix Delegation) server. Check ISP settings and enable DHCPv6-PD on the WAN interface. (3) Firewall blocking ICMPv6 — Router Advertisements are ICMPv6 Type 134 messages. If your router or OS firewall blocks ICMPv6, RA messages won't reach devices. (4) Devices blocking RA — Windows Firewall or Android may block RAs in some configurations. Try: Windows: netsh interface ipv6 set privacy state=disabled.
What is the IPv6 prefix length and why does it matter?

The prefix length (e.g. /64, /56, /48) defines how much of your IPv6 address is the network portion assigned by your ISP vs the interface portion you control. For end devices: you always get a /64 — the first 64 bits are the network prefix, the last 64 bits are the interface ID. For routers/CPE: ISPs typically delegate /48, /56, or /64. A /48 gives you 65,536 /64 subnets to distribute across your network. A /56 gives 256 /64 subnets. A /64 gives 1 subnet — enough for a simple home network. The IPv6 standard (RFC 4291) requires that subnets always be /64 — the last 64 bits are needed for EUI-64 and SLAAC. Never subnet below /64. An ISP delegating only /64 to a home router means you can't properly subnet your LAN (technically you need /63 minimum to get two /64s). Ask your ISP for a /56 or /48 delegation.

Apple App Store requires IPv6 support — how do I test my iOS app?

Apple requires all App Store apps to function on IPv6-only networks (enforced since June 2016). The standard test method is: Connect your Mac to a Wi-Fi network. Enable "Create NAT64 Network" in Sharing → Internet Sharing (this creates a local DNS64/NAT64 test environment). Connect your iPhone to this shared Wi-Fi. Your phone gets IPv6-only addressing — the Mac's NAT64 handles IPv4 translation. Test your app normally — any IPv4 hardcoding, AF_INET socket creation, or ipv4only code will fail here. Common failure causes: hardcoded IPv4 literals (use hostnames instead), using AF_INET instead of AF_INET6 for TCP sockets, not using getaddrinfo() for DNS resolution. This tool's test gives you a real-world check of whether your actual device/ISP provides the same environment as App Store review.

Related Tools

Advertisement