Common IPv6 Connectivity Issues (and How Monitoring Detects Them)

IPv6 adoption is accelerating. Google reports that over 45% of connections to its services now use IPv6, and that number continues to climb year over year. Mobile carriers in the US, India, Brazil, and parts of Europe have moved to IPv6-preferred or IPv6-only networks. Yet despite this momentum, IPv6 remains the protocol that infrastructure teams forget to test, forget to configure, and forget to monitor.

The result is a category of outage that is both common and invisible: your website works perfectly over IPv4, but a meaningful percentage of your users cannot reach it at all. Your uptime dashboard shows 100%. Your customers are filing support tickets. The disconnect is not a mystery once you understand the seven most common IPv6 connectivity issues and how dual-stack monitoring catches each of them.

1. Missing or Incorrect AAAA DNS Record

The most fundamental IPv6 failure is also the simplest: the domain has no AAAA record in DNS. Without an AAAA record, DNS resolvers have nothing to return when a client requests an IPv6 address for your domain. The site is effectively invisible on the IPv6 internet.

You can check whether your domain publishes an AAAA record using the dig command:

dig AAAA example.com +short
2001:db8::1

If the response is empty, no AAAA record exists. But an empty response is not the only failure mode. Equally dangerous are:

  • Stale AAAA records pointing to an old IPv6 address after a server migration. The record resolves, but the destination no longer accepts traffic.
  • Typographical errors in the address. IPv6 addresses like 2001:0db8:85a3::8a2e:0370:7334 are long and easy to mistype. Swapping a single hexadecimal group sends traffic to a completely different host or into a black hole.
  • Private or link-local addresses such as fe80:: or fd00:: prefixes published as public records. These addresses are not routable on the public internet, so external clients will never reach them.
  • AAAA records on subdomains but not the apex. Your www.example.com may resolve to IPv6, but example.com does not, catching users who type the bare domain.

UptyBots checks DNS resolution for every monitor target on every check cycle. If the AAAA record is missing, points to an unreachable address, or suddenly changes, you receive an alert within minutes rather than discovering the problem days later through customer complaints.

2. Firewall Blocking IPv6 Traffic

This is arguably the most common operational mistake with IPv6. A server administrator configures iptables rules for IPv4 (ports 80, 443 open, everything else dropped) and assumes the job is done. But iptables only controls IPv4 traffic. IPv6 is governed by a completely separate firewall, ip6tables, which may have no rules at all or may default to blocking everything.

The commands are similar but separate:

# IPv4 firewall rules
iptables -L -n

# IPv6 firewall rules (often forgotten)
ip6tables -L -n

A related scenario occurs with cloud security groups. AWS Security Groups, for example, have separate inbound rules for IPv4 CIDR ranges and IPv6 CIDR ranges. Adding 0.0.0.0/0 to allow all IPv4 traffic does not automatically allow ::/0 for IPv6. You must add the IPv6 rule explicitly.

Symptoms of a firewall-blocked IPv6 connection

  • Connection timeout: the client sends SYN packets over IPv6 and never receives a response. The firewall silently drops the packets.
  • Connection refused: some firewall configurations actively reject packets with a TCP RST or ICMPv6 "administratively prohibited" message.
  • Intermittent failures: stateful firewalls may allow some connections through when the state table is warm but drop new ones during high-traffic periods.

With UptyBots running separate IPv4 and IPv6 checks, this pattern becomes immediately visible: your IPv4 monitor stays green while the IPv6 monitor shows timeout or connection refused. The divergence between the two protocols is the clearest signal that a firewall rule is missing.

3. SSL/TLS Certificate Not Bound to the IPv6 Socket

When a web server binds its HTTPS listener, it must be told explicitly to listen on both IPv4 and IPv6 addresses. In Nginx, for example, the correct configuration requires two listen directives:

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.com;
    ssl_certificate /etc/ssl/certs/example.com.pem;
    ssl_certificate_key /etc/ssl/private/example.com.key;
}

If the listen [::]:443 ssl; line is missing, Nginx will serve HTTPS only on IPv4. An IPv6 client connecting to port 443 will either get a connection refused (if nothing is listening) or a plain TCP connection that fails the TLS handshake (if a non-SSL service happens to be on that port).

CDN-specific SSL issues

