Occasionally, you will find yourself in a situation where you have to transfer DNS records from one set of name servers to another. It is not a technically difficult process, but one that must be handled with the greatest care so that you don’t leave your company (or your client) without email or access to their website for hours or days.
What does ‘transfer DNS records’ mean? All of the DNS records for a given domain (i.e. binarywar.com) are managed on the authoritative name servers for that domain. That means all of the ‘A’ records, MX, TXT, SPF and every other kind of record (except for your reverse PTR!) are stored primarily on a certain group of servers that are authoritative for your domain. You can find out the name servers for your domain a couple of different ways:
- Log in to the registrar account where you have registered your domain name (i.e. GoDaddy, Register.com). In the control panel or settings for the domain, you can see the name servers. Unless you changed them, they are likely set to the defaults for your registrar. For Godaddy, they will be something like ns25.domaincontrol.com and ns26.domaincontrol.com
- Use an online tool like MXToolbox or Hexillion, which will show you your domain’s name servers and will probably be quicker than having to log in to your registrar account.
There are several reasons why you might need to change those name servers to something else:
- You need to consolidate a domain name obtained through a company merger into another registrar account that you normally use. For instance, your company acquires another company who has their domain name xyzcompany.com registered with GoDaddy, and all of your existing domains are at Network Solutions. You would actually transfer the entire name, xyzcompany.com from GoDaddy to your Network Solutions account. The name server change will actually happen as part of the domain transfer from one registrar to another.
- You have a hosting company for your website and they “require” that you set the name servers for your domain to point to their name servers. This is not really true; they don’t HAVE to have control of your DNS records. All they really need is for your to point the ‘A’ record for domainname.com and www.domainname.com to their web server (depending on what your domain name is, of course). But that is a little bit of a tangent. For the purpose of this post, let’s just assume that you are changing your name servers to point to your web host.
- You need to have a reverse lookup zone and the only way that your ISP will create one for you is if they host your DNS for you, a la AT&T. This is also not something that you HAVE to do. Again, kind of a tangent. So, let’s assume that you are changing your DNS servers to point to your ISP so they can create a reverse zone for you.
If you are in one of these situations, or are just moving your DNS servers around for the fun of it, here is what you should do:
- Find all of the DNS records that exist for your domain on the current name servers. If you have access to some kind of ‘DNS Management Console’ in your registrar account, like at GoDaddy or Network Solutions, this is where you need to go. Record or export a list of all the records that exist and where they are pointed. The most important records are where the root domain name itself is pointed as well as ‘www’ and of course your MX records. If your name servers are pointed at something outside the control of the registrar, you won’t have any kind of DNS management console. In this case, the only way to get a complete list of all the DNS records (aka a full zone listing) will be to contact the entity that manages the name servers that your domain is pointed at currently. Most likely, this is going to be whomever does your website hosting. Just contact them and ask for a full DNS zone listing for your domain.
- At least 3 days before you change the name servers, change the Time-To-Live (TTL) values of your most critical DNS records to 3600 seconds (1 hr.) or less. The TTLs dictate how long other DNS servers that have looked up your ‘A’ or MX records can cache them. TTLs are also why you always hear the butt-covering statement or warning that “it can take 48 – 72 hours for DNS changes to propagate”. A lot of TTL values are set to 86400 seconds (1 full day). If multiple levels of DNS servers from your name servers have cached these records, it can definitely take 2 – 3 days for any changes to those records to propagate. So, if you change these to much lower values (3600 seconds), the changes you make will propagate in 2 – 4 hours at most, rather than 2 – 3 days. Now, if you are just moving the name servers, and are not actually making changes to any of your DNS record values at the same time, then you shouldn’t even have to worry about this. But better safe than sorry. If something goes awry, and someone on the other end doesn’t recreate all of your DNS records as you specify, recovery can occur much more quickly if the TTL values are set very low. I’m just sayin’….
- Provide the full listing of DNS records for your domain to the company to which you are transferring the name servers. If you are transferring to another account/registrar that you already control, you can’t really do this (I’ll mention more on that later in this post). If you ARE transferring the name servers to someone else and out of your control, make sure they get your list and they understand what it is for. You’d be surprised at how little some people at hosting companies, who deal with DNS records all the time, actually know about DNS. There are usually some people on the back-end that know what is going on, but sometimes the front line people….don’t.
- Verify the DNS records have been created in the new location. If the 3rd party guys have done their job, they will have recreated all the DNS records you gave them and have provided you with at least two server addresses where your DNS records are hosted. You should use nslookup or dig to verify that each of the DNS records you asked them to create exist and are accurate.
- Set Expectations. Whether this is your company or a client, you should set some expectations with regard to what is going on. This is a very important step. You don’t necessarily need to explain this whole process and how DNS propagation works, but you should let them know that changes are being made and that the potential exists for disruption of certain things like access to the website and email. Get contact information for the decision makers and/or your points-of-contact at the company so you can relay information to them in some form besides email in case you run into problems.
- Switch the name servers or transfer the domain to new registrar. This is cutover time; start biting your fingernails. This is where you actually go into your registrar account and switch the name servers from (example) ns25.domaincontrol.com to whatever addresses were given to you by the 3rd party. Or, you are transferring the domain to another account you control. You should periodically check to see what name servers are listed for your domain using one of the methods I mentioned at the beginning of this article. Now, as I said before, if you are just transferring the domain to another registrar and you will have control of the DNS records there, this is the point at which you would go into the DNS management console at the new location and recreate all the DNS records yourself. If you have any trouble getting into the new DNS management console, call the registrar as soon as possible to resolve any problems.
- Test, test, test. Check the name server and do DNS lookups using various methods throughout the evening/weekend after the change until you see that everything has propagated. Check access to your website. Send test emails to and from addresses on the domain in question. If there are any problems, contact the registrar or the 3rd party company hosting the records immediately. It would be a good idea to have after hours contact info for the people involved so you know you can get a hold of someone in a pinch.