Skip to main content

Detect IPv6 Outages Hidden by Healthy IPv4 Checks

GuideWritten by oncall.fyi editorialPublication approved by Burak YApproval recorded 12 September 2026
Sources and verification
Source dates
Oldest source check: 12 September 2026.
Technical verification
Separate technical verification has not been recorded.

Publication approval and technical verification are recorded separately. Automated link checks establish reachability, not accuracy. A checked example verifies only its stated test cases, not the whole article or your production setup.

In short

Run the same application request through IPv4 and IPv6 separately and label both results. Confirm the probing location supports the requested family and disable automatic family fallback for each test. One healthy path must not overwrite the other path’s failure. Compare DNS, connection, TLS, and content evidence before deciding whether the incident belongs to the service or the probe network.

Key takeaways

  • Automatic address-family fallback can conceal a broken IPv6 path.
  • A probe without working IPv6 cannot assess target IPv6 availability.
  • Partial availability should remain visible even when one family succeeds.

Define two independent checks

A dual-stack hostname can be reachable over IPv4 while its IPv6 firewall, route, listener, or load balancer is broken. A client that falls back successfully may show a green result while other users wait or fail. Create separate check identities such as portal-ipv4 and portal-ipv6 against the same hostname and application assertion.

First confirm the hostname is intended to publish both A and AAAA records. A service that deliberately offers only IPv4 has a different contract. Do not label missing IPv6 support an outage unless IPv6 is part of the service promise.

Force the family without changing the hostname

Run from a host with working connectivity for both families and permission to connect directly. These curl options (opens in a new tab) select each family while retaining the hostname for TLS and HTTP. Replace the example URL with your own controlled endpoint and record both command results independently.

The --noproxy '*' option excludes inherited proxy settings. Through an HTTP CONNECT proxy, -4 or -6 can select the family used to reach the proxy while the proxy independently chooses the origin connection. If a proxy is mandatory, use an approved probe location or verify its upstream family separately before claiming origin IPv4 or IPv6 coverage.

bash
curl --noproxy '*' -4 --fail --silent --show-error --connect-timeout 5 --max-time 15 \
  https://portal.example.com/health
curl --noproxy '*' -6 --fail --silent --show-error --connect-timeout 5 --max-time 15 \
  https://portal.example.com/health

Check the expected response body as well as the exit status. These commands demonstrate transport selection; they do not by themselves validate your application's full health contract.

If using blackbox exporter, inspect preferred_ip_protocol and ip_protocol_fallback in the installed configuration reference (opens in a new tab). A preference with fallback enabled is not equivalent to a forced-family test. Keep separate modules or equivalent supported configurations for the two paths.

Locate the failing stage

EvidenceLikely area to investigate
Expected AAAA record missingDNS publication or resolver view
IPv6 reference targets also failProbe location's IPv6 connectivity
Target IPv6 connection fails onlyRouting, firewall, or listener
IPv6 connects but TLS differsWrong backend, SNI, or certificate deployment
TLS succeeds but application assertion failsBackend or application behavior

An IPv6 failure from one network does not identify the failing operator automatically. Compare a second independent IPv6-capable location and collect the destination address and time window. Avoid changing firewall rules until you know which path was actually tested.

Represent partial availability honestly

Keep the family label through alert routing, dashboards, and history. Do not let the latest successful IPv4 sample resolve an IPv6 incident with the same generic key. If the service has one overall status, define how a family-specific failure is shown as degraded service and which responder owns it.

Run a controlled lab test that blocks the test endpoint's IPv6 listener while leaving IPv4 available. The IPv4 check should remain green, the IPv6 check should fail, and the combined view should retain the partial failure. Then break the probe host's IPv6 path instead and confirm it is identified as monitoring uncertainty when reference targets fail too.

Re-test after CDN, DNS, firewall, and hosting changes. An address-family check is only useful if it continues to traverse the family it claims to measure.

Did this help?

Your answer helps us improve this guide. We save only the page and your choice for 30 days.

No name, email, or incident details are requested.

Sources

Vendor facts change. Each source below shows the date this page last checked it.

  1. curl command-line reference curl. Checked 12 September 2026.
  2. Blackbox exporter probe configuration Prometheus. Checked 12 September 2026.

Related

One practical idea, occasionally

The On-Call Brief: short field notes, templates, and operational lessons.

Follow the field guide

Email subscriptions are not open yet. Read new guides in your feed reader — no email address needed.

Subscribe with RSS