Tuesday, 18 August 2009

Putting a site live with third-party domain management

Recently, Redwire created a holding page for one of its newest clients. Their hosting is currently managed by a third party company and, because of our dependence on that third party, we were unable to put the site live when the client most needed it. This document has been written so that the lessons learned from that experience are shared and that the problems encountered are not repeated; it is reproduced by kind permission from the company's wiki as an example of a best-practice guide for other hosting companies.

Check ownership of the domain
It is important that the owner contact for the domain is the client. To check this, you can use an online WHOIS , which queries the Internet name registration databases in order to find the owner, administrative contacts and Domain Name System servers for the domain in question. Using somedomain.com as an example, the results are as follows:
[Querying whois.internic.net]
[Redirected to whois.tucows.com]
[Querying whois.tucows.com]
[whois.tucows.com]
Registrant:
Somecompany Ltd
1 Any Street
Anyville, Anyville A1B 2CD
UK

Domain name: SOMEDOMAIN.COM
[...]
In the above example, you can see a number on ''Querying'' entries. These indicate that control of the information is delegated from the central InterNIC repository to the domain registration company TuCOWS. A quick Google search would tell us that that Somecompany Ltd is the rightful owner of the domain; in this example, this is clearly not going to work. In the real world, this information will allows us to proceed, knowing that we have are working with the rightful owner of the domain.

Check where the DNS records are hosted
Going back to the WHOIS results, the nameservers for the domain will always be listed. This is without exception as without nameservers listed within this record, a domain cannot be used to provide services. In our example, these are listed as follows:
Domain servers in listed order:
NS1.US.DOMAIN.NET
NS1.UK.DOMAIN.NET
In our example, these are hosted by a fictional company. You can usually find out who manages these servers by pasting the domain name part into a browser - if the hosting company has set up redirects following good practice guidelines, you will see the name of the company. From here, you need to acquire their support contact email address and fax number, if listed. You may have to telephone them in order to get these details as you will need them later on.

Check the DNS TTL
Once you know who owns the domain and who manages it, you need to find out about how long the delay is between changing the domain's DNS entry and when that change will go live. This is governed by the Time to Live setting, which is configured on a per-domain basis and can be queried using a simple online tool. Using our example, access the tool and enter the hostname www.somedomain.com in the DNS Lookup / IP lookup box. The result should appear as follows:
Domain                 Type TTL Answer
www.somedomain.com. A 86400 123.123.123.123
In this result (with the IP address changed for this example) the TTL is set to 86400 (24 hours in seconds) and this is fairly normal. Almost all DNS servers will allow you to change this but it is easier to assume you cannot; often there are strategic reasons why domains set configured like this and domain name hosting companies will not change this. So, in short, what this means is that you need to update the DNS records for the domain 24 hours in advance of when you want the site to go live.

Check the client's web hosting
By the time you read this document, you should have the client's web site ready to go on the live hosting platform. This means that the servers will be configured to answer requests for ''www.somedomain.com'' that they receive via the IP address ''123.1.123.1'', the default IP for Codewire 2. Using the Domain Name System, browsers will look up the address for the web site and therefore know which IP address to send their request to. In order to test that things are fully functional, we need to bypass this lookup as the correct entries won't be live yet. To do this, we can edit the local hosts file, which is queried before DNS servers as part of a search chain mechanism. The procedure to edit this file varies depending on the operating system of you workstation, as follows:

Microsoft Windows XP
  • Click on Start, then Run or push Windows Key-R
  • Enter the following:
    notepad c:\windows\system32\drivers\etc\hosts
Linux
This file is only editable as the root superuser; to edit, enter the following:
[justin@justin ~]$ sudo vim /etc/hosts
In all cases, you will see a file with the following content, ignoring lines that begin with a # comment marker:
127.0.0.1       localhost
The above line is essential for normal system operation; do no remove or tamper with this line. As a general rule, do not delete or change anything in this file that you did not enter yourself. A good rule of thumb is to create a section with your initials and date (for shared systems) or by using comments to group together entries, the latter of which we will follow in this example. Add the following:
# Codewire 2 Testing
123.1.123.1 www.somedomain.com
As you can see, there is a space or tab between the numeric entry and the name we are associating with it. The number of spaces or tabs here is ignored, so feel free to add as much or as little as you need in order to make your hosts file clear and legible. If you come back to this later and it's unreadable, it's going to cost you time trying to work out what an entry is for.
With this entry in place, close any browser windows that you have open and open a new one. Most modern browsers cache DNS entries in order to improve performance, so if you've tried to access the site before you added the hosts file entry, you will probably find yourself looking at the old web site. Browse to the site you entered into the hosts file and you should see the correct web site. If you don't, go back and check the hosting set-up on the live platform before trying again.

Remove HOSTS entry
Once you have validated that the site is hosted correctly on our servers, you need to remember to go back and remove the hosts entry to added. You can either comment it out using a # marker at the beginning of the line, or remove in completely.

As the site is managed by a third party, you will need to request that the company responsible for managing the domain name on behalf of your client change the DNS entries. To ensure that the message is clear, describe the DNS changes you want to make using BIND format, as follows:
somedomain.com      IN A 123.1.123.1
www.somedomain.com IN A 123.1.123.1
This format is used because it allows for no error; unless there is a typo in one of the entries, it should be understood by any systems administrator as it is the most commonly used format on the Internet. For more details on this format, see Wikipedia's zone file entry.

Have a backup plan
As you are requesting a third party to take action on your behalf, you must assume that this may not happen as planned. To avoid any problems, you can ask your client to email or fax the support team for the company who host the DNS records so that the change is made directly on their behalf. This is a normal process for hosting companies, but you should contact their support team first to find out the best contact method for your client and their response time. You should tell the client about this in advance and write an email or fax for them ready to send, just in case something goes wrong with the third party company.

Send secondary request
When requesting changes from the third party, always request a confirmation email to say that the change has been made. You can use the DNS lookup tool to check whether the change has been done, or you can call the support team for the DNS hosting company to ask if the request has been queued and when it will be actioned. At this stage, if the hosting company say they have no such request, you can ask your client to dispatch the email or fax you have already prepared and ask the hosting company for a time you can call back to check that they've received and actioned this request.

Conclusion
This may seem like a very convoluted process but executing these steps takes only a few minutes once you get used to the process and will allow you complete confidence that you have done everything in your power to make your site go live. Your client may feel empowered by being a part of a process that most non-technical people have no idea about and, because you are able to explain this process and how you are covering all bases, they will feel confident that they are talking to capable people.

No comments:

Post a Comment

Feel free to add any thoughts on here; comments are not moderated, so please take as much care with your words as I do.