DNS Propagation: TTL Mechanics, Resolver Caching, and the Operator Verification Workflow (RFC 1035 + RFC 2181 + RFC 2308)

A cross-cutting operational deep dive on DNS propagation: what propagation ACTUALLY IS (resolver-cache aging, not a server-side wave that authoritative nameservers push out), the TTL mechanics defined by RFC 1035 and clarified by RFC 2181, the role of authoritative nameservers versus recursive resolvers versus stub clients in every internet name lookup, the canonical propagation timeline (TTL-bounded with a small operational overhead, with split-brain behaviour during the cache-aging window), the operator verification workflow (dig +trace from the root, multi-resolver checks against Google Public DNS / Cloudflare / Quad9, direct authoritative-nameserver queries that bypass all caches), the recommended TTLs for email-authentication records (300 seconds for DKIM keys being rotated, 3600 seconds for stable SPF and DMARC records, 86400 seconds for static BIMI and MX records), the emergency-rollback case for short TTLs, DNS provider quirks (Cloudflare proxied records carry a forced 5-minute TTL, AWS Route 53 alias records inherit target-resource TTLs, GoDaddy and Namecheap UI defaults are conservative), common misconceptions ("DNS propagation takes 24-48 hours" is folk wisdom, not protocol behaviour), troubleshooting the "DNS not propagated yet" diagnostic conclusion (wrong 95 percent of the time), and an FAQ for the questions operators ask most often when a freshly-published email-auth record does not appear to be working.

This reference is provided in English. DNS is specified in English-language RFCs (RFC 1035, RFC 2181, RFC 2308, RFC 8767) and the canonical vocabulary (authoritative nameserver, recursive resolver, TTL, negative caching, serve-stale, dig, nslookup, glue record, transparent forwarder, NXDOMAIN) does not translate. We keep the body in the source language so technical terms remain consistent with the specifications.

TL;DR

  • DNS propagation is the time for a new or updated record to become visible to recursive resolvers across the internet. It is bounded by the TTL of the record being replaced, not by any property of the new record itself.
  • There is no propagation wave. Authoritative nameservers do not push records anywhere; recursive resolvers PULL records on demand and CACHE them for the TTL declared on the authoritative answer (RFC 1035 + RFC 2181).
  • Propagation completes in approximately the previous TTL plus a small operational overhead. A 300-second TTL propagates within 5 minutes; a 3600-second TTL within 1 hour; the conservative DNS-provider default of 86400 seconds within 24 hours.
  • "DNS not propagated yet" is the wrong diagnosis 95 percent of the time. The actual cause is usually a wrong DNS label (DMARC records live at _dmarc.example.com, not example.com), a wrong DNS provider zone, a stale negative cache, or a record- syntax mistake. Dig the authoritative nameserver directly to bypass caches.
  • Email-auth TTL recommendations: 300 seconds for DKIM keys being rotated; 3600 seconds for stable SPF and DMARC records; 86400 seconds for static BIMI and MX records. Avoid the 86400-second DNS-provider default for records you actively manage.
  • Verification workflow: dig against three independent recursive resolvers (8.8.8.8 Google, 1.1.1.1 Cloudflare, 9.9.9.9 Quad9); dig +trace to confirm the authoritative answer; dig directly against the authoritative nameserver IP to bypass all recursive caches.
  • CDN-proxied records carry overridden TTLs (Cloudflare returns a 5-minute TTL on every proxied record regardless of the operator-set TTL). DMARC and DKIM TXT records are not proxied by default and respect the operator-set TTL.
  • Short TTLs enable fast emergency rollback. A 300-second TTL on a DKIM key lets a compromised key be revoked across the internet within five minutes. A 86400-second TTL leaves a 24-hour window of exposure.

1. Overview: what DNS propagation actually means

