Introduction to DNS: Explaining The Dreaded DNS Delay

Advertisement

Imagine that your biggest client calls because they are having trouble retrieving their email. Or they want to know what their best-selling item is right now. Or their most popular blog post. Perhaps their website has suddenly gone down. You can hardly reply, “No problem, I’ll get back to you in 24 to 48 hours.”

And yet DNS gets away with it! If you need to move a website or change the way a domain’s email is handled, you’ll be faced with a vague 24 to 48-hour delay. This is quite an anomaly in a world of ultra-convenience and super-fast everything. This article explains what DNS is, how it works, where that pesky delay comes from, and a couple of ways to work around it.

What Is DNS?

DNS is the “domain name system.” It translates human-friendly website addresses like www.cnn.com into computer-friendly IP addresses like 157.166.224.25. Try visiting http://157.166.224.25 if you’d like to verify this.

Every computer, Web server and networking device on the Internet has one of these numerical IP addresses. In some cases, through a process called “network address translation,” a whole house, office or building shares the same IP address. But the addresses are otherwise unique, and they allow computers to easily route information around the Internet.

DNS is a distributed service. No single computer out there translates domain names to addresses. Instead, the task is shared by millions of name servers (also spelt as one word, “nameserver”), which constantly refer to and update each other.

Your Local Name Server

Every computer connected to the Internet has a name server. When you attempt to visit a website like www.smashingmagazine.com, your computer asks its local name server to go off and find the corresponding IP address, 80.72.139.101 in this case. Your computer’s name server can’t make this translation by itself; it has to keep asking other name servers until something somewhere comes back with a definitive answer.

Your local name server is like the little address book that you kept near the telephone before mobiles were invented. If you hired A1 Triple Glazing to retrofit your windows, you might have copied their phone number into your address book. The next time you had to ring them, the number would be right there, immediately available. Or under the sofa.

Some Name Servers Are Special

The name servers just “know.” Every domain name like smashingmagazine.com has at least one name server that authoritatively and definitively knows the correct IP address. The authoritative name servers for smashingmagazine.com are flashily called a.regfish-ns.net, b.regfish-ns.net and c.regfish-ns.net.

This is like saying that A1 Triple Glazing’s phone number can definitely be found in the Northampton Yellow Pages. That particular phone book is the authoritative source of information on the whereabouts of A1 Triple Glazing.

Where the Delay Comes From

Say A1 Triple Glazing decides to change its phone number. It could take up to 12 months before the 2012 edition of the Northampton Yellow Pages comes out with the updated phone number. And it could take a further 12 to 36 months before you next go up to Northampton, check the Yellow Pages, and copy the new phone number into your personal address book. In the intervening 24 to 48 months, your address book would be out of date. And if you ever rang A1 Triple Glazing, you’d be disconnected instantly… or end up speaking to a hairdresser. Fortunately, new windows generally have a 10-year guarantee. But websites need to be a bit more responsive than that.

Creating A New Website

DNS becomes important whenever you need to create a new website or move an existing one. New websites are the simpler case, so we’ll discuss them first. With any new website, you need to do several things:

1. Buy the Domain Name

Screenshot of a registrar1
123-reg is a domain name registrar that does hosting on the side.

A company from which you buy and register a domain name is called a registrar. Registrars get a special license from ICANN2 that allows them to sell domain names. The license costs $2500 (US) to apply, plus $4000 per year. Some particularly large registrars are GoDaddy in the US and 123-reg in the UK.

After registering a new domain name, there may be a delay of a few minutes to a few hours before you can log into the registrar’s website to change the domain’s name servers (step 3 below) or point to an IP address (step 4 below). This delay is a result of the registrar processing your payment, adding you to the Whois database3 and updating its records. The delay applies only to brand new domains and so is not part of the DNS delay.

2. Find a Host for the Website

Screenshot4
Some companies provide only hosting.

The hosting company puts your website on a big powerful server somewhere, provides you with an IP address and charges you monthly. Thousands of big and small companies offer hosting or resell another company’s. Most registrars also offer hosting, and if you buy the domain name and hosting space from the same company, you won’t need to worry at all about DNS.

3. Specify Name Servers for Your Domain

Screenshot5
Almost all registrars allow you to change name servers. This screenshot is from Fasthosts.

This step is akin to specifying which Yellow Pages your domain name should appear in. Usually you can skip this step and just use the default name servers provide by the registrar.

You might want to change them if, for example, you registered the domain names (step 1 above) with several companies but wanted to manage the DNS (step 4 below) from one place. Or perhaps you used Really Cheap Registrar Plc to register the domain names, but you want to use Really Flexible DNS Plc to manage the DNS. Or perhaps your host (step 2) has a nice DNS interface that you’d like to use.

To change the name servers, log into your registrar (from step 1 above), navigate to the domain name in question, and look for a “Change name servers” option, as in the screenshot above. Really Flexible DNS Plc will tell you what to change them to.

