DNS Doesn't Propagate (2021)
jvns.ca
jvns.ca
This latter behaviour (and perhaps, historically, the days-long turnaround time on your fax to Network Solutions or a RIR to revise delegations and glue records) is where the term really comes from, the cache-expiry part that causes longer wait times for changes to be globally effective is just kinda grandfathered in under the DNS vernacular “propagate”. And more to the good, non-technical stakeholders and project managers etc will take away the gist that the wait period is out of their direct control, without anyone having to explain the underlying mechanics.
> This latter behaviour is where the term really comes from, the cache-expiry part that causes longer wait times for changes to be globally effective is just kinda grandfathered in under the DNS vernacular “propagate”.
Nice job repeating the article. Everything you said is called out in the article but with useful details so people can learn to not think updating A records requires “propagation delay” to start working.
This isn’t a gotcha question: I know “propagation” isn’t a technically accurate word, but I’m sure not going to say that sentence when talking about it.
I would usually just say “after TTL expiry” to tech colleagues, but that doesn’t work for less technical conversations — saying “the change will take up to 24 hours to propagate” works better for explanations to C-level types.
Moreover, the push is not always fast. There are plenty of 2ary systems in the world that will ignore the notification and only recheck serial after SOA refresh intervals, and others that will queue it for batch update later. Assuming everything works instantly is a tech sector conceit.
It's the modern networking equivalent of saying "god did it," where some poorly understood phenomena is relegated to a nebulous term that isn't ever properly defined or elaborated upon. Better to dispense with such shady and fuzzy terminology and enter into a discussion of what is actually going on, which is resolver caching according to TTL fields in a DNS answer.
In light of increasing layers of opaque abstraction, encouraging people to build correct mental models of what the hell computers are actually doing is becoming ever more important.
So instead of re-examining their assumption and I dunno, googling "what does propagation mean" or whatever, they've decided the problem was that ~everyone else is wrong...
That's how certbot and other Let's Encrypt clients work when using the DNS verification method rather than the HTTP one (using /.well-known/…), which you need to do for wildcard certificate for example. It allows verification of the _acme-challenge TXT record instantly after the update during the certificate renewal procedure.
In the former case you may get a stale answer, up to the (possibly nonconformant) caching behaviour of the resolver and how long the cached value has left to live; in the latter case you are probably assured to receive the most up-to-date answer for that record.
> You still only will know that other resolvers will receive the desired answer eventually.
That's also correct. DNS is an eventually consistent system where if you stop updating the authoritative records, all resolvers will eventually converge to the latest answer once their cached records expire (presuming that they actually respect the cached records' TTLs as expected).
I need to get around to making a new pihole.
My last one did it over tor and wasn’t noticeably slow
Kinda surprised to hear about this one. Wouldn't this instantly break DynDNS domains that rely on short TTLs so they can keep the server's IP address in sync?
You find out all sorts of bad DNS behavior when you run anything CDN related.
It’s way less of a problem now than it was 20 years ago (at least in the Western countries I have services in my career) but it has traditionally also been an issue for a hard cutover of services, especially for SMB and even small enterprise businesses doing things like MX cutovers.
the advice to wait for propagation dates from the time before notify