DNS propagation is the most-asked operator question when a freshly-published DMARC, SPF, DKIM, BIMI, MTA-STS, or TLS-RPT record does not appear to be working as expected. The framing of the question ("why has my record not propagated yet?") usually embeds a model of DNS that does not match the actual protocol: a sense that authoritative nameservers somehow push or distribute new records across the internet, and that propagation is a server-to-server process that takes hours or days to complete.

The actual protocol behaviour is much simpler. Authoritative nameservers (the servers operated by the domain owner or its DNS provider) hold the source-of-truth records for a zone and do not push anything to anyone. Recursive resolvers (the DNS servers operated by ISPs, public-DNS providers, and corporate networks) PULL records on demand whenever a client asks for a name they do not already have cached. The authoritative answer is stamped with a TTL (time-to-live) value that tells the recursive resolver how long the answer is valid. The recursive resolver caches the answer for the TTL duration and serves subsequent queries from cache; when the TTL expires, the next query triggers a fresh authoritative lookup.

"DNS propagation" is therefore not a server-to- server distribution wave. It is the resolver-cache-aging process by which recursive resolvers around the internet eventually re-query the authoritative nameserver and discover the new record. The maximum time for any given recursive resolver to discover the change is bounded by the TTL of the previously-cached record, not by any property of the new record itself. A resolver that has not cached any previous answer for the name sees the new record on its very first query.

This page is the cross-cutting operational reference for the help cluster on DNS propagation mechanics. For specific email-auth record syntaxes, see the pillar pages (DMARC record tags, SPF explained, DKIM explained); for live record verification against your domain, see the Domain Security Checker; for the operational rollback implications of long TTLs, see the DKIM key rotation deep dive whose canonical procedure assumes 300-second TTLs.

2. DNS propagation is not a wave — it is resolver-cache aging

The marketing-era term "DNS propagation" embeds a distribution-network mental model that is fundamentally wrong about how the DNS protocol works. Authoritative nameservers do not push, do not distribute, do not synchronize records across the internet, and do not have any notion of "neighbouring" resolvers. The authoritative server is a passive query-response engine: a recursive resolver sends a query; the authoritative server returns the current record with its current TTL; the conversation ends.

The reason a freshly-published record appears to take time to "propagate" is that recursive resolvers across the internet may have a previously-cached version of the name and refuse to re-query until the cached TTL expires. The recursive resolver makes this decision independently from every other recursive resolver in the world: each cache ages at its own pace, based on when each resolver happened to last query the authoritative server and what TTL was in effect at the time of that query.

The practical consequence is that propagation is not synchronous. A single user querying the same record from two different networks (home, mobile, corporate office) may see different cached answers at the same moment in time. This is not a bug or a delay or a propagation problem; it is the entire designed behaviour of internet DNS. The bounded-but-asynchronous propagation model is what makes DNS scale to billions of names without requiring any kind of distributed-consensus coordination protocol.

The corollary is that asking "has the record propagated yet?" without specifying "from which resolver's perspective?" is incoherent. A useful diagnostic always names the resolver being queried. The DMARC Analyzer Domain Security Checker queries an authoritative-perspective lookup so the answer reflects the current authoritative state, bypassing the recursive-cache layer.

3. TTL mechanics (RFC 1035 + RFC 2181)

The TTL (time-to-live) field on a DNS record is a 32-bit unsigned integer expressing the number of seconds a recursive resolver MAY cache the record before re-querying. The TTL is defined in RFC 1035 section 4.1.3 and clarified in RFC 2181 section 8 (which mandates that the TTL is a property of the resource record SET, not of individual records within the set).

The authoritative TTL is the upper bound on cache lifetime. A recursive resolver MAY cache for less time than the TTL declares (some resolvers impose a maximum TTL cap of 24 hours or 7 days to protect against runaway TTL values) but MUST NOT cache for longer than the TTL declares. The practical implication is that operator-set TTL values are the LONGEST time the operator must wait for a change to propagate; the actual propagation time is often shorter because some resolvers cap aggressively or had not cached the previous value at all.

