DNS Record TTL Expiry Calculator

August 20, 2026

HomeServerBlog DNS operations tool

DNS Record TTL Expiry Calculator

Estimate when an old DNS answer should age out of resolver, local, and stale caches after you change A, CNAME, MX, TXT, NS, DS, or negative DNS responses.

⏱ TTL and cache presets
⚙ DNS expiry inputs
Choose the answer that a recursive resolver already cached.
For negative answers, use the lower SOA TTL or SOA MINIMUM value.
Applies resolver floors, caps, and negative-cache behavior.
Use zero if the cache may have been filled right before your update.
Zone provider commit, secondary DNS transfer, or hidden-primary lag.
Extra local stub, browser, application, or JVM resolver cache time.
Use when a resolver can answer with expired data during outages.
Adds a safety margin before declaring the old answer expired.
Effective cache TTL
300 sec
after resolver rules
Resolver honors the published TTL unless a floor or cap applies.
Remaining resolver time
255 sec
until normal requery
Subtracts the age of the cached old answer.
Safe expiry window
380 sec
wait before final check
Includes publish lag, local cache, stale allowance, and buffer.
Cache pressure change
288x
vs 86400 second TTL
Short TTLs refresh faster but query authority more often.
This looks like a fast-change TTL. Recheck one public resolver and one client-side resolver after the safe window.
▣ Resolver and equipment comparison grid
300 sec Managed DNS edge

Common fast-change TTL for proxied or cloud-managed address records.

86400 sec Recursive max cache

Typical one-day cap used by Unbound and PowerDNS defaults.

3600 sec Negative cache cap

Common cap for NXDOMAIN or NODATA in Unbound and PowerDNS.

60 sec Client layer

Useful estimate for browser or stub caches during spot checks.

🖧 Home lab DNS stack comparison

ISP router DNS cache

Simple firmware cache with limited visibility. Best tested from a client and a public resolver.

Low control

Pi-hole plus Unbound

Good for home labs because max, min, negative, prefetch, and stale behavior can be tuned.

High control

Windows DNS Server

Useful for AD labs and split DNS. Clear server cache when testing internal cutovers.

AD ready

PowerDNS Recursor

Strong for lab networks that need Lua policy, packet cache, and explicit negative TTL caps.

Policy rich
📊 Reference tables
Preset TTL / Cache Value Use Case Expiry Meaning
Cloudflare proxied Auto300 secondsAnycast-backed A, AAAA, or CNAMERecursive resolvers should refresh within about five minutes.
Route 53 fast change60 secondsBlue-green or failover recordShort cache window with higher recursive query volume.
Google Cloud DNS example300 secondsCloud-hosted lab zoneFive-minute positive-answer expiry target.
MX mailbox move3600 secondsMail provider migrationExpect one hour plus sending-server retries and queues.
TXT SPF/DMARC update3600 secondsEmail authentication changePolicy evaluators can hold the old text until TTL expiry.
Unbound default cache cap86400 secondsLocal recursive resolverLong published TTLs are capped to one day by default.
dnsmasq min-cache-ttlUp to 3600 secondsSmall router or lab cacheA configured floor can make short TTLs last longer.
PowerDNS negative cache3600 secondsNXDOMAIN or NODATANegative answers are capped to one hour by default.
Windows DNS Server cache86400 seconds maxActive Directory or lab resolverPositive cache is commonly planned around a one-day ceiling.
DNSSEC DS rollover86400 secondsParent-zone chain updateParent, child, and validating resolver caches all matter.
Resolver / Layer Positive TTL Behavior Negative TTL Behavior Planning Note
Standards-honoring recursive cacheUses authoritative TTLUses SOA-derived TTLBest mental model when you do not know a resolver-specific clamp.
Unbound defaultsMaximum 86400 seconds, minimum 0Maximum 3600 seconds, minimum 0Good home lab baseline when running Pi-hole plus Unbound.
dnsmasq configured floorCan extend short answersCan extend short negative answersUse carefully because floors ignore the zone operator's intended freshness.
PowerDNS Recursor defaultsMaximum 86400 secondsMaximum 3600 secondsPacket cache can add another short-lived layer in front of record cache.
Browser or app cacheOften separate from DNS TTLApplication-specificRetest with a fresh process when application behavior matters.
Record Type Common TTL Range Fast Change Risk What To Verify
A / AAAA60 to 3600 secondsOld IP can persist in recursive and client caches.Check public resolvers, home resolver, and a real client.
CNAME300 to 3600 secondsAlias and target record can have separate cache windows.Trace both the CNAME and final A or AAAA answer.
MX1800 to 14400 secondsMail servers may retry, queue, or cache old routing data.Verify MX, SPF, DKIM, and actual mail flow.
TXT300 to 3600 secondsEmail policy or ownership checks may cache old strings.Query the exact selector or host label.
NS3600 to 86400 secondsParent and child delegation can disagree during migration.Check parent-side NS, glue, and child-zone NS.
DS / DNSSEC3600 to 86400 secondsValidators can fail closed when DS and DNSKEY timing is wrong.Verify DS, DNSKEY, RRSIG validity, and chain status.
NXDOMAIN / NODATASOA-derivedA missing record can stay missing after you create it.Query resolvers that looked up the name before creation.
Project Scenario Suggested Pre-Change TTL Wait Before Change Post-Change Check
Home server IP change300 secondsPrevious TTL plus bufferCompare WAN, phone hotspot, and local resolver answers.
Reverse proxy migration300 secondsOne normal TTL cycleConfirm CNAME target and address answers separately.
Mail provider cutover3600 secondsOne to four hoursCheck MX, SPF, DKIM, DMARC, and live delivery.
New hostname after NXDOMAIN900 secondsNegative SOA TTLFlush one resolver only for testing, then wait for others.
Nameserver migration86400 secondsOne to two daysCheck registry parent, glue, and old child authoritative data.
DNSSEC rollover86400 secondsParent and child TTLsValidate with DNSSEC-aware resolvers after each phase.
💡 Practical DNS TTL tips
Plan from the old TTL, not the new one. A resolver that cached the old answer before your edit keeps counting down from the old effective TTL. Lowering TTL at the same moment as a move does not shorten caches already filled.
Treat negative answers as their own cache. If users queried a hostname before you created it, their resolver may keep NXDOMAIN or NODATA until the SOA-derived negative TTL expires, even after the record exists.