4. Point the Domain Name at the IP Address

Screenshot6
Using Fasthost’s advanced DNS to add the IP address of a website.

Now you need to log into whichever company is providing the name servers (either the registrar, the host or another) and point www.yournewdomainname.com to your new IP address. Usually there is an option for “DNS Settings” or “Advanced DNS,” often with a big warning asking whether you’re sure you know what you’re doing. Find the button to add an new “A” record (for “Address”). Enter www as the host name (i.e. the prefix for the domain name) and the IP address given by your host in step 2.

You can use the same process to create other address records, such as webmail.yournewdomainname.com. Sometimes you can enter * as the host name, and then everything.yournewdomainname.com will point to the IP address. And if you enter @ as the host name, then it will point yournewdomainname.com without any host name.

5. Wait For It to Happen

This is the cause of part of the DNS delay. Many companies will process your DNS request immediately. Others process requests only once or twice a day; so, if your company processes changes only at 4:00 am, and you request the change at 4:02 am, then you’ll need to wait almost 24 hours.

123-reg says this7:

Not only do we give you the power to change your DNS settings to whatever you like, but we make those changes instantly! Unfortunately, we can’t make the Internet as efficient as we are?—?other web services may take longer to update. Your changes will go global just as soon as they catch up.

The next section discusses how DNS works in detail, and the final section covers the main part of the DNS delay.

How DNS Works

When you visit a website in the browser or ping or FTP or telnet or do any networking operation, your computer needs to convert the (fully qualified) domain name into an IP address. This section shows how that happens, with commands so that you can try it yourself.

For the commands, you’ll need to open up the terminal on Mac or Linux or the command prompt on Windows. To do this on a Mac, go to Applications ? Utilities ? Terminal. In Ubuntu Linux, go to Applications ? Accessories ? Terminal. On Windows, go to Start ? Programs ? Accessories ? Command Prompt.

Note that in DNS, both smashingmagazine.com and www.smashingmagazine.com can be called “domain names8.” But the latter, www.smashingmagazine.com, could also be called a “host name” or a “fully qualified domain name” or just a website address. This article mostly uses the term “domain name.”

1. Ask Your Local Name Server

Let’s say you want to visit www.smashingmagazine.com. Within its many networking settings, your computer has stored the IP address of a local domain name server. Its first step is to ask this name server for the answer.

On Mac and Linux, you can run the following command to find out what your name server is:

cat /etc/resolv.conf

On Windows, the command is:

ipconfig /all

Screenshot
What the command looks like in Linux.

In this case, my computer sends a request to 192.168.1.1, something along the lines of, “Oi, 192.168.1.1! What’s the IP address for www.smashingmagazine.com?”

2. Your Local Name Server Doesn’t Know

Let’s say that the local domain name server, 192.168.1.1, is brand spanking new. It has never been asked anything before, let alone for the IP address of www.smashingmagazine.com. It knows very little. In fact, the only things it knows are the IP addresses of the root name servers9. You can find out everything it knows using the NsLookup command.

On Mac, Linux and Windows, run the command shown below. The -type=ns tells NsLookup to only return information on name servers. And the dot at the end tells it to look up root name servers.

nslookup -type=ns .

This will return the names and IP addresses of a handful of root name servers. If you’d like to see what’s holding the Internet together, Wikipedia has a picture of one of these very important computers10.

Screenshot
A list of the Internet’s very important root name servers.

3. So, It Asks a Top-level Domain Name Server…

Your local name server extracts the last part of the requested domain name, which is com in this case. This is called the top-level domain or TLD. Others are net, gov, uk, fr, ie and de.

Your local domain name server picks one of the root name servers listed above and asks it something like, “Excuse me, 193.0.14.129. If you don’t mind, where would I find information about .com domains?”

You can see the sort of answer it would receive by running this command:

nslookup -type=ns com 193.0.14.129

Screenshot
This is a list of TLD name servers for com domains.

4. … And Gets Redirected to a Lesser Domain Name Server

It’s nearly there. Your local name server now asks one of these TLD name servers something like, “Hi, 192.52.178.30. Do you know where I should go for stuff on smashingmagazine.com?”

You can see the answer to this question by running NsLookup again:

nslookup -type=ns smashingmagazine.com 192.52.178.30

This returns a list of name servers for the domain smashingmagazine.com. The word authoritative means that these name servers are the definitive place to go for DNS information on smashingmagazine.com.

Screenshot
Running the NsLookup command.

5. Get the IP Address

So, now your local name server goes to one of these name servers. It has arrived at the first part of the requested domain name, the www, so it no longer needs the name servers; it’s ready for the actual data. Now it can ask one of those name servers, “Hola, 79.140.49.11. Can you tell me the IP address of www.smashingmagazine.com? Cheers!”