The TTL applied to a recursive-resolver cache entry is the TTL the AUTHORITATIVE server returned at the time of the original query. If the operator changes the TTL from 86400 to 300, that change itself is subject to the existing cached record: resolvers that cached the 86400-TTL value before the change still cache until the 86400 expires; only after they re-query do they observe the new 300-second TTL. This is the structural reason DKIM key rotation procedures lower the TTL well in advance of the actual rotation: the TTL-reduction must propagate BEFORE the key rotation can take advantage of the shorter TTL.

Negative caching (caching of "name does not exist" responses) is governed by the SOA record's MINIMUM field per RFC 2308. A DNS query for a name that does not yet exist returns a negative-cache entry that the resolver holds for the SOA MINIMUM duration. This is why a brand-new record can appear to "not propagate" even though no previous version existed: resolvers may be serving a cached NXDOMAIN response from an earlier query against the same name. The SOA MINIMUM should be set low (300 to 3600 seconds) for any zone where new records are added frequently.

4. Authoritative nameservers vs recursive resolvers vs stub clients

Internet DNS has three operational roles that interact during every name lookup:

  • Authoritative nameservers hold the source-of-truth records for one or more zones. The domain owner (or its DNS provider) operates the authoritative servers and defines what records exist and what TTL each record carries. Examples: AWS Route 53, Cloudflare DNS, Google Cloud DNS, NS1, AzureDNS, self-hosted BIND. The authoritative servers are listed in the NS records of the parent zone (the registry's nameservers for example.com publish NS records delegating to the operator's authoritative servers).
  • Recursive resolvers operate the cache layer between authoritative servers and end-user clients. ISPs operate recursive resolvers for their subscribers; public-DNS providers operate them for the world (Google Public DNS at 8.8.8.8, Cloudflare at 1.1.1.1, Quad9 at 9.9.9.9, OpenDNS at 208.67.222.222, AdGuard at 94.140.14.14). Corporate networks often run internal recursive resolvers for their employees. The recursive resolver follows the delegation chain from the root down to the authoritative nameserver for the requested name, caches the result for the declared TTL, and returns the answer to the client.
  • Stub clients are the operating system or application code on end-user devices that needs name resolution. The stub configures one or more recursive-resolver IPs in /etc/resolv.conf (Linux), DHCP-supplied DNS settings (Windows), or OS-managed defaults (macOS, iOS, Android, Chrome OS). The stub sends queries to its configured recursive resolver and accepts whatever the resolver returns. The stub does not perform recursion itself and does not contact authoritative servers directly.

Some clients introduce additional layers: DNS-over-HTTPS (DoH) and DNS-over-TLS (DoT) encrypt the stub-to-resolver path, but do not change the underlying caching model. Web browsers increasingly use DoH to a browser-selected resolver (Chrome and Firefox default to using DoH to Cloudflare or NextDNS) which can BYPASS the OS-configured resolver entirely; this is why "I set my DNS to my router" may not affect what DNS the browser actually uses. Application-layer DNS (browser-built-in DoH) is invisible to OS-level cache-flushing.

5. The actual propagation timeline

For a record being CHANGED from an existing value to a new value, the propagation timeline is:

  1. T=0: operator publishes the new record at the authoritative server. The new record is immediately visible to any recursive resolver that queries the authoritative server starting now.
  2. T=0 to T=<old TTL>: split-brain period. Recursive resolvers that had cached the OLD record before T=0 continue to serve the old record until their cache entries expire. Recursive resolvers that either never cached the old record or that cached it long enough ago that their cache has already expired return the NEW record on their first query. The two populations of resolvers serve different answers simultaneously.
  3. T=<old TTL>: all caches have expired. All recursive resolvers that previously cached the old record now re-query the authoritative server on their next client request and pick up the new record. Propagation is effectively complete across all cache-respecting resolvers.
  4. T=<old TTL> + epsilon: operational complete. The small epsilon accounts for clock skew between resolvers, the round-trip time for the authoritative query, and any resolvers using non-conforming cache extension behaviour (RFC 8767 serve-stale, used by Cloudflare and some others, can serve a stale answer beyond the TTL if the authoritative server is unreachable — usually irrelevant for propagation timing).

