{{ summaryHeading }}
{{ domain }}
{{ summarySecondaryLine }}
{{ inventoryRows.length }} lookups {{ timingTotalLabel }} {{ ttlSpreadLabel }} {{ postureHeadline }}
DNS configuration report inputs
chars
Lookup Status Answer preview TTL Time
{{ row.label }}
{{ row.name }}
{{ row.status }} {{ row.preview }} {{ row.ttl }} {{ row.timeLabel }}
Check Status Notes
{{ row.label }} {{ row.status }} {{ row.note }}
Lookup Target Time % of total
{{ row.label }} {{ row.name }} {{ row.timeLabel }} {{ row.shareLabel }}
:

Domain Name System records tell the rest of the internet which servers answer for a domain, where traffic should go, and how mail or security policy should be interpreted. A zone can look healthy in a dashboard and still fail in practice because delegation is incomplete, a critical host does not resolve, or a mail policy record is missing. This report turns those checks into a readable snapshot for the domain you manage.

It is especially useful after a registrar change, DNS provider migration, CDN cutover, mail rollout, or DNSSEC change. In those moments you often need a quick answer to a simple question: does the live record set still hang together as a system, or did one small omission break the chain?

The package gathers common DNS record types, times each lookup, and then applies a conservative set of health rules around nameserver redundancy, SOA values, address reachability, mail policy, certificate authorization, and DNSSEC signals. That makes it good for first-pass review when you want something more concrete than guessing from a single dig command.

A report like this is most helpful when you already know the intended shape of the zone. If you expect a website at the apex, you care about A or AAAA answers and the absence of an apex CNAME. If the domain receives mail, you care about MX host resolution, SPF, and a DMARC policy that does more than observe.

A passing result does not mean global propagation is complete or that every recursive resolver sees the same data. This slug queries one browser-accessible resolver path and measures timing from your current network, so treat the report as a focused operational check, not as the only evidence you use for a high-risk cutover.

Everyday Use & Decision Guide:

Run the report against the zone apex when you have changed delegation, web hosting, or mail policy and want a compact before-and-after snapshot. The fastest useful first pass is simple: make sure the domain has NS records, at least one A or AAAA answer for the apex, and no apex CNAME.

  • For website incidents, trust the address layer first. If A or AAAA present fails, later policy records do not restore reachability.
  • For mail rollouts, pay close attention to MX hosts resolve (if MX present), SPF TXT present (if MX present), and DMARC policy not "none" (if DMARC present).
  • For DNSSEC changes, read DNSSEC keys present and DNSSEC validated by resolver together. A published key without a validated response is not the same as successful validation.
  • Use the timing view as a clue, not a verdict. Cached answers can look fast, and a cold resolver path can look slow even when the zone is fine.

This tool is a strong fit for quick zone hygiene and migration review. It is not a full propagation monitor or registrar debugger, so before you act on a failure, compare the exact check label with the underlying record row and decide whether the failed item is a true outage, a hardening gap, or simply a policy this domain does not use.

Technical Details:

The browser queries Cloudflare's DNS-over-HTTPS JSON endpoint for NS, SOA, A, AAAA, CNAME, MX, TXT, CAA, and DNSKEY, then performs one additional TXT lookup at _dmarc.<domain>. Each row stores the joined answer text, the first returned TTL value, the per-query duration in milliseconds, the resolver status code, and whether the resolver asserted the AD validation flag.

The health view is rule-based rather than score-based. Some rules reflect protocol meaning, such as DMARC living under the _dmarc label, SPF being carried in TXT data that starts with v=spf1, and apex CNAME records conflicting with other apex data. Others are operational heuristics chosen by the package, including the TTL and SOA timer bands used for pass and fail states.

That distinction matters when you read the output. A fail on A or AAAA present usually points to a direct reachability problem. A fail on CAA records present or DNSSEC keys present may simply mean the zone is not using that hardening layer. Timing is even more contextual: Total query time is the sum of individual browser-to-resolver lookups, so cache state and network path affect it immediately.

Rule Core:

The checker groups its logic around delegation, authority data, address reachability, mail policy, and security signals.

DNS health rules implemented by the package
Rule family Package condition What a failure usually means
Delegation presence NS records present, At least two name servers, Unique NS hostnames The zone is under-delegated or depends on weak redundancy.
Delegation reachability NS hosts resolve to A/AAAA Nameserver hostnames are published but their own addresses are missing or broken.
SOA sanity Serial matches 8 to 10 digits, refresh 900 to 86400, retry 180 to 7200, expire 604800 to 2419200, minimum 0 to 86400 The package sees unusual authority timer values, not necessarily a protocol violation.
Apex structure No CNAME at apex and A or AAAA present The zone apex cannot serve ordinary web traffic cleanly with the current data.
Address cache behavior A TTL reasonable and AAAA TTL reasonable require 60 to 86400 seconds when those records exist The package considers the cache lifetime unusually short or long for ordinary operations.
Mail delivery and policy When MX exists, MX hosts must resolve, apex TXT must include SPF, DMARC must exist, and DMARC policy must not be none Mail routing or mail policy is incomplete, or DMARC is reporting only.
Certificate control CAA records present The zone has no explicit CA authorization policy in DNS.
DNSSEC signal DNSSEC keys present and DNSSEC validated by resolver Key publication or validated resolution is missing from this resolver view.

