Nearly all of those involved in web hosting encountered DNS propagation. To understand this unpleasant phenomenon and how it works, you must understand the domain name system (DNS).
Domain Name System
The DNS refers to a program running on a dedicated DNS server. It resolves the domain names so you can understand and remember IP addresses.
Each network member (server, personal computer, router or similar hardware) has an identification number or IP address allowing other network members to identify them through TCP/IP protocols and send or receive data packets from them. These IP addresses are completely numerical – or hexadecimal as in the case of IPv6 – and not easy to understand or remember. It is easier to describe your website as www.example.com and refer to its IPv4 address, 126.96.36.199
The Purpose of DNS
The domain name system relates numeric IP addresses with domain names which are easy to understand. The DNS is comprised of a complicated hierarchy of name servers that oversees IP address and their associated domain name. Theoretically, when the end-user types a URL in the browser window, the browser sends a query to the corresponding name server that responds with an IP address of the domain name. The browser sends a session request to the server with the IP address it got from the name server and obtains an answer. In reality, however, the process is much more complicated.
The end-user’s PC cannot recall the name servers for each web page. The web-browser must first query the root DNS servers to look up the name server authoritative for the web-page that must be opened. The root servers provide the IP address so the browser can query the authoritative name server directly. The DNS information is stored with intermediary network members (ISP providers) so as to send many queries for opening a single website.
The DNS information is not static and changes constantly because of domain name expiration, server migration, IP address changes and others, thus, the DNS information requires regular updates.
The time-to-live (TTL) is used for this purpose. This shows the length for storing the DNS information in a network node. It is set by the system administrator of the node and differs vastly from one network member to another. This can mean seconds, minutes, or days. To save cache and memory space, it would be around 24 hours for new domains and not longer than 72 hours for current domains. The end-user’s browser stores DNS information following the initial visit of a website.
Given all these factors, the website look-up is as follows:
For this to happen, the name server information in the root servers must be correct.
- Correct nameservers are indicated in the NS record of the domain’s DNS zone file.
- Name servers listed by a domain registrar match the ones in a DNS zone.
The domain name will not be resolved properly if there is a variation between name servers recorded at the root-servers and those listed in the domain’s DNS zone file.
Take the case of a website and domain name associated with it hosted by SRHP (Some Random Hosting Provider). To change our hosting provider, we obtain information for the new account from friendly technical support staff. This will allow us to transfer web content to the new server that will host our account. However, our website’s visitors will not see the website even if they type the URL in their browser.
We need to update our domain with proper nameservers by logging in to domain registrar’s website. We must change the name servers listed there to what our new web host provided.
So, the new DNS configuration is set up correctly and everything should be functioning properly? Right?
No, because all over the world, our visitors’ ISPs, other network members, and hardware components have the old DNS information cached in their memory. All of them have different TTL values so it will take some time to refresh their cache and provide the correct and updated DNS information for querying parties.
For instance, we registered a domain name dnspropagation.co.cc for this purpose.
We revised the domain’s DNS zone and submitted the authoritative name servers which have been changed in the domain registrar’s records. We check network members who updated their cache to view the website for the domain dnspropagation.co.cc through a DNS propagation checker tool, http://www.whatsmydns.com.
The newly-registered domain name has not worked out so we wait for a few minutes and perform another check-up.
The domain name is being resolved only from New Zealand.
We give the DNS propagation a few hours and check results.
The progress of DNS propagation is evident. Several random name servers globally have the proper update information stored in their cache and resolve the domain name dnspropagation.co.cc properly.
This is the result after 24 hours of ongoing DNS propagation:
All name servers randomly selected have refreshed their caches and can resolve the domain name dnspropagation.co.cc correctly. It provides querying parties with the correct IP address of the server host. We can now open the domain dnspropagation.co.cc using any browser everywhere in the world. However, dnspropagation.co.cc is a newly-registered domain name. No one has accessed it before so the ISP provider or router does not have any relevant information.
For an older domain, the process of the DNS propagation lasts up to 3 days since most ISPs set their own TTL cache to reduce network load.
- The domain registrar publishes the domain name’s DNS information at the (root server) DNS level.
- After publication, it is placed in a directory broadcasted to primary DNS servers worldwide. The primary DNS servers broadcast to secondary DNS servers and so on.
- This propagation process can take maximum of 72 hours for completion.
- Propagation is the amount of time for all the DNS servers to recognize that a new domain was registered, a domain name was changed, or the authority for that domain was changed.
It does not always take 72 hours for DNS propagation to finish. For most users, the propagation period is finished well within that time although there are no guarantees that all browsers can open the website.