When you click save after changing a DNS record, the clock begins to tick. But you probably don’t get to see it. So when you go reload site after updating A record to point to new server IP, you still see old address. The internet seems broken.

The issue is naturaly more about caching and patience than anything else. Those hard limits called time to live (TTL) aren’t a suggestion; they’re the value that origin server sets telling resolvers just how long they can hoard that answer without checking back with the original source. Use our calculator above and it’ll do the math for you, converting these abstract seconds into something concrete that you can plan around.

How DNS Propagation Works

To understand why your change isn’t spreading, realize that there’s a layer of caching between you and recursive resolver provided by your ISP. This layer may impose a maximum on all TTLs (twenty four hours is common) or respect them strictly. Then there’s whatever minimum your local network hardware applies to cached entries, usually stretching a brief TTL into more lengthy one. Next, there are small but often overlooked caches in your operating system or browser that come from recent lookups. Sum the time left in each bucket and you have overall delay. And that’s how a five-minute TTL feels like a five-hour wait when you haven’t considered local floor values.

Most folks is unaware that they get burned by negative caching. When you attempt to resolve a non-existent domain, the resolver doesn’t simply forget and ask again; it will cache the negative response. This is good because it stops your PC from asking over and over for missing record. However, even after you create that record, it will still return cached negative result buried in negative cache. Unlike the normal TTL you assign to a positive reply, the expiry of this are typically calculated from the minimum field of the SOA record. It’s one of those small details that has system admins scratching their heads for hours thinking their newly created site was live but their users could never find it.

When you’re planning a migration, think backwards from old TTL (not the new one). What’s the most common error people make? They drop the TTL down to sixty seconds as soon as they change the IP address. That doesn’t do anything useful for the users who has cached your old IP with a two hour timer on their computers. Once those timers have started ticking, they don’t stop; they just keep ticking away. Instead, what you should of do is lower the TTL way back before migration, give it some time to propagate, and then make the change. By the time you flip the switch, the cached data is already about to expire. It’s a small thing, but man it makes such a diffrence in uptime.

Changing a CNAME involves two lookups. In this case, the TTL of the alias and the TTL of the final address may not match. Changing an MX will affect mail flow because queues and retries will keep old routing information longer than the TTL suggests. This table details those differences by record type. It also shows how managed edge services does fast updates using short TTLs, compared to what you may see from home labs which may impose longer floors. The key is that you match your plan to most restrictive cache along the path. “If there’s a layer that ignores your low TTL and caches things for an hour, then your five minute plan is now an hour long plan.

Then there’s the verification buffer. Once you reach the theoretical expiry time, I suggest waiting another little while before assuming the change has took effect. That covers publish lag, where your DNS provider take several seconds to spread the change to all their nodes around the world. It also covers the possibility of network blips causing some resolvers to continue serving old data. Ten percent added to your calculation as a buffer is not unreasonable. What might have been a risky cutover becomes a managed transition.

In conclusion, DNS propagation is a game between memory and time. And these numbers on the chart aren’t just data, but instead a timeline of how long the internet will recall what was once configured. Use this as a countdown clock instead of thinking of it as a fixed number, plan your changes accordingly knowing when the clock expires. From a home lab to tweaking your mail server hostname, be aware of age of the caches and you’ll both be viewing the same world. When the clock runs out, check back. It always wins.

DNS Record TTL Expiry Calculator

Related posts

Leave a Comment