Total query time is simply the sum of all measured lookup durations for the queried record set. It is useful for comparing one run to another through the same resolver path, but it is not authoritative server latency and it is not a guaranteed proxy for user-facing web performance.

Input validation and output semantics for the DNS configuration report
Field Accepted format Package boundary Operational note
Domain ASCII hostname with a TLD 1 to 253 characters, no trailing dot, no raw Unicode labels Enter Punycode for internationalized names and use the apex when you want SOA, MX, and delegation checks to be meaningful.
Records table Resolver answers with first TTL and query ms Empty answers display as dashes The answer text is shown as returned by the resolver, joined into a single row per record type.
Health table Boolean pass or fail by rule label MX-dependent checks are skipped when no MX exists Some failures mark hardening gaps rather than outages.

The entered domain is transmitted from your browser to Cloudflare's resolver endpoint. No separate application server or slug-specific backend is present, so the network behavior is limited to those resolver requests and the derived tables built in the page itself.

Step-by-Step Guide:

Use the report as a structured first pass after a DNS change, not as a replacement for authoritative troubleshooting.

  1. Enter the zone apex in Domain and run Generate Report. If the page returns Please enter a valid domain name such as example.com, remove any trailing dot and use ASCII or Punycode labels.
  2. Wait for DNS Report Summary to appear. That header confirms the domain queried, the number of record types returned, Total query time, and the count of discovered NS hosts.
  3. Open Records and inspect the raw rows first. Check whether NS, SOA, A, AAAA, MX, TXT, CAA, and DNSKEY look plausible for the zone you intended to publish.
  4. Move to Health and read failures against their matching rows. If NS hosts resolve to A/AAAA or MX hosts resolve (if MX present) fails, investigate those hostnames before changing broader policy records.
  5. Use Timing to compare query durations by record type. Treat large bars as a reason to retest or compare resolver paths, not as proof that the authoritative servers are slow.
  6. Open JSON when you need to hand the snapshot to another administrator or keep a change record. After each fix, rerun the same domain and confirm that the exact failing check label clears.

A useful final pass shows that the raw rows match your intended zone design and that the remaining failures, if any, are deliberate exceptions rather than surprises.

Interpreting Results:

The most important distinction is between outage signals and policy signals. Missing apex addresses, unresolved NS hosts, or broken MX targets usually point to something immediately operational. Missing CAA or DNSSEC-related signals often point to absent hardening rather than a live service outage.

  • If A or AAAA present fails, treat that as a direct reachability problem for the apex.
  • If DMARC policy not "none" (if DMARC present) fails, the domain may still receive mail, but DMARC is monitoring only and not asking receivers to quarantine or reject.
  • If A TTL reasonable or AAAA TTL reasonable fails because the value falls outside 60 to 86400 seconds, read it as a cache-behavior warning, not as malformed DNS.
  • If DNSSEC validated by resolver fails, compare it with DNSSEC keys present before concluding that DNSSEC is broken.

A clean Health table does not prove worldwide propagation or universal resolver agreement. Verify important changes from another recursive resolver or an authoritative source before declaring a migration complete.

Worked Examples:

A basic website zone

Suppose example.com returns two NS hosts, an A record with TTL 300, no apex CNAME, and no MX. Health passes NS records present, A or AAAA present, and A TTL reasonable. If CAA records present fails, the site can still work; the failure simply means the zone has not published an explicit CA authorization record.

Mail policy that is present but not enforcing

A domain publishes resolving MX hosts, an apex SPF TXT record, and a DMARC record with p=none. The mail-routing checks pass, but DMARC policy not "none" (if DMARC present) fails. That result means receivers are being asked to report, not to quarantine or reject, so the domain has visibility without enforcement.

Nameserver host problem after a migration

After a DNS provider move, the NS row shows the expected nameserver hostnames, yet NS hosts resolve to A/AAAA fails and the zone still misbehaves. That pattern usually points to missing glue or broken address records for the nameserver hosts themselves. Fix the host resolution issue first, then rerun and confirm that the delegation checks turn green.

FAQ:

Does this query my authoritative DNS servers directly?

No. The page sends DNS-over-HTTPS requests from your browser to Cloudflare's resolver endpoint, so the answers, AD flag, and timing all reflect that resolver path and its cache state.

Why does CAA fail when my TLS certificate already works?

CAA is a DNS control that lets a domain publish which certificate authorities may issue for it. A missing CAA record does not break an already working site, but the package marks it as a hardening gap because no explicit issuance policy is present.

Why do some mail checks pass automatically when there is no MX record?

The package only enforces SPF, DMARC, and MX host resolution when MX records exist. A domain that does not receive mail should not fail those mail-specific checks just because the record family is absent.

Why did a TTL or SOA timer fail even though DNS allows many values?

Because those checks are package heuristics, not protocol validity tests. DNS itself allows broader ranges than the report prefers, so a fail here means unusual operational tuning, not necessarily invalid syntax.

Why can DNSSEC keys be present while DNSSEC validated by resolver still fails?

Publishing DNSKEY records and receiving a validated answer are different states. The resolver must be able to validate the chain and return the AD flag for the package to pass that final check.

Glossary:

TTL
Cache lifetime attached to a DNS answer.
SOA
Start of authority record that carries the zone serial and timer values.
DMARC
Mail policy record that tells receivers how to handle failed authentication.
CAA
DNS record that names which certificate authorities may issue for the domain.
AD flag
Resolver signal that the DNS answer was authenticated by DNSSEC validation.