For a record being NEWLY ADDED (no previous record at the name), the propagation timeline is bounded by the SOA MINIMUM (negative-cache TTL, typically 300 to 3600 seconds on well-managed zones, up to 86400 on conservatively configured zones). Resolvers that had cached an NXDOMAIN response for the name continue to serve NXDOMAIN until the negative cache expires; resolvers that never cached an NXDOMAIN see the new record immediately.

For a record being DELETED (no replacement), propagation completes within the old record's TTL. Resolvers that had cached the old record serve it until expiry; on re-query they receive NXDOMAIN and cache that response for the SOA MINIMUM.

6. The operator verification workflow

To verify a record's propagation state across the internet, use the following workflow:

  1. Confirm the authoritative state. Query the authoritative nameserver directly to confirm the record exists at the right name with the right value. Find the authoritative servers via dig +short NS example.com, then query directly: dig @ns1.dnsprovider.com _dmarc.example.com TXT. This bypasses all recursive-resolver caches and confirms the source of truth.
  2. Confirm public-DNS visibility. Query against the three major public recursive resolvers to confirm the record is visible from the perspective of the most- used internet caching infrastructure: dig @8.8.8.8 _dmarc.example.com TXT (Google Public DNS), dig @1.1.1.1 _dmarc.example.com TXT (Cloudflare), dig @9.9.9.9 _dmarc.example.com TXT (Quad9). If all three return the new record, propagation is effectively complete across the largest cache footprint.
  3. Confirm the delegation chain. Run dig +trace _dmarc.example.com TXT to follow the delegation from the root servers (a.root-servers.net etc.) through the TLD nameservers (a.gtld-servers.net for .com) to the authoritative servers for the zone. Confirm each step returns the expected NS records and that the final answer comes from the authoritative server, not from a recursive cache.
  4. Confirm the answer TTL. Inspect the TTL field in the dig output: dig _dmarc.example.com TXT | grep -A1 ANSWER. The TTL field shows the REMAINING cache lifetime, not the original TTL: a 3600-second TTL queried 1000 seconds ago will show 2600 seconds remaining. If the TTL is decreasing on successive queries, the answer is being served from a cache that has not yet expired.
  5. Flush local caches if needed. On Windows: ipconfig /flushdns. On macOS: sudo killall -HUP mDNSResponder. On Linux with systemd-resolved: sudo resolvectl flush-caches. Flushing only affects the local stub/cache layer and does NOT propagate to ISP or public-DNS recursive resolvers.

The DMARC Analyzer Domain Security Checker performs the equivalent multi-resolver lookup for SPF, DKIM, DMARC, BIMI, MTA-STS, and TLS-RPT records and reports both the authoritative-perspective state and the public- resolver-cache state in a single view, sparing the operator the manual dig invocations.

7. Recommended TTLs for email-authentication records

