When I use the term "DNS Round Robin" I generally mean in in the sense of the "cheap load balancing technique" as OP describes it.
But that's not the only way DNS can be used for global high availability. Most of the time, it's just hard for people with different (technology) backgrounds to communicate well.
The best load balancing technique (if money is not a problem) is generally considered to be:
- A Anycast'ed global network of 'intelligent' DNS servers,
- and a set of globally spread out datacenters,
- where each DNS node implements Split Horizon DNS,
- and monitoring of availability and traffic flows are available to the 'intelligent' DNS nodes in some fashion,
- so that the user DNS request flows to the nearest DNS server via IP Anycast,
- and this DNS server hands out a low-TTL A Record / set of A Records for the nearest / best datacenter for this end user via 'intelligent' split horizon DNS.
Using anycast for DNS is generally fine, because DNS responses are stateless and almost extremely short. So if the BGP routes change it's highly unlikely to interrupt a DNS query.
Anycast is less suited for the longer and stateful HTTP conversations, thus this system uses split horizon DNS. A HTTP session between a client and server is kept to one datacenter; it generally cannot fail over to another datacenter without breaking the session.
As I indicated with "set of A Records" what I would call 'DNS Round Robin' can be used together with the setup above. It is typically used to spread the traffic load over multiple highly available load balancers in each datacenter (so that you can get better redundancy, use smaller/cheaper load balancers, not overwhelm the Unix network buffers of a single host server, etc).
So, is it true that, with multiple data centers
and HTTP traffic, the use of DNS RR is the ONLY
way to assure high availability?
No it's not true, not if by 'DNS Round Robin' we simply mean handing out multiple A records for a domain. But it's true that clever use of DNS is a critical component in any global high availability system. The above illustrates one common (often best) way to go.
Edit: The Google paper "Moving Beyond End-to-End Path Information to Optimize CDN Performance" seems to me to be state-of-the-art in global load distribution for best end-user performance.
Edit 2: I read the article "Why DNS Based .. GSLB .. Doesn't Work" that OP linked to, and it is a good overview -- I recommend looking at it. Read it from the top.
In the section "The solution to the browser caching issue" it advocates DNS responses with multiple A Records pointing to multiple datacenters as the only possible solution for instantaneous fail over.
In the section "Watering it down" near the bottom, it expands on the obvious, that sending multiple A Records is uncool if they point to datacenters on multiple continents, because the client will connect at random and thus quite often get a 'slow' DC on another continent. Thus for this to work really well, multiple datacenters on each continent are needed.
This is a different solution than my steps 1 - 6. I can't provide a perfect answer on this, I think a DNS specialist from the likes of Akamai or Google is needed, because much of this boils down to practical know-how on the limitations of deployed DNS caches and browsers today. AFAIK, my steps 1-6 are what Akamai does with their DNS (can anyone confirm this?).
My feeling -- coming from having worked as a PM on mobile browser portals (cell phones) -- is that the diversity and level of total brokeness of the browsers out there is incredible. I personally would not trust a HA solution that requires the end user terminal to 'do the right thing'; thus I believe that global instantaneous fail over without breaking a session isn't feasible today.
I think my steps 1-6 above are the best that are available with commodity technology. This solution does not have instantaneous fail over.
I'd love for one of those DNS specialists from Akamai, Google etc to come around and prove me wrong. :-)
It's not uncommon for the name servers to exist somewhere other than the Registrar. Many web hosting companies tell customers to move their name servers to the web hosting company (some may even require it although there's no technical requirement for a web host to also host the DNS). Many "individual" web hosters also tell their customers to move their name servers (foolishly, because web hosters aren't typically good at hosting DNS and probably shouldn't do so).
The key is to update the A record at the DNS host that is authoritative for the domain. Right now, that appears to be ns59.1and1.co.uk
and ns60.1and1.co.uk
. So your client should have a login for 1and1 so that they can edit the A record there. If they don't then they'll need to contact 1and1 to get a login. I'm assuming that 1and1 hosted their web site at one point. Your client could also move their name servers back to the Registrar. They'll need a login at the Registrar to do that.
EDIT
This is a topic that I find confuses a lot of people so I'd like to clarify a few things:
When a domain name is registered there are typically four major components/entities involved:
1. The Registrar - This is where the domain is registered. The Registrar has ultimate authority of the domain name (registration, renewal, suspension).
2. DNS Host - This is where the name servers and DNS zone and records exist. What name servers are authoritative for the domain name?
3. Web Site - Where does the web site exist?
4. Email - Where does email for the domain go?
In today's market where providers want to "be all things to all people" it's not uncommon to have a single entity handle all four of these components, but there's no technical requirement to do so.
For example: I have several domain names registered via Network Solutions. Network solutions is the registrar and if I so choose they can also host my DNS namespace (the DNS zone for my domain name - this is where the authoritative name servers are), they could also host my web site and my email if I so choose. But that's not a requirement. I happen to have my DNS zone (again, the authoritative name servers) hosted at DynDNS. I host my web sites and my email myself. So you see that in my case there are three different entities involved: 1.
Network Solutions, who is the Registrar. 2.
DynDNS, who hosts the DNS zone for my domain. 3.
Me, who hosts my web sites and my email.
The point of all of this being: the name servers can be hosted by anyone who provides that service. It does not have to be the Registrar. It can be, and often is, the entity that hosts the web site. In your case it looks like 1and1 hosted the web site at some point and probably had the customer move their name servers to 1and1.
Best Answer
The term you're looking for is CNAME, and the answer to your question is both yes and no.
First, here's an example of how a CNAME works in a zone file.
Now you just need to update the
server1
record in order to move bothserver1
andwww
to the new IP address.The CNAME doesn't have to point to an address within the same domain; it could also look like this:
Now, when you update the A record for
server1
in the zoneexample.org
, the record forwww.example.se
will follow along without any further configuration.The bad part, from your point of view, is that this does not work for the apex record - that means the "bare" domain. In other words, you can make
www.example.com
into a CNAME, but you can't do that withexample.com
. This is because when you use a CNAME record, you can't have any additional records for that entry - meaning that you can't have mail server records, or name server records... meaning that the domain will stop working.The best-practice solution is to use some kind of configuration management software, such as puppet, chef or ansible, to generate the zone files from a template. If, for some reason, that is not possible for you, then I'd use a script to replace the IP addresses in all files.
You'll also want to reduce the TTL value for the domain in due time before the migration. (And don't forget to update the serial number of the zone file - I have, and it's very embarrassing...)