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

I guess this question could be entitiled, how do CDN's work at the DNS level but the real problem I have is that my company has datacenters in three continents and we have to have europe.xxx.com us.xxx.com and asia.xxx.com

CDN's typically send you to the local datacenter I imagine depending on your IP address. This must be a DNS thing where you have the DNS server in USA send you to a USA datacenter for the same xxx.com DNS lookup?

Am I wrong? If I am wrong about this, how would I do this effectively and if possible without central (non DNS) servers?

share|improve this question
3  
You shouldn't: queue.acm.org/detail.cfm?id=1647302 –  e-t172 Nov 30 '09 at 18:59

4 Answers 4

The trouble with CDNs is that they don't direct you based on your own IP address - they direct you based on the IP address of your DNS server... That could be completely wrong. And do read Paul Vixie's ACM article, it's bang on the money.

Anyhow, if you've already got region.example.com set up and running, you could consider doing an HTTP redirect from example.com to the relevant webserver, based on the client's IP address.

That's pretty much what Google does, it's how I end up at google.co.uk having typed in google.com.

Do also ensure though that you provide a means for clients to get to the other variations. Clients don't like it when they're forced to a particular site, whether by mistakes in the Geo databases or simply because they actually need to see the site from another region.

share|improve this answer

There are a number of ways to handle this, but they all boil down to figuring out where an IP address is, and pointing it accordingly. For example, you might specify a range of IPs for North America and one for Europe. If the IP requesting the information (from DNS, your webserver, your content server, etc.) falls in the European range, then your European servers should get the requests.

share|improve this answer
    
Ben, what do you mean? Do you mean I have a DNS server in the US and one for instance in the UK. When I think about DNS I simply set my A record and I am done. How can I specify these DNS servers on a regional basis? –  Stewart Robinson Nov 30 '09 at 18:47
    
I believe what he's referring to is something like views in bind. You could setup different views inside DNS that match based on the client's IP address, which can be roughly identified as belonging to a geographic region. There are many services available that you can pipe a request to an API and get a location from. Looking around briefly, you might try hostip.info/dl/index.html for a lower/no cost option. –  Greeblesnort Nov 30 '09 at 21:23
    
just happened to run across this in my evening browsing: blogs.techrepublic.com.com/networking/… –  Greeblesnort Dec 1 '09 at 2:42
    
@Stewart -- no, you would not run one DNS server per region. Well, you could, but that would be for redundancy, as the DNS system itself is location-bline. @greeblesnort's answer is almost as good as his name. :-) –  Ben Doom Dec 1 '09 at 23:33

You could setup a default main page at example.com. The first time someone visits they select which region they want to be directed to. This is the same way that www.ups.com works.

The user can select a check box to make this his/her default choice from that point on, thus storing the selection in a cookie.

This gives you to benefit of using DNS in the manner it was designed for according to Paul Vixie, while allowing your user to make the most accurate decsion on which data center they should be directed to.

share|improve this answer

Newer CDNs (Cloudflare, MaxCDN, fast.ly) use anycast for both DNS and actual content servers. This is somewhat better than trying to use the source IP of a DNS query and an ever changing mapping database.

In theory using anycast for both the DNS and content servers allows the network itself to find the "closest" servers to the client. In Practice, this is mostly true, but some weird cases arise where people in Singapore will hit edge servers in California instead of Hong Kong due to the ever-changing peering relationships between ISPs.

Anycast is hard to do well. See https://www.maxcdn.com/blog/anycast-ip-routing-used-maxcdn/ for more information.

Older CDN like Akamai and Limelight generally use anycast to get you to the closest DNS server, but then take the guess-based-on-source-IP approach. This doesn't work as well in my experience, especially if a client is using DNS severe that aren't actually nearby in the network topology. However, a huge established CDN like Akamai has hundreds of content server locations, so returning a "close enough" answer results in a decent user experience. Obviously, having hundreds of sites is very expensive, which is why none of the all-anycast CDNs chose that route. Consequently, They also don't charge as much for mostly-equivalent service.

share|improve this answer

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.