Understanding DNS Propagation

DNS propagation is the time period in which it takes updates to DNS records to be in full effect across all servers on the web.

The reason changes aren’t instantaneous is because nameservers store domain record information in their cache for a certain amount of time before they refresh.


While our domain won’t experience any downtime from properly planned record changes, some users will still be served a cached version of our site until all servers have propagated.




DNS Propagation Time

So, how long does the propagation process take? There’s no concrete answer for this, but typically DNS propagates within a few hours, though it can take as long as 72. The timeframe for propagation depends on several factors, including our internet service provider (ISP), our domain’s registry, and the TTL values of our DNS records.


When do we need to care about the DNS Propagation?

DNS propagation check is useful when we switched webhost or stared a new website and we just changed our domain DNS Name Servers from our domain registrar. we can perform a free dns lookup against our IP address and will confirm if the website is completely propagated worldwide or not.


How Internet Service Providers (ISPs) Affect DNS Propagation Times

When a request is sent for a domain, it is first passed to a local resolver, typically that of an ISP, and then on to several different servers before reaching an authoritative server that holds the final answer for the original request. The problem is that some ISPs ignore Time to Live (TTL) values and keep records in cache past the designated TTL expiration in a record. This can slow propagation down significantly.



How Domain Name Registry Affects the Speed of DNS Propagation

Anytime we make changes to the authoritative nameserver for our domain, the changes also have to climb the proverbial DNS ladder. Even after our update is propagated on our provider’s network, the new information needs to be picked up by the Top Level Domain (TLD) and the root servers.


Tip: To avoid unnecessary downtime when switching providers, we recommend waiting 72 hours before deleting records from our previous provider or discontinuing our old service.




How TTL Affects Global DNS Propagation

As mentioned above, some ISPs ignore TTL in DNS records, but even if they didn’t, propagation is still affected by TTL values. The higher our TTL is set, the longer propagation will take. For instance, if our DNS record has a TTL of 86,400 seconds (24 hours) and we make a change to the record, all servers will continue to serve end users the old information until the 24 hours is up. Once the TTL has expired, servers will make a new DNS request to retrieve any new information.


If our domain makes regular updates to our DNS records, having a high TTL would be a disadvantage—especially if an ISP ignores the TTL values. In this case, a lower TTL is advisable. Recommended TTL for domains that make frequent record changes would be 30 to 300 seconds. The lower the better for mission-critical services. It is possible to set TTL below 30 seconds, but many resolvers will not recognize values less than that, so we would want to make a test record first.





How do we speed up DNS propagation?

A technique used to speed up DNS propagation and prevent a delay is to lower our DNS records TTL a few days in advance of making any changes so that when the change is made any old records expire more quickly.


Unfortunately, most people who are having issues and trying to speed up DNS propagation only find this out after making changes and are wondering why they're not seeing instant results.


If we have checked DNS globally, and are seeing different results locally then we may consider flushing your DNS cache, or using another DNS server. As a last resort, manually overriding our local DNS entries in our systems hosts file can also be done but should be considered a temporary measure and only works for certain record types.



Global DNS Propagation Checker

To make sure our DNS record changes have propagated globally, we can use an online DNS Propagation checker. There are several to choose from and it’s a good idea to check more than one. Here are a few propagation checkers:


  • DNS Checker

  • whatsmydns.net

  • MX Toolbox

  • DNS Propagation Check

  • Global DNS Checker


How to check DNS Propagation locally

On Linux, we can use the command dig to check DNS records. For examples, we can use the following command to check A record for howtouselinux.com


% dig howtouselinux.com


; <<>> DiG 9.10.6 <<>> howtouselinux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25858
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 13, ADDITIONAL: 1


;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;howtouselinux.com.		IN	A


;; ANSWER SECTION:
howtouselinux.com.	0	IN	A	185.230.63.171
howtouselinux.com.	0	IN	A	185.230.63.107
howtouselinux.com.	0	IN	A	185.230.63.186

We can also use ping command to get the ip address of a domain.


 % ping howtouselinux.com
PING howtouselinux.com (185.230.63.186): 56 data bytes
64 bytes from 185.230.63.186: icmp_seq=0 ttl=233 time=192.975 ms
64 bytes from 185.230.63.186: icmp_seq=1 ttl=233 time=192.293 ms
64 bytes from 185.230.63.186: icmp_seq=2 ttl=233 time=193.854 ms
^C
--- howtouselinux.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 192.293/193.041/193.854/0.639 ms

On Windows, we can use nslookup command to query DNS records like this.



% nslookup howtouselinux.com
Server:		64.104.76.247
Address:	64.104.76.247#53


Non-authoritative answer:
Name:	howtouselinux.com
Address: 185.230.63.186
Name:	howtouselinux.com
Address: 185.230.63.171
Name:	howtouselinux.com
Address: 185.230.63.107



5 views