Run the NsLookup command again, using the IP address of one of the domain name servers from above, but without the type=ns this time:

nslookup www.smashingmagazine.com 79.140.49.11

Screenshot11
Bingo! Now your local name server knows that www.smashingmagazine.com translates into 80.72.139.101.

6. Remember It For Next Time

Your local domain name does not want to have to go through all that rigmarole again any time soon. So, it caches (i.e. stores) everything it has learned, including the IP addresses for TLD servers and the IP address of www.smashingmagazine.com.

So, the next time you ask for a com domain, such as www.google.com, it needs to repeat only steps four and five above. And the next time you (or anyone else using your local name server) asks for www.smashingmagazine.com, it doesn’t need to do anything; it just replies with the IP address that it has already remembered.

But it won’t remember that translation forever. Eventually, it will forget and have to repeat some or all of the steps above. You can use the dig command to find out how long it will remember.

On Mac and Linux, run this:

dig www.smashingmagzine.com

Windows users will need to use an online version of this tool12, because Windows does not come with the dig command.

Screenshot13
Digging Smashing Magazine.

In the Answer Section, is a line starting with www.smashingmagazine.com (the thing you asked about) and ending with the translated IP address. The number in the middle is the number of seconds before your local name server forgets about this domain and has to repeat steps four and five above. In this example, it is 238 seconds:

;; ANSWER SECTION:
www.smashingmagazine.com.  238  IN  A  80.72.139.101

This caching on your local name server is responsible for part of the DNS delay. In this case, even if Smashing Magazine changed its IP address right now, your computer wouldn’t know about it for at least 238 seconds, when the local name server would have to recheck its sources.

If you use the online tool, then you are not checking your personal local name server, but rather you’re checking that website’s local name server. You can run a slimmer version of this command:

dig +nocmd www.smashingmagazine.com +noall +answer

Also note that in all of the commands above, you could have provided the name of the name server rather than the IP address. NsLookup would have translated it for you.

7. Send the Answer Back to Your Computer

Finally, your local domain name server sends the answer back to you at 80.72.139.101. Your computer and/or browser might also cache this translation, so that the next time you ask for www.smashingmagazine.com, it doesn’t even need to ask the local name server.

Now your computer will embark on another amazing process to communicate with the computer at the address 80.72.139.101 and ask it for a Web page. Your computer will essentially send a request down its network cable (or over its wireless connection), and ask your broadband router something like, “Can you please ask 80.72.139.101 to send me the home page for www.smashingmagazine.com?”

Your broadband router will send the same request along its network cable to the next router. This process will keep repeating. At some point, some large networking device will have several cables connected to it and will follow a rule like, “Requests for any IP addresses starting with less than 100 should go down cable #1. Everything else down cable #2,” and so on, until the request finally gets to 80.72.139.101. And the reply will be sent back in the same way.

You can follow this journey using the traceroute command on Mac and Linux and tracert on Windows:

tracert 80.72.139.101

Time To Live

The caching in step six above is the main cause of the DNS delay. Any given translation (of a Web address into an IP address) has a property called “time to live” or TTL. This tells domain name servers how long they are allowed to cache the translation before having to look it up again.

You can find out what the TTL for a given (fully qualified) domain name is using the dig command, instructing the command to use the domain name’s name server, like so:

dig @a.regfish-ns.net www.smashingmagazine.com

Screenshot14
Finding out the time to live, which in this case is 1800 seconds, or half an hour.

The Answer Section shows that www.smashingmagazine.com has a TTL of 1800 seconds:

;; ANSWER SECTION:
www.smashingmagazine.com. 1800	IN	A	80.72.139.101

That is, your local domain name server will remember this for 1800 seconds. If Smashing Magazine suddenly decided to change its IP address, your local domain name server could hang onto the old IP address for up to 30 minutes.

The command also specifies how long to remember that a.regfish-ns.net is a name server for smashingmagazine.com:

;; AUTHORITY SECTION:
smashingmagazine.com.	86400	IN	NS	a.regfish-ns.net.

If Smashing Magazine suddenly decides to change its name servers, your local domain name server would hang onto the old name server for up to 86,400 seconds, which is one whole day. Only then would it ask for the new name server, and only then would it ask the new name server for the new translation.

Moving A Website

And now for the grand finale! This section ties together all of the above to explain the delay. Three sections ago, we had an in-depth description of how to buy a domain name and set up the DNS. This section looks at what happens when you change the IP address of an existing address.

1. Find Out the Name Servers for the Domain

First, you need to know which name servers your domain uses. You can use the nslookup or whois command or an online networking tool15. In this example, I will change the IP address of test.stockashop.co.uk.

nslookup -type=ns stockashop.co.uk
whois stockashop.co.uk

The name servers for this domain are listed as ns.rackspace.com and ns2.rackspace.com.

2. Change the IP Address

Editing a DNS entry
Changing the IP address for an existing address record at Rackspace.

