[ DNS & domains ]

Plan DNS TTL changes without a fixed propagation promise

Plan authentication changes around old cache lifetimes, authoritative publication and measured resolver observations rather than a universal propagation deadline.

By the EmailAuth research team · 6 min read

[ Key points ]

  • Lowering TTL does not retroactively shorten entries already cached with the old TTL.
  • Aliases, negative answers and authoritative consistency add separate dependencies.
  • A local flush and a few public resolver checks cannot prove global completion.
On this page

Replace the propagation deadline with a change plan

A DNS TTL helps determine when cached information is reconsidered. It does not schedule one worldwide moment when every receiver starts using a replacement SPF policy or DKIM key. Different resolvers acquired the old answer at different times, authoritative servers may not all be serving the new data, and applications can have their own lookup and retry behavior.

A useful change plan separates authoritative publication from downstream observation. “The DNS host accepted the edit” is an earlier milestone than “the relevant authoritative servers return the intended answer.” Neither statement establishes what a specific mail receiver used for a message sent a minute ago. Start the timeline with evidence for each milestone rather than a generic promise that DNS takes a fixed number of hours.

Understand which TTL is being observed

An authoritative resource record has a TTL associated with its published data. A cached response normally reports the remaining lifetime of cached data, so two recursive resolvers can return identical text with different remaining TTLs. Those values describe different cache states; they are not two competing declarations of the record's intended configuration. RFC 1035, section 4.1.3; RFC 1034, section 6.2.1.

If an existing record has a long TTL, reducing that value does not reach backward into caches that already stored the older answer. Plan the reduction ahead of the substantive change and allow the prior caching window to be considered. Confirm that the lower TTL is actually being served before treating it as part of the maintenance plan. This is planning guidance, not proof that every cache has been observed.

An alias chain adds distinct dependencies. The alias record and the target's record set can have different TTLs and different operators. A short TTL on the customer-side CNAME does not force an already cached target key to refresh at the same moment. Write down both names before trying to explain the timing.

Model the old and new answers separately

Consider a fictional SPF update at mail.example.com. Resolver A obtains the old policy at 09:50 with a TTL of 3,600 seconds. At 10:00, the authoritative operator changes the published TTL to 300. At 10:10, the operator replaces the policy. Resolver A's earlier entry can still be usable under its original cache lifetime until 10:50, absent other behavior. A second resolver that first looks after 10:10 may already return the replacement.

This worked example is invented arithmetic, not a measurement or a guaranteed expiry schedule. Its lesson is that lowering TTL at 10:00 does not rewrite Resolver A's 09:50 entry. An operational worksheet should retain the previous data, previous TTL, time the TTL change was observed at authority, time the content changed and subsequent sampled resolver answers.

For a DKIM rotation, retain separate milestones for publishing the new selector, verifying its availability, starting signatures that use it and retiring the old selector. DNS cache arithmetic alone cannot decide when previously sent mail will finish being verified. The sender's queueing, retry and retention requirements belong in the rotation decision as well. RFC 6376, sections 3.1 and 3.6.

Include negative answers and outage behavior

A newly created name may have no old positive record to time. A resolver could instead hold an earlier NXDOMAIN or NODATA result. The negative response's SOA-based lifetime is a different value from the TTL on the newly published TXT record. Changing the new TXT TTL therefore does not erase a previous cached absence. RFC 2308, sections 3 and 5.

There is also an explicit standards exception to a simple expiry story. RFC 8767 permits serving stale data when an expired entry cannot be authoritatively refreshed. Whether that occurs depends on the resolver and the failure conditions. Do not assume a returned answer is fresh merely because it has a small nonzero TTL. RFC 8767, sections 4–5.

These cases should change the investigation, not invite an arbitrary extra waiting period. If authorities disagree, correct publication consistency. If a negative response persists, inspect its original question and SOA context. If authority is unreachable, restore or investigate availability rather than repeatedly editing an already correct TXT record.

Choose observations that answer the release question

Before the change, capture the exact record and its TTL from the relevant authorities and selected recursive paths. Afterward, repeat the same owner, type and class against the same endpoints. Include a path relevant to the affected environment when available; several public resolvers remain samples, not a census of every mail receiver.

A proposed query is dig @RESOLVER_IP mail.example.com. TXT, paired with dig @AUTH_IP mail.example.com. TXT +norecurse. Save the full responses with UTC timestamps and label all placeholders before use. A local cache flush changes only that local caching path. It cannot clear a remote receiver's recursive cache, so it is not a global completion control.