CDNs can introduce their own SSL/IPv6 problems. Some CDN providers deploy SSL certificates to their IPv4 edge servers first and roll out to IPv6 edges later. During this window, IPv6 clients may receive an expired certificate, a certificate for the wrong domain, or no certificate at all. This is a common CDN + IPv6 failure scenario that standard monitoring misses entirely.

UptyBots's SSL monitoring checks certificate validity, expiry, and chain completeness independently for IPv4 and IPv6. If the IPv6 endpoint returns a mismatched certificate or fails the handshake, you get a specific alert identifying the protocol and the exact error.

4. MTU and Path MTU Discovery (PMTUD) Failures

In IPv4, routers can fragment oversized packets. In IPv6, they cannot. IPv6 relies entirely on Path MTU Discovery (PMTUD): the sending host sets the "Don't Fragment" bit (implicit in IPv6), and intermediate routers send back ICMPv6 "Packet Too Big" messages when a packet exceeds the link MTU.

The problem is that many firewalls and security appliances drop ICMPv6 traffic, believing it to be unnecessary or dangerous. When this happens, the sender never learns that its packets are too large. The result is a "black hole" where:

  • Small requests (DNS queries, simple HTTP GETs) work normally because they fit within the minimum IPv6 MTU of 1280 bytes.
  • Larger responses (pages with images, API responses with large payloads, file downloads) silently fail. The connection appears to hang or times out after the initial handshake succeeds.

This creates a maddening debugging experience: the site "loads" (the TLS handshake completes, the first few bytes arrive) but then stalls. Refreshing sometimes works if a smaller response is cached, reinforcing the illusion that the problem is intermittent.

How to detect MTU issues with monitoring

MTU problems manifest as intermittent timeouts or slow response times on IPv6 checks while IPv4 checks show stable, low latency. In UptyBots, you can compare the response time graphs for your IPv4 and IPv6 monitors side by side. A pattern of IPv6 checks timing out at irregular intervals, especially for endpoints that return large payloads, is a strong indicator that PMTUD is broken somewhere along the network path.

You can confirm the issue manually by forcing a specific MTU with ping6:

# Send a 1500-byte packet with Don't Fragment (default in IPv6)
ping6 -s 1452 example.com

# If this times out but smaller packets work, PMTUD is broken
ping6 -s 1200 example.com

5. DNS Caching and Propagation Delays

DNS propagation is never truly instant, but IPv6 records can propagate differently than IPv4 records. This happens for several reasons:

  • Separate TTL values. Some DNS management tools set different TTL values for A and AAAA records. If the AAAA TTL is longer, caches hold onto the old address for more time after a change.
  • Resolver behavior differences. Some DNS resolvers prioritize IPv4 lookups and may cache AAAA responses differently or refresh them on a different schedule.
  • Regional DNS infrastructure. Certain regions have fewer IPv6-capable authoritative nameservers, leading to slower propagation of AAAA record updates.

After a DNS change, you might see your IPv4 monitor pick up the new address within minutes while IPv6 continues hitting the old address for hours. This is especially dangerous during server migrations where the old IPv6 address is decommissioned.

UptyBots monitors from multiple global locations, each resolving DNS independently. This lets you see exactly which regions have picked up the new AAAA record and which are still resolving the old address. You can track propagation in real time rather than waiting and hoping.

6. Web Server and Load Balancer Misconfiguration

Most web servers and reverse proxies do not listen on IPv6 by default. Explicit configuration is required, and the syntax varies:

Nginx

# Both IPv4 and IPv6
listen 443 ssl;
listen [::]:443 ssl;

# Common mistake: only IPv4
listen 443 ssl;
# Missing: listen [::]:443 ssl;

Apache

# VirtualHost that listens on all interfaces (IPv4 + IPv6)
<VirtualHost *:443>

# Restricted to IPv4 only (excludes IPv6)
<VirtualHost 0.0.0.0:443>

# Restricted to IPv6 only
<VirtualHost [::]:443>

HAProxy

# Binds to both IPv4 and IPv6
bind :443 ssl crt /etc/ssl/certs/example.com.pem
bind :::443 ssl crt /etc/ssl/certs/example.com.pem

# Common mistake: only one bind line (IPv4)
bind :443 ssl crt /etc/ssl/certs/example.com.pem

Another subtle issue is virtual hosts that match by IP address rather than by hostname. If the virtual host configuration references the IPv4 address explicitly (e.g., <VirtualHost 192.0.2.1:443>), requests arriving on the IPv6 address may fall through to the default virtual host and return the wrong content or a 404 error.