To actually make the change, you will need to log into the website of the company that manages your name servers, as in the section far above. Then find the (fully qualified) domain name that you want to move, and click on something like “Edit DNS Settings” or “Advanced DNS.” Then find the address record you want to change, and edit and save it.

3. Check Whether the Change Has Been Processed

Your DNS change will be processed after a few minutes or hours, depending on the company. To check if and when the change has been processed, you can use the nslookup command to query the name server directly. This bypasses your own local name server and gets the information straight from the horse’s mouth. You can also use an online tool16, submitting the domain (test.stockashop.co.uk in this case) and server (ns.rackspace.com).

nslookup test.stockashop.co.uk ns.rackspace.com

Keep running this command until it comes back with the new IP address. This particular change with Rackspace took 10 to 20 minutes. This is the first part of the DNS delay, and it could take anywhere from 0 to 24 hours.

4. Check How Long You Have to Wait

Eventually, the authoritative name servers for your domain will be changed, and it will return the new IP address. Then you can use the dig command to find out how long until your own name server reflects the change:

dig test.stockashop.co.uk

Look in the Answer Section. It will give you the IP address that it thinks is correct (ending in 33 in this case), and the number of seconds until this expires (91).

;; ANSWER SECTION:
test.stockashop.co.uk.    91    IN    A    92.52.106.33

After the 91 seconds have passed (which felt a lot longer than 91 seconds as I was actually doing it), the answer will suddenly change. The IP address will be the new one (ending in 34), and the number of seconds will reset back to about the time to live (1799 in this case, or 30 minutes).

;; ANSWER SECTION:
test.stockashop.co.uk.  1799    IN    A    92.52.106.34

Now you can restart your browser (to clear its internal cache) and visit the address. Your browser should go to the new IP address and the moved website.

You can also use an online dig17 to test this, although you will be using its name servers instead of your own; so even if it returns the correct IP address, you (or your client) may have to wait a bit longer.

Most DNS entries have a time to live of 86,400 seconds, which is 24 hours. This will add another 0 to 24 hours of delay, with an average of 12 hours. So, the total delay could be between 0 and 48 hours.

Note that the process is similar when changing the name servers for a domain. You can use nslookup or dig to keep track of the changes.

Minimizing The Delay When Moving A Website

There are a few techniques for shrinking the delay, or eliminating it entirely. Please comment if you have any other suggestions.

1. Make the Delay Immaterial

If the website is static and never changes, then having an exact copy on both the old and new hosts will be sufficient. Visitors won’t be able to tell whether they are seeing the old or new one. Or, if you are in a position to shut down dynamic content (such as turning off the comments on a blog for a weekend), then you can make your website static for the duration of the transfer period.

2. Update the Database Across the Internet

All big websites use a database that updates frequently based on user events, such as blog comments and items in shopping baskets. When moving this kind of website, it is possible to subject only the files (HTML, PHP, ASP, etc.) to the DNS delay, and not the data. As above, make an exact copy of the website’s files on the new host. Then configure the new host to access the database still residing on the old host (which may require some firewall configuration). Then make the DNS changes and wait out the delay. Then, at a convenient time, when few people are using the website, transfer the database.

3. Change the TTL

An alternative is to lower the time to live for the transfer. The TTL is usually set to a day to avoid a lot of unnecessary Internet traffic, and many registrars and hosting companies do not let you change the TTL. But some do, such as Rackspace (as seen above), and this alone could be the deciding factor for your choice of a DNS.

You can change the TTL from 86,400 seconds to 300 seconds (5 minutes), and then wait a day for all name servers around the world to learn about this change. Then copy the website and database across as quickly as possible, make the DNS change, and everyone should know about it within five minutes. Then change it back to 86,400 seconds. (Some hosts, like Rackspace, do this automatically after a few days.)

Email

If you have to transfer email accounts along with the website, the easiest way to do this is to set up the email addresses on the new mail server (i.e. the server that stores the emails, which is usually the same as the Web server), and then change the DNS MX record (which specifies which server handles the email for the domain) on a Friday afternoon. By Monday morning, everyone will know about the change, and you can download all of your email one last time from the old mail server, change your email preferences to reflect the new mail server (and your passwords, if they have changed), and then start checking your email on the new server.

This only applies to POP accounts on which no mail is left on the server. IMAP accounts are more difficult; you’ll have to copy all of your emails off the old server first, and then reupload them to the new server. There are other more immediate methods as well, such as changing the TTL or specifying MX records for both the old and new mail servers at the same time.

Conclusion

The 24 to 48-hour DNS delay is caused by two main factors:

  1. The time it takes your registrar or host (or other company) to process your DNS request, which could be anywhere from a few minutes to 24 hours. Before this happens, nobody anywhere has any chance whatsoever of knowing about the change.
  2. The time it takes for your personal name server to learn about the change, which can vary from instantly to the time to live (usually 24 hours). The delay from this will be different for everyone.

