1

Does setting the refresh time in an SOA record make newly created DNS records "propagate" faster? (I understand the term propagate is technically inaccurate)

I'm making many new DNS records (A records to assign subdomains to each new user on the site), and I'd like for that subdomain to be available ASAP after a user signs up. So I'm looking for ways to speed up the rate at which DNS servers check for new DNS records.

Is this possible with the refresh time in the SOA? Or somewhere else?

Shruggie
  • 123
  • 6

1 Answers1

3

New A records shouldn't have any propagation delay at all, since they aren't cached anywhere. Any DNS client that can't find your new record in a cache should be going direct to your authoritative servers. It's only changes to existing records that can suffer from a delay.

Mike Scott
  • 7,903
  • 29
  • 26
  • 8
    With the execption of previously queried negative results, they also suffer from the TTL as defined in the domains SOA record. https://serverfault.com/questions/426807/how-long-does-negative-dns-caching-typically-last – Sven Mar 26 '18 at 10:39
  • Gotcha. I think I must have queried a negative result because in one instance it took ages to actually find the new DNS record. Thanks for the help. – Shruggie Mar 26 '18 at 10:45
  • 1
    There is also a brief propagation delay (anecdotally ⪅ 35s) inside Route 53, which means querying a record "before" it exists can still be done for a few seconds after you sent the request to create it... so, yes, definitely your SOA TTL is the most significant factor. Route 53 has the [`GetChange`](https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html) API action that you can poll until the change set changes from `PENDING` to `INSYNC`. At that point (and usually a few seconds sooner), any Route 53 server should return the new record when queried. – Michael - sqlbot Mar 27 '18 at 00:34
  • @Michael-sqlbot that's exactly it. I must have queried that URL before Route 53 finished syncing, got a negative result, and that got cached. Brilliant, thanks for that tip. I can hide the link from my users until the GetChange API returns INSYNC. – Shruggie Mar 27 '18 at 21:15