Load balancers add another layer of complexity. Some cloud load balancers (AWS ALB, GCP Load Balancer) handle IPv6 at the load balancer level, so your backend servers only need IPv4. But if the load balancer is configured without IPv6 listeners, or if health checks only use IPv4, the IPv6 path through the load balancer may fail silently.

7. Routing and Transit Provider Issues

IPv6 routing is still less mature than IPv4 routing on the global internet. Some transit providers have incomplete IPv6 peering arrangements, resulting in traffic taking longer, less reliable paths. Issues include:

  • Asymmetric routing: IPv6 packets travel a completely different path than IPv4, sometimes through providers with less capacity or more congestion.
  • Missing peering: Two networks that peer directly for IPv4 may not peer for IPv6, forcing traffic through multiple intermediate hops.
  • BGP misconfigurations: Route leaks and hijacks happen in IPv6 just as they do in IPv4, but the IPv6 routing table is smaller and less well-monitored, making incidents harder to detect quickly.
  • Tunnel overhead: Some networks still use 6-to-4 tunnels, Teredo, or other transition mechanisms that add latency and introduce fragility.

These routing issues may only affect users in specific regions or on specific ISPs, making them very difficult to detect from a single monitoring location. UptyBots's multi-location monitoring architecture is designed to catch exactly these kinds of regional, protocol-specific failures.

8. Dual-Stack Application Bugs

Beyond infrastructure, application code itself can introduce IPv6 issues:

  • Hardcoded IPv4 addresses: Application config files that reference 127.0.0.1 instead of localhost or ::1 will fail when the application runs on an IPv6-only host.
  • IP address validation: Regular expressions or validation logic that only accepts dotted-decimal IPv4 format will reject legitimate IPv6 addresses like 2001:db8::1.
  • Logging and rate limiting: IP-based rate limiting or access controls that do not account for IPv6 address formats may behave unexpectedly, either failing to rate-limit IPv6 clients or blocking them incorrectly.
  • IP whitelisting: Firewall or application whitelists that only contain IPv4 addresses will deny access to services connecting via IPv6.

9. How UptyBots Detects Each Failure Type

Effective IPv6 monitoring requires more than a single ping. UptyBots uses protocol-specific checks to catch each failure type described above:

Issue How UptyBots detects it
Missing AAAA record DNS resolution failure on the IPv6 monitor triggers an alert
Firewall blocking IPv6 IPv6 check returns timeout/connection refused while IPv4 stays green
SSL not on IPv6 socket SSL handshake error reported specifically on the IPv6 monitor
MTU/PMTUD failure Intermittent IPv6 timeouts visible in response time history
DNS propagation delay Multi-location checks show different results across regions
Web server misconfiguration IPv6 HTTP check returns connection refused or wrong content
Routing issues Regional IPv6 failures detected by geographically distributed probes

The key principle is independent checks for each protocol. A single monitor that resolves to whichever IP version the operating system prefers will mask partial outages. By maintaining separate IPv4 and IPv6 monitors, you get a clear, unambiguous view of each protocol's health.

10. A Checklist for IPv6 Readiness

Use this checklist to verify your infrastructure supports IPv6 correctly:

  1. Confirm your domain has correct AAAA records pointing to publicly routable IPv6 addresses.
  2. Verify ip6tables (or your cloud security group) allows inbound traffic on ports 80 and 443 from ::/0.
  3. Check that your web server or load balancer explicitly listens on IPv6 addresses for both HTTP and HTTPS.
  4. Ensure SSL certificates are served on the IPv6 socket with the correct chain and hostname.
  5. Confirm that ICMPv6 is not blocked, especially "Packet Too Big" messages needed for PMTUD.
  6. Test DNS resolution of your AAAA record from multiple geographic locations.
  7. Set up separate IPv4 and IPv6 monitors in UptyBots and verify that both report as UP.
  8. Review application code for hardcoded IPv4 addresses and IPv4-only validation logic.

IPv6 connectivity issues are not rare edge cases. They affect real users on real networks right now. The difference between a business that catches these issues early and one that loses traffic silently is simply whether dual-stack monitoring is in place. If you are only monitoring IPv4 today, you are only seeing half the picture. Read more about why separate IPv4 and IPv6 monitoring matters or learn how to diagnose IPv6 failures with manual tools alongside automated checks.

See setup tutorials or get started with UptyBots monitoring today.

Ready to get started?

Start Free