What is DNS propagation and why does it take so long?

In order to resolve a domain name, it must be registered and pointed to at least two name servers which will host the DNS zone file for the specific domain. These servers are authoritative so when someone on the Internet "asks" for the IP address of the specific domain, the request will first go to the root name servers for the requested TLD (top level domain, for example: .com, .net, .org, etc.). They will reply with the authoritative name servers for the requested domain and the request will go to the server hosting the file with the DNS records where the IP will be resolved from.

Each Internet Service Provider maintains its own caching DNS server/s. These servers store the DNS records in their local cache in order to save network traffic from querying the authoritative name servers each time they receive a request for a given domain. So when you request your domain name in your browser, the request goes to the name server of your ISP. It resolves the IP address of your domain from the authoritative name servers and the record is being stored in the local memory of the ISP name server.

The stored record remains in the local name server memory according to the settings applied in your DNS zone file and more specifically the value of theĀ TTL parameter in the SOA record (Start Of Authority). This value is set by default to 14400 seconds (4 hours) in the BIND name server. Often, this value is increased to a day or two, again due to the traffic saving purposes.

So when your local name server caches a record from your DNS zone file, it keeps the record in its memory as long as the specified value in the TTL parameter from your zone file. When you make another request for the same record before the TTL time pass, your ISP name server will reply with the stored record rather than querying the authoritative name server again and will do so until the TTL time is reached. After the TTL is reached, it will re-fetch your DNS zone from the authoritative name server for your domain and will start serving the updated records.

That is why you need to wait up to approximately a day when you make changes to your DNS zone.

While you wait for an updated record to propagate, it is a good idea to flush the local DNS resolver of your PC, since the DNS records may be cached there as well. Check the links provided below for detailed instructions on how to clear the DNS cache:

How to Clear the Local DNS Cache in Windows

How to Clear the Local DNS Cache in Linux

How to Clear the Local DNS Cache in Mac OS