Hopefully this article has given you a solid understanding of the basics. Please feel free to comment if you have anything to add or suggest.

(al) (il)

Footnotes

  1. 1 http://www.123-reg.co.uk/
  2. 2 http://www.icann.org/en/registrars/accreditation-process.htm
  3. 3 http://www.networksolutions.com/whois/index.jsp
  4. 4 http://www.ecowebhosting.co.uk/
  5. 5 http://coding.smashingmagazine.com/wp-content/uploads/2011/05/change-nameservers-full.png
  6. 6 http://coding.smashingmagazine.com/wp-content/uploads/2011/05/add-dns-full.png
  7. 7 http://www.123-reg.co.uk/domain-names/total-dns-control.shtml
  8. 8 http://en.wikipedia.org/wiki/Domain_Name#Domain_name_syntax
  9. 9 http://en.wikipedia.org/wiki/Root_nameserver
  10. 10 http://en.wikipedia.org/wiki/File:Ams-ix.k.root-servers.net.jpg
  11. 11 http://coding.smashingmagazine.com/wp-content/uploads/2011/05/www.smashingmagazine-name-servers-original.png
  12. 12 http://networking.ringofsaturn.com/Tools/dig.php
  13. 13 http://coding.smashingmagazine.com/wp-content/uploads/2011/05/dig-smashing-magzine-original.png
  14. 14 http://coding.smashingmagazine.com/wp-content/uploads/2011/05/dig-smashing-magzine-auth-original.png
  15. 15 http://whois.domaintools.com/
  16. 16 http://www.kloth.net/services/dig.php
  17. 17 http://www.kloth.net/services/dig.php

↑ Back to topShare on Twitter

Paul Tero is an experienced PHP programmer and server administrator. He developed the Stockashop ecommerce system in 2005 for Sensable Media. He now works part-time maintaining and developing Stockashop, and the rest of the time freelancing from a corner of his living room, and sleeping, eating, having fun, etc. He has also written numerous other open sourcish scripts and programs.

Advertising

