📨   Module 5 dropped! Learn SPF, DKIM, DMARC, MTA-STS, DANE & BIMI   ðŸ“¨
NsLookup logo
Learning center

DNS propagation does not exist

Copy article link
A widespread fallacy among IT professionals is that DNS propagates through some network. So widespread in fact, that there are a couple of DNS checkers dedicated to visualizing the geographic propagation of DNS records. But DNS propagation does not exist.
DNS propagation does not exist
DNS resolution depends on time, not geography.

So how does it work?

When you request DNS records from the server that is authoritative for that domain (i.e. who "owns" it), it will accompany those records with a TTL (time to live). This indicates how long you can keep using those values before you should request a fresh copy. The records are stored in a cache on your device. Eliminating the need to query the DNS server every time speeds things up and reduces the load on DNS servers.

Many internet service providers provide DNS caching servers to their subscribers. There are also some public DNS servers, offered by Google, Cloudflare and others. Those are all called recursive DNS servers. They can provide you with an answer by querying the authoritative DNS server. These recursive servers use the TTL to cache records on their side. So there are multiple layers of caching: in these servers and on your device.

It's of course possible that the records have been changed, and that you get an old version of the records that was still in the cache. These records are said to be stale. So when this happens, it's not caused by records that didn't propagate yet, but by a stale cache.

Staleness depends on incidental timing of previous requests, and they are not correlated with the geolocation of a DNS server or its place in some physical or logical network.

Another way to look at it is that records are not pushed (propagated), but pulled (queried and cached).

A suggested change in terminology

Okay, so "DNS propagation" may not be the best choice of words. But why does that matter?

Well, words trigger associations, and they shape the way we think about something. So the terminology we use is important from a pedagogical perspective. When something is said to propagate, someone who hasn't learned how DNS works will assume that it somehow spreads through a network. And everyone who does know how it works had to have learned it at some point. It will be easier to learn if we use words that trigger the right associations.

So let's eliminate this fallacy, and call it cache expiration instead of propagation.