Different email-authentication record types have different operational change frequencies and therefore different recommended TTLs:

  • DKIM public-key records: 300 seconds (5 minutes). DKIM keys are rotated periodically (monthly, quarterly, or in response to compromise) and a short TTL bounds the time required to revoke a compromised key. See DKIM key rotation for the canonical procedure.
  • SPF records: 3600 seconds (1 hour). SPF records change infrequently (when adding or removing a sending source) and one hour balances cache-efficiency against operational agility.
  • DMARC records: 3600 seconds (1 hour). DMARC policy changes (moving from p=none through p=quarantine to p=reject) typically happen on a deliberate timeline; one hour allows for quick rollback if the change causes unexpected damage. See DMARC policy rollout.
  • BIMI records: 3600 to 86400 seconds (1 hour to 24 hours). BIMI records reference a static SVG logo and a VMC that rarely change, but logo updates should propagate quickly enough for branding consistency.
  • MTA-STS DNS records: 3600 seconds. The MTA-STS policy ID (v=STSv1; id=...) changes when the policy file is updated, and operators benefit from fast propagation of the policy-version pointer.
  • TLS-RPT records: 86400 seconds (24 hours). TLS-RPT reporting endpoints are stable for long periods.
  • CAA records: 3600 seconds (1 hour). CAA records authorize specific certificate authorities; the issuance decision happens at the time of certificate request, and an hour-scale TTL ensures emergency CAA changes propagate before the next certificate renewal.
  • MX records: 3600 to 86400 seconds. MX records define where mail for a domain is delivered and rarely change; longer TTLs improve sender-side cache efficiency.

The operational rule of thumb: set the TTL to the longest value you would accept waiting if you needed to roll the record back. If you can accept a 5-minute rollback window, use 300; if you can accept a 1-hour window, use 3600; if you can accept 24 hours, use 86400. Avoid the conservative DNS-provider UI default of 86400 on records you actively manage.

8. Emergency rollback and the case for short TTLs

The single best argument for short TTLs on actively-managed email-auth records is emergency rollback. When a change causes an incident (DMARC p=reject rolled out too aggressively and now legitimate mail is bouncing; a DKIM private key is suspected of compromise; an SPF record breaks because a sending source is missing) the operator's ability to revert is bounded by the TTL of the bad record. A 300-second TTL means the bad record is fully revoked across the internet within five minutes of publishing the rollback; a 86400-second TTL means a 24-hour exposure window during which receivers continue to apply the bad policy.

The classic rotation pattern for any actively-managed record is:

  1. T = -2 × old TTL: lower the TTL. Publish the EXISTING record with the new shorter TTL. Wait two TTL cycles so the TTL change itself propagates across all recursive caches.
  2. T = 0: publish the change. Publish the actual record change. Now bounded by the new shorter TTL.
  3. T = +1 short TTL: confirm propagation. Verify the change via the multi-resolver workflow in section 6.
  4. T = +<stable period>: raise the TTL back. Once the change is stable and you have no further changes planned, raise the TTL back to a longer value for cache efficiency.

The same pattern applies to DKIM key rotation, DMARC policy transitions, SPF source additions and removals, MTA-STS policy-ID changes, and any other operationally-critical record. The pre-emptive TTL reduction is the single most important step; without it, the short TTL on the new record is irrelevant because resolvers still cache the OLD long-TTL response until it expires.

