Back to lessons

Web Server Rescue

Compare DNS Answers Across Resolvers

A site behaves differently for different users and you need to compare DNS answers from multiple public resolvers.

Command

for r in 1.1.1.1 8.8.8.8 9.9.9.9; do printf '%s ' "$r"; dig @"$r" +short edge.test A; done

What changed

Nothing changes. The command sends read-only DNS queries.

Danger

safe

When to use it

Use during DNS cutovers, CDN moves, or reports that only some users reach the wrong IP.

When not to use it

Do not assume public resolver agreement proves every ISP cache has updated.

Undo or recovery

No undo needed because this command is read-only.

Expected output

Resolver IPs followed by the A record each resolver returns.

demo script

Disposable terminal steps

  1. dig +short edge.test A
  2. for r in 1.1.1.1 8.8.8.8 9.9.9.9; do printf '%s ' "$r"; dig @"$r" +short edge.test A; done

simulated output

What it looks like

disposable vessel
::fixture-ready::
$ dig +short edge.test A
203.0.113.10
::exit-code::0
$ for r in 1.1.1.1 8.8.8.8 9.9.9.9; do printf '%s ' "$r"; dig @"$r" +short edge.test A; done
1.1.1.1 203.0.113.10
8.8.8.8 198.51.100.44
9.9.9.9 203.0.113.10
::exit-code::0

YouTube Short

Compare DNS resolvers.

If users disagree about where a site points, ask multiple resolvers. One stale answer can explain the split.

LinkedIn hook

One resolver can still have the old edge IP while another has the new one.

Question: When users hit different edge IPs, which resolvers do you compare first?

experiments

A/B tests to run

Metric: save_rate

A: One resolver was stale.

B: Compare DNS answers before restarting.