Back to lessons

Web Server Rescue

Compare A and AAAA Records

A site works for some users but fails for IPv6-capable clients, so you need to compare IPv4 and IPv6 DNS.

Command

printf 'A '; dig +short edge.test A; printf 'AAAA '; dig +short edge.test AAAA

What changed

Nothing changes. The command reads DNS and compares address families.

Danger

safe

When to use it

Use when mobile networks, certain ISPs, or IPv6 clients report a different failure.

When not to use it

Do not remove IPv6 records without confirming the intended edge and provider behavior.

Undo or recovery

No undo needed because this command is read-only.

Expected output

The IPv4 and IPv6 DNS answers for the same hostname.

demo script

Disposable terminal steps

  1. printf 'A '; dig +short edge.test A; printf 'AAAA '; dig +short edge.test AAAA
  2. curl -4 -I https://edge.test && curl -6 -I https://edge.test

simulated output

What it looks like

disposable vessel
::fixture-ready::
$ printf 'A '; dig +short edge.test A; printf 'AAAA '; dig +short edge.test AAAA
A 203.0.113.10
AAAA 2001:db8:44::10
::exit-code::0
$ curl -4 -I https://edge.test && curl -6 -I https://edge.test
HTTP/2 200
server: edge-fixture
content-type: text/html

ipv6_path=connect_failed status=000
::exit-code::0

YouTube Short

Check IPv4 and IPv6.

A site can be healthy over IPv4 and broken over IPv6. Compare A and AAAA before blaming the app.

LinkedIn hook

IPv4 worked. IPv6 sent users to a different edge.

Question: How often do you check AAAA records during edge incidents?

experiments

A/B tests to run

Metric: save_rate

A: IPv6 was the broken path.

B: Compare A and AAAA first.