9. DNS provider quirks that affect propagation

  • Cloudflare proxied records: Any record marked "Proxied" (orange-cloud icon) in the Cloudflare DNS UI has its public-facing TTL forced to 300 seconds (5 minutes) regardless of the operator's TTL setting, because the public answer is a Cloudflare edge IP rather than the origin. DMARC, SPF, DKIM, BIMI, MTA-STS, and TLS-RPT TXT records are NOT proxied by default and respect the operator-set TTL.
  • AWS Route 53 alias records: Alias records (Route 53's extension for pointing to AWS resources without an extra DNS hop) inherit the TTL from the target resource (ELB, CloudFront, S3) and ignore any operator-set TTL on the alias itself. Plain TXT records used for email auth respect the operator-set TTL normally.
  • NS1 traffic management: NS1's filter chains and traffic-management rules can dynamically compute the answer per query, with TTLs that vary by filter. Email-auth TXT records served through plain NS1 DNS respect the operator-set TTL.
  • GoDaddy + Namecheap UI defaults: The default TTL on the registrar UIs of both GoDaddy and Namecheap is conservative (1 hour or longer). Operators must explicitly change the TTL in the UI when creating new records.
  • Microsoft 365 / Google Workspace partner DNS: Some Microsoft 365 and Google Workspace deployments use partner-managed DNS where the M365 or Workspace admin console writes records into the customer's DNS provider on the operator's behalf. TTLs on these partner-written records vary by provider; check the actual TTL via dig rather than assuming the configured TTL is honored.
  • DNSSEC-signed zones: DNSSEC adds RRSIG records that have their own TTLs. The signed record set's propagation is bounded by the longer of the record's TTL and the RRSIG's TTL. DNSSEC-related propagation issues usually surface as SERVFAIL responses from validating recursive resolvers rather than as stale-cache issues.

10. Common misconceptions about DNS propagation

  • "DNS propagation takes 24-48 hours." False as a general rule. The 24-48 hour folk-wisdom reflects the conservative DNS-provider default TTL of 86400 seconds (24 hours) and a worst-case cache scenario. Modern operators publish short TTLs on actively-managed records and see propagation in 5 to 60 minutes.
  • "My ISP is slow to propagate." ISP recursive resolvers do not propagate anything; they cache. If the ISP's recursive resolver has cached a previous value, it serves the cached value until expiry. The cache lifetime is controlled by the ORIGINAL operator's TTL, not by the ISP.
  • "I need to wait for global propagation before testing." False. Test against the authoritative server directly to verify the change is published correctly; test against the recursive resolvers you actually care about (typically Gmail and Outlook for email-auth purposes — their recursive resolvers are the ones that matter for inbox delivery).
  • "DNS propagation depends on the new record's TTL." False. The propagation timeline is governed by the OLD record's TTL (the one being replaced) and the negative-cache TTL (the SOA MINIMUM). The new record's TTL only affects FUTURE changes.
  • "Flushing my browser cache fixes DNS propagation." False. Browser caches are short (typically 1 to 5 minutes) and orthogonal to recursive-resolver caches. If you are testing whether a public resolver has picked up the new record, browser-cache flushing is irrelevant.
  • "DNS changes affect the authoritative server's IP, not just the record." False (in normal operation). The authoritative server's IPs are determined by the NS records of the parent zone, set at the registrar level. Changing a record within a zone changes nothing about the nameserver IPs. Changing the nameserver IPs (delegation change) is a separate operation that follows a different propagation timeline at the registry level.

11. Troubleshooting "the record is not working"

When a freshly-published email-auth record does not appear to be working, work the diagnostic funnel from outside-in:

  1. Is the record published at the right name? DMARC lives at _dmarc.example.com; DKIM lives at selector._domainkey.example.com; SPF lives at example.com; BIMI lives at default._bimi.example.com; MTA-STS DNS lives at _mta-sts.example.com; TLS-RPT lives at _smtp._tls.example.com. Querying the wrong name returns NXDOMAIN regardless of how long ago the record was published.
  2. Is the record published in the right zone? If the domain's NS records delegate to one DNS provider but the operator edited records at a different provider's UI, the changes are invisible because no recursive resolver ever queries the second provider. Check dig +short NS example.com to confirm where the zone actually lives.
  3. Is the record syntactically correct? Common mistakes: unbalanced quotes, missing semicolons, typos in DMARC tag values (p=qurantine instead of p=quarantine), missing v=DMARC1 or v=DKIM1 version anchor, BIMI records missing v=BIMI1.
  4. Is the authoritative server returning the record? dig @ns1.dnsprovider.com _dmarc.example.com TXT confirms the authoritative state directly. If this returns the wrong answer, the problem is in the DNS provider UI; if it returns the right answer, the problem is downstream.
  5. Are the public resolvers returning the record? dig against 8.8.8.8 / 1.1.1.1 / 9.9.9.9. If all three return the new record, propagation is effectively complete. If they return the old record, wait for the old TTL to expire or accept the split-brain period as expected behaviour.
  6. Is the actual email problem caused by DNS, or by something else? The DMARC Analyzer's aggregate-report stream (RUA) is the authoritative source for what receivers are actually observing. If the record is correctly published and visible but RUA reports still show dkim=fail or spf=fail, the cause is not DNS propagation but a problem in the email infrastructure (wrong signing key, wrong From: domain, intermediate MTA breaking canonicalization, etc.).

12. FAQ — common questions about DNS propagation

What is DNS propagation?
DNS propagation is the operational term for the time it takes a new or updated DNS record to become visible to recursive resolvers across the open internet. Technically there is no propagation wave: recursive resolvers PULL records on demand and CACHE them for the TTL duration. A new record is visible immediately to any resolver that had not previously cached the name, and visible after cached values expire to resolvers that had cached a previous value. The maximum propagation time is bounded by the OLD record's TTL.
How long does DNS propagation take?
Approximately the TTL of the record being replaced, plus small overhead. A 300-second TTL propagates within 5 minutes; a 3600- second TTL within 1 hour; the conservative DNS-provider default of 86400 seconds within 24 hours. The folk-wisdom "24 to 48 hours" reflects the worst case where the previous record had a long TTL.
Why is my DMARC record not propagating?
"DNS not propagated yet" is the wrong diagnosis 95 percent of the time. Common actual causes: wrong DNS label (DMARC must be at _dmarc.example.com), wrong DNS provider zone, stale negative cache, record-syntax mistake, or the previous record had a long TTL still being cached. Dig the authoritative nameserver directly to confirm the published state.
How do I check if DNS propagation is complete?
Query against three independent public recursive resolvers (8.8.8.8 Google, 1.1.1.1 Cloudflare, 9.9.9.9 Quad9) and compare results. If all three return the new record, propagation is effectively complete across the major public-DNS infrastructure. For a definitive check, dig +trace from the root or dig directly against the authoritative nameserver IP.
What TTL should I set for email authentication records?
300 seconds for DKIM keys being rotated; 3600 seconds for stable SPF and DMARC records; 86400 seconds for static BIMI and MX records. Avoid the conservative DNS-provider default of 86400 on records you actively manage.
Why does dig show the record but my email is still failing?
If dig confirms the record is published but email authentication is still failing, the problem is not DNS propagation. Common causes: receiving MTA cached the previous lookup, record-syntax errors, wrong DNS hierarchy, the sending source is not authorised by SPF or signed by DKIM, or the receiver caches DMARC policy aggressively. Use the DMARC Analyzer RUA stream as the authoritative diagnostic.
How do I flush my local DNS cache?
Windows: ipconfig /flushdns. macOS: sudo killall -HUP mDNSResponder. Linux with systemd-resolved: sudo resolvectl flush-caches. Linux with nscd: sudo systemctl restart nscd. Flushing local caches does NOT propagate to ISP or public-DNS recursive resolvers.
Do CDN-proxied records propagate differently?
Yes. Cloudflare-proxied DNS records carry a fixed 5-minute TTL on the public-facing record regardless of the operator's TTL setting because the public answer is a Cloudflare edge IP. DMARC and DKIM TXT records are not proxied by default and respect the operator-set TTL.

14. Verify your DNS propagation now

DMARC Analyzer's Domain Security Checker performs the multi-resolver lookup workflow documented in section 6 automatically (via includes/DnsChecker.php), reporting the live state of SPF, DKIM, DMARC, BIMI, MTA-STS, and TLS-RPT records from both the authoritative-perspective lookup and the public-resolver cache. Use it to confirm a newly-published record is visible across the internet, to compare the TTL declared by your DNS provider against the TTL actually observed in resolver caches, and to identify the wrong- label / wrong-zone / wrong-syntax errors that masquerade as propagation delays. The Email Header Analyzer parses Authentication-Results headers from received messages (via includes/EmailHeaderParser.php) so you can confirm what receivers are actually observing — useful when DNS appears correct but email is still failing for non-DNS reasons.

Verify my DNS records Sign up — Free plan