Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

It seems like you're always dependent on some hosting provider being available. Even if you servers are geo-redundant across data centers, you still have a DNS record that points to some IP address and it will be resolved by some DNS server that can disappear any second. Is there a solution for this? I've seen people suggest DNS load-balancing with some mechanism for detecting downtime and doing failover. Which DNS provider offers this? And does it still rely on one of its data-centers not being down?

Assuming everything behind our first line of contact (LB proxy) is already geo-redundant - is there really a feasible way to take care of that last step?

share|improve this question

migrated from stackoverflow.com May 22 '11 at 5:34

This question came from our site for professional and enthusiast programmers.

    
Related: serverfault.com/questions/60553/… –  Assaf Lavie May 22 '11 at 5:54
    
more related: serverfault.com/questions/69870/… –  Assaf Lavie May 22 '11 at 5:55

2 Answers 2

Actually, there can be several DNS servers serving a certain domain, take a look at the domain stackoverflow.com:

$ nslookup -type=ns stackoverflow.com
Server:     192.168.0.1
Address:    192.168.0.1#53

Non-authoritative answer:
stackoverflow.com   nameserver = ns3.serverfault.com.
stackoverflow.com   nameserver = ns1.serverfault.com.
stackoverflow.com   nameserver = ns2.serverfault.com.

Authoritative answers can be found from:

$

The domain names under stackoverflow.com can be resolved by three name servers, so even if one or two of them went down, the domain names can still be resolved.

share|improve this answer
    
doesn't this rely on the browser to "do the right thing" and correctly try alternative DNS servers in case the IP it has already resolved is suddenly unavailable? –  Assaf Lavie May 22 '11 at 5:54
    
@Assaf Yes, this relies on OS, or the ISP's DNS servers of users to "do the right thing". –  Raymond Tau May 22 '11 at 6:11
    
But what happens if the DNS gave the browser an IP address of a machine in a data center that a moment later has gone down. Why would the browser retry different DNS servers? Won't it just assume the host is unreachable? –  Assaf Lavie May 22 '11 at 16:38
    
I think it should see host is unreachable in this case. Until the cached IP address from DNS lookup timeout, which is determined by the TTL value in the query. You can see the TTL from dig output: ;; ANSWER SECTION: stackoverflow.com. 1115 IN A 64.34.119.12 In this case, the TTL is 1115 seconds. –  Raymond Tau May 22 '11 at 16:59
    
So unless I have a really tiny TTL this means the user experiences downtime until it expires. Seems like a sub-optimal solution.. basically eliminates DNS cache altogether. –  Assaf Lavie May 22 '11 at 17:11

The RFCs which make recommendations for DNS servers suggest using at least three name servers placed in logically and geographically diverse locations to avoid exactly that problem. The IP addresses published for those servers can also be set up with IP anycast so servers at a variety of locations can share the same IP address. Routing around failures is pretty much automatic when the proper routing is used (i.e. one location that is tied to that IP goes down and traffic is simply directed to another automatically). The root DNS servers and many of the major TLDs are set up this way to resist failure and be resilient against DDoS attacks. It is how services such as OpenDNS have close to 100% uptime even when serving billions of queries.

Companies have spent millions of dollars on redundant infrastructure to reduce downtime, but failures can still happen, often in unexpected ways related to the human factors involved rather than the technological factors.

share|improve this answer
    
What happens if after the DNS query yields an IP address of a proxy server this server goes away? Will a browser know to perform a DNS query again? Or will it just see an unreachable host? –  Assaf Lavie May 22 '11 at 16:37
    
That depends on how that IP address has been deployed. If it's a single IP to a single box and that box fails, then it would be unreachable. If it's shared among multiple boxes and one of them fails, then it would still be reachable. (For example, I have a pair of linux-based firewalls that share an IP; if one fails then the other will see that and take over automatically; this will all depend on the equipment you have deployed). If it's deployed to multiple locations using IP anycast, then the failure of any one location can still be survived. –  Justin Scott May 23 '11 at 22:10

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.