Report the result precisely: which authorities agree, which sampled resolvers return the new value, and which observations remain missing. Then send a controlled message through the intended service and inspect the actual authentication identities and receiver result. No DNS queries or message tests were performed for this draft. The required resolver comparison, including TTL, response type, authority and observation time, remains open.

[ Takeaway ]

A TTL is part of cache behavior; release decisions need observed publication, sampled refreshes and message-level verification.

[ By role ]

What this means for you

Choose your role for practical next steps.

Change manager

Schedule evidence milestones

The plan needs to distinguish the TTL reduction, content replacement and observed adoption.

Next steps

  1. Retain the previous answer and TTL before the maintenance window.
  2. Define acceptance and rollback conditions without a global time guarantee.

DNS administrator

Measure publication and cache paths

The authoritative value and recursive remaining TTL describe different states.

Next steps

  1. Record exact endpoints and timestamps before and after changes.
  2. Inspect alias targets and earlier negative responses as separate dependencies.

Mail service owner

Coordinate key use with DNS availability

A new selector must be available before the service relies on it, while earlier messages may still require the old key.

Next steps

  1. Confirm when signing changes and queues can still contain older signatures.
  2. Verify controlled mail before requesting retirement of the old selector.

[ FAQs ]

Frequently asked questions

If I change a TTL to 300 seconds, is the old SPF policy gone in five minutes?

No. Resolvers that obtained the old record with a longer TTL can retain that earlier cache lifetime. Verify when the lower value was served and consider the earlier entries.

Why do two resolvers return different TTLs for the same TXT value?

They may have obtained the data at different times and be showing different remaining cache lifetimes. Compare timestamps and endpoints before treating the difference as a configuration error.

When should a TTL reduction be planned?

Ahead of the substantive change, with evidence that authorities serve the reduced value and allowance for prior cache lifetimes. The lead time depends on the old data and operational plan.

Does a short CNAME TTL shorten the target key’s TTL too?

No. The alias and target data are separate records with their own caching lifetimes. Track both names when a provider-hosted key is involved.

Does a new TXT record’s TTL control an earlier missing-record answer?

No. A cached negative answer has its own SOA-based lifetime. Creating a TXT record does not replace that earlier cache entry remotely.

Can expired data ever still be served?

Yes. RFC 8767 permits stale data when authoritative refresh fails, subject to its rules and resolver behavior. Expiry therefore cannot be treated as a universal global switch.

Will flushing my laptop make a mail provider use the new record?

No. That changes only the local caching path being flushed. The mail provider’s resolver has independent state.

Is TTL expiry enough to retire an old DKIM selector?

No. Coordinate the signing transition and verification needs of previously sent or queued mail. DNS timing alone does not determine the sender’s safe retirement schedule.

[ Sources ]

Sources

  1. RFC 1034: Domain names: concepts and facilities
  2. RFC 1035: Domain names: implementation and specification
  3. RFC 2308: Negative Caching of DNS Queries
  4. RFC 6376: DomainKeys Identified Mail Signatures
  5. RFC 8767: Serving Stale Data to Improve DNS Resiliency

[ Glossary ]

Glossary

TTL
A DNS resource record’s cache lifetime value, with refresh and permitted stale-use behavior governed by the applicable standards.
Remaining TTL
The lifetime left on a cached record when a resolver returns it, rather than necessarily the originally published value.
Positive cache entry
Cached DNS data that supplies relevant records rather than a retained absence or resolution failure.
Negative cache entry
A cached response indicating a missing name or requested data, with separate rules also covering resolution failures.
Serve stale
Resolver behavior that can reuse expired data when it cannot be authoritatively refreshed.

Enterprise provenance

Why top financial institutions and governments retired their email security dashboards.

Traditional email authentication platforms sell you a dashboard and ask your engineers to do the labour. In high-stakes environments, manual oversight means delayed enforcement, configuration drift and unmonitored shadow domains.

EmailAuth is the agentic email provenance platform. Our agents enforce p=reject, keep third-party senders aligned and move your domains to full RFC 9989 compliance, the new DMARC standard,, with human-in-the-loop auditability.

Governments Large enterprises Tier-1 financial institutions

SaaS · Dedicated tenancy · Air-gapped on-prem · BYOK encryption

Knowledge Base