Note: Our rating-system has caused errors, so it's disabled at the moment. It will be back the moment the problem has been resolved. We're very sorry. Happy Holidays!

  1. 1

    Thank you for sharing. This is very useful.

  2. 2

    Roderik van der Veer

    May 25, 2011 6:31 am

    Regarding the TTL, not all ISP adhere to the TTL provided. Telenet, one of the largest ISP in Belgium does not do low TTL. So while reducing the TTL is a very good tip, it’s not a sure fix for the delay.

  3. 3

    Another tip – if you do change the TTL, keep in mind that the suggestion above to change it back eventually is important too. It is a very small amount of overall net traffic, afaik, but it still counts, and we can all be fair about it.

    This is a GREAT article to share with clients that are having any type of DNS issues. I often end up assisting clients with outside hosts and web design firms that just bring me in to help ease them through the angst, and I will be adding this article to my stable.

  4. 4

    Great article! As it is something fairly hard to explain to clients I will probably use this as a guide for them!

    On a sidenote I have had incredibly bad service from 123-reg regarding DNS in the past… including a 2 week propogation period :/

  5. 5

    useful, thanks.

  6. 6

    wow…just what I need. Thanks for the brilliant post!

  7. 7

    Really interesting post.

  8. 8

    Very nice article…

    Minor typo in: 5. Get the IP Address, shouldn’t it say –

    “Hola 79.140.49.11″ instead of “Hola 80.72.139.101″
    and
    nslookup http://www.smashingmagazine.com 79.140.49.11 instead of nslookup http://www.smashingmagazine.com 80.72.139.101

  9. 9

    ohh man, i could really use this article a few months ago :))
    it is really important to understand how DNS works, therefore i think this article is a must!

  10. 10

    Outstanding article! Clear and easy to understand. I’ll be bookmarking it for reference if any of our clients have questions about DNS. Thanks!

  11. 11

    nicefull article for an messy issue. thanks for that!

    best regards
    p.

  12. 12

    I have learned this the hard way and the easy way. As a developer I dread when a client tells me they want a CMS system and then tell me they use GoDaddy. They are just too slow for the simplest of systems. A sigh of relief is shown when I see they don’t use their e-mail. Changing the NS is an easy process that way. But when they do use that as their E-Mail. Boy….that just sucks…I have found a fairly simple system that I use.

    Before I do anything I e-mail the client and explain everything to them. I let them know their e-mail may go down, there is no way around it, but that they have 2 choices.

    1. They can allow me to set them up temporary e-mails on the new host.
    2. They can have to deal with the downtime

    Depending on the choice I find as long as they are warned they seem to understand. From this point I get the MX records, add them to the new hosting, wait about 2-3 hours, then switch the NS. Last time I did this it went flawlessly. Either way, I find that the best way to avoid anything is to just hope they choose our hosting provider and we don’t have to deal with awful hosts.

    Great article, this is an incredibly annoying issue that we all have to deal with at times. Great to see that the way I’ve been doing things isn’t right or wrong and that there are many ways to deal with it.

  13. 13

    Good article. I thought I was at the end an the it just kept going with more useful information!

    Question on TTL. Is there any reason not to set your TTL really high, say 2 days to a couple weeks and then just set it back before you transfer?

  14. 14

    Nice use of the Northampon Yellow Pages! I got mine through the post the other day.

    Are you from Northampton by any chance?

  15. 15

    Windows users needn’t go online to find an alternative to the dig command.

    You can use ipconfig /displaydns on windows to view your local DNS cache.

  16. 16

    Underground Media

    May 25, 2011 12:43 pm

    You nailed this, what a great article. I will definitely share this with everyone that assumes that web development and hosting is simply a case of cut and paste.

  17. 17

    You might want to mention how users can override DNS with their local hosts file. This is very helpful in development environments.

  18. 18

    Very useful and detailed article.
    It is also useful to remind users that they can change DNS server on their local machine to speed up the process and/or avoid disruptions of their local provider.
    My article about this:
    http://linuxblog.darkduck.com/2011/05/alternative-dns-services-pro-and-contra.html

  19. 19

    Great article, thanks for the in-depth info RE: DNS. It’s always a hard thing to get your head around let alone explain to someone!

  20. 20

    A great bookmark to have on hand for checking how DNS has propagated in different areas of the world is http://www.whatsmydns.net, while it doesn’t give the full picture of every DNS server in the world, a decent sample is generally a good indication and especially useful if you’ve made an error as you can fix it before it fully propagates in some cases.

    Check out DNS for Smashing Mag: http://www.whatsmydns.net/#A/www.smashingmagazine.com

  21. 21

    Panayiotis «prince» Velisarakos

    May 25, 2011 11:53 pm

    Very informative article! It’s good to know how things work under the hood. Bookmarked!

  22. 22

    Awesome, thanks for a great article.

  23. 23

    Thank you for pointing those out. Smashing Magazine changed their IP address just before the article was published, so I had to make some last minute corrections, and I was a bit too enthusiastic! We’ll fix them.

  24. 24

    I think the only disadvantage with a really high TTL is if you needed to move the website suddenly – eg if your host goes bust. And in case you forgot when it came time to transfer.

  25. 25

    Well – I had to choose somewhere. So might as well be the place I was born :)

  26. 26

    Thank you for all the great feedback! I’d like to reiterate the following tips:
    -For viewing DNS cache information in Windows: ipconfig /displaydns
    -For DNS propagation: http://www.whatsmydns.net/. More useful for moving popular websites, as less popular ones might not be in their caches to begin with.
    -Local hosts files: on Windows, Mac and Linux, you can provide override any DNS lookup in the Hosts file – which is very good for testing a website before or during a DNS change.
    -Local name server: you can also change your name server

  27. 27

    Iris Ljesnjanin

    May 26, 2011 12:48 am

    Yes, thank you for the note, Sanjay! The errors have been fixed =)

    Iris Ljesnjanin
    ~ Smashing Editorial Team

  28. 28

    Really nice, thanks! Very helpful to patch the knowledge holes.

  29. 29

    Might have been nice to explain about host files, so that developers can see the site on the new host before it goes live.

    Also a couple idea’s if you control your own server (private / virtual root)

    Using Apache, we set-up a proxypass directive, edit the local server hosts file, then do a graceful restart. This then proxies traffic though the current server to the new host.

    As for email, we tend to set the machine to become a ‘seconday MX’ server which queues the mail until the new primary mail server is ready to receive it. Because we run send mail, we achieve this using a mailer table.

    Hope this helps someone.

  30. 30

    Hi,

    Nice article. I wrote a very similar one a while back and touched on the Authoritative and Caching aspects of DNS a little deeper. I also touch on the construction of a zone file as I believe web developers need to understand this if only at a high level. They also need to understand this in a very accessable way.

    Not wishing to link spam but I believe this may work very well as a companion read.
    http://www.danfast.net/2010/08/15/on-the-subject-of-dns/

    I think its great that your article is getting such good feedback and proves that this type of information is very usefull, perhaps DHCP next?

    Cheers

    Dan

  31. 31

    Couldn’t formulate it better. It’s informative, easy to understand and yet it is complete enough to grasp the full picture! Respect for the author.

  32. 32

    some handy stuff

  33. 33

    Peter | Drupal Video Tutorials

    May 26, 2011 6:37 am

    good stuff, very informative. Always had a basic idea but never anything this in depth to rely on when explaining these types of issues to clients. I’m sure I’ll be coming back to it repeatedly for some of the commands listed.

  34. 34

    Thanks Dan. Yes – that’s a good article, and I like the mobile analogy. I don’t think I know enough about DHCP to write about it – it’s the sort of thing you only find out about on the rare occasions when it breaks .Thanks for the suggestion though.

  35. 35

    Very, very useful article, Paul. Thanks for the detail.

  36. 36

    Just recently, I had a client with a sucky host. For their new website I suggested it would be best to move it to a new server because their old server didn’t even support PHP.

    To transfer the domain, an email was sent bij DNS to confirm. Although the person who registered their domain 10 years ago is dead and nobody can access his email…

    And ofcourse, I’m to blame because I can’t fix it.

    Anyone who has ever had the same problem?

  37. 37

    Hi, Nice article! I am just about to change my server. I need to do all these things. Though if you or anyone can tell me something about cname, or If I able to use two A record. Or how could I change blog dot something dot com to another machine that would be really helpful :)

  38. 38

    This was super helpful and informative. I don’t find time to read entire articles very often, but this one I did.

  39. 39

    Nice article, thanks! It has given me much more understanding on this issue than I had before.

    Could anybody help me with the question that is quite close to this topic? I’ll describe the situation… I have a webhosting at godaddy.com. I have a website working there, which uses the domain (let it be domain.com) purchased with it also there at godaddy.com. And I’ve set up another website there, which uses the 3rd level domain (let it be mywebsite.domain.com). I want to purchase a 2nd level domain in my country (let it be mywebsite.md), and it can’t be done via godaddy, I need to buy it here, via the national company. And what I want is that the domain in my country (mywebsite.md) will be pointing to this second website at godaddy (mywebsite.domain.com). So the question is: how this could be done, if I want not only the redirect from national 2nd level domain to the 3rd level domain at the .com zone, but also want the url of my website will be fully mirrored when opening the website through both domains? So that mywebsite.md/folder/index.php will lead precisely to mywebsite.domain.com/folder/index.php… Can anybody give me an insight on this? I understand that I have to work with DNS records, but what precisely I need to make – I do not know, and haven’t managed to find the answer yet.

    Thanx in advance.

  40. 40

    I recently bought a .com domain for my tennis training website from my hosting co and the .com.sg from another seller. I wish I’d know about all this at the time as it took me a few days to figure it all out and it may have been because I didn’t realise the changes take so long to propogate that I kept thinking I was doing something wrong.

    Zubair
    athenatennis.com.sg
    Nurturing talent and creativity in kids.

  41. 41

    Hi,

    I suggest you look into HTTP 301 redirects and Apache URL Re-Write.

    Cheers

  42. 42

    I’ve posted an article a while ago, of how to setup apache to send traffic to the new server immediately. If the site is your primary concern, I think this solution is very efficient and simple.

    http://www.littlewebthings.com/2010/08/faking-a-very-fast-dns-change-and-propagation/

  43. 43

    Thanks, loved the article.

    Btw, if you got chrome, you can see this information in the about:dns

    simply type chrome://about/dns/ in the address bar.

    Also chrome://net-internals/#dns

    Thanks again.

  44. 44

    Why oh why has it taken until the second decade of the new millennium for someone to explain all of this in a concise yet comprehensive and comprehensive way?

    Well done.

  45. 45

    Thanx, Dan! Looks like I got it. I just need to rewrite url all the time to show always only the url with 2nd level domain. Although I do not see this clearly, but now I have a direction to go into. So thank you for the insight.

  46. 46

    Its really usefull !!!!

  47. 47

    Yeah, good timing, we have just changed up our website and I now know what was going on (and what was going wrong). Cheers,

  48. 48

    Wow, fantastic article. This is a topic that is often very confusing–and difficult to explain to a client. THANKS!

  49. 49

    If you use a 3rd party for your DNS, then updating is much faster than updating DNS with your registrar most of the time.

  50. 50

    Really Nice stuff! I have some confusion in DNS but thanks to that article. :) Now all cleared

  51. 51

    Thanks for that link. I didn’t know that you could use [P] to mimic a proxy. You might also suggest adding a temporary header so that search engines don’t happen to index the website as migration_temp.your-domain-name.com. Thanks for all the other comments too.

  52. 52

    Good Article. Thanks for sharing the info

  53. 53

    Hiren Khambhayta

    June 2, 2011 6:12 am

    Thanks Paul Tero, for such a great article

  54. 54

    Paul,

    Thank you very much for the great article.

  55. 55

    Darryl ODonnell

    June 7, 2011 4:48 am

    Excellent article – I’m bookmarking this to share with my clients. Thank you

  56. 56

    Darryl ODonnell

    June 7, 2011 4:53 am

    This is a common problem. I always make sure the domain registrar has the correct email contact BEFORE I do a transfer. What you can do is have the client contact the registrar to get the email changed. It will involve faxing identification, business letterhead etc. to prove ownership of the domain.

  57. 57

    Justine Doerner

    June 13, 2011 7:46 pm

    Great Article! I too am bookmarking and will share the link to your page/article to others to pass this excellence along!

  58. 58

    Awesome article. I was just complaining yesterday that I don’t know enough about nameservers, DNS transfers etc. This has cleared up a lot of confusion for me and therefore my clients as well. Thanks!

  59. 59

    This is an excellent article. I would recommend this! Keep it up guys.

  60. 60

    Great article. It cleared a lot of things up for me too.
    But im puzzled about something – when i do the same final nslookup that you do, the ip i get points me to noupe.com. I tried asking the other dns servers but i get the same result.
    While following the same procedure, I got some funny results. For example the ip that nslookup gave for my domain campote.com points to my webmail instead. Huh?

  61. 61

    Great Article.
    Thanks for sharing your experience in the subject.

  62. 62

    It’s good to see that you’re peaprred for an outage but I don’t see any reason for anyone rushing off to change their DNS nameservers. Just for the record, though BlockAid’s intentions seem good, both their DNS servers finished dead last on my computer in DNS Benchmark, a DNS name resolution speed test for Windows, against about 100 other servers. My ISP’s servers finished in first and second place. The average cached name retrieval speed, which is what is most important, was 13 milliseconds for both the ISP’s servers. It was 156 and 167 milliseconds for the two BlockAid servers, which is much slower a factor of around 12:1.You might want to perform the test on your own computer before changing anything, because this would definitely slow down your internet browsing speed. You have to add the 2 BlockAid servers given on the configuration page.In any case, you wouldn’t really have to, or want to, change over to their servers now. You can always do so if and when this domain name gets snatched. Then you can add the new IP address to your hosts file and change back to your regular DNS servers.

  63. 63

    From a tihaneccl standpoint.The likes of blockaid are manually maintained DNS servers, ie. they will refuse BIND updates from peer DNS servers, other than established un-seized sites (Yahoo, blah blah). Filters are set for vulnerable sites likely to be seized, like OneD. They get cancelled.DNS has no influence on your assigned IP address, that’s down to your ISP.Manually setting these DNS servers ensures that you will always get onto OneDDL.com.The government, whatever country can down the URL, but not the IP address (unless it’s a public hosting site, don’t ask it is extremely complicated).Technically, releasing and re-newing IP addresses (ipconfig /re . will over-write your DNS settings). MACs seem to only like 2 DNS servers and do the Windows thing, unless you lock your settings.

  64. 64

    That article I mentioned has now moved here;
    http://www.shiftscape.com/internet/how-does-dns-work/

  65. 65

    Superb explanation – thank you so much !

  66. 66

    I cannot see simple and clear explanation than this anywhere on the internet :-)
    Wonderful article!

  67. 67

    The administrative contact with the registrar has to be changed. If the clients billing information was used this should be trivial. Unfortunately, that’s usually not the case. You’ll most likely have to provide proof that the other guy (original developer or technical contact, I presume) or his estate do not hold the legal rights to that domain and are unavailable.

    This is why I always register a domain with my client’s billing information, then use generic email accounts both parties have access to (along with automatic forwards to private addresses).

    Note: There’s a mandated delay, 45 days if I’m not mistaken, after a contact change before you will be able to transfer the domain to a different registrar. All other functionality the original registrar provides, like NS records, should still work just fine.

  68. 68

    This would be possible at a decent host for free, I’m not sure about GoDaddy since they are pretty much bottom of the barrel for anything other than basic registration.

    In your hosting account (GoDaddy) look for an add-on domain and enter your .MD domain. This tells that server, “if anyone asks you’re the phone book for this domain, you need to send them to IPADDRESS”. It should also create a subdirectory within your hosting account for this domain and alter the VirtualServers for your web server. So when the request gets to your IPADDRESS, there’s an old man there named Apache and his job is to dial the phone for you. The request will ask for your .MD domain and old man Apache will say “Yep, right here in the /home/username/www/example.md directory”.

    Now, put an .htaccess file with a 301 redirect that sends people from example.md to sub domain.example.com. You see the towns really grown in size since Old Man Apache got his job, he’s not very good at keeping track as things change. So, the townspeople started to put .htaccess signs up to tell visitors more information or if they’ve moved elsewhere. A 301 tells browsers and, more importantly Google, “we’ve moved from example.md to my domain.example.md for good, we won’t be back”. It’s the same family, just a different house; this is an important distinction! No one likes clones! If you happen build a house just like another (design), or worse clone a family (content), you’ll get removed from all the lists that tell visitors how to find you. Even if it’s your own house or family, and even if it’s on accident!

    Now, at your .MD registrar, point the name servers to GoDaddy (”your phone book is over there”) and everything will work out fine, plus your hosting will be consolidated into a single place (albeit a very shitty, slow moving, expensive town… New Orleans maybe?).

  69. 69

    Wonderful article, thank you!

    Ray
    Redford, MI USA

↑ Back to top