TJG> I'm told that anycast is the natural solution, but I find little on TJG> the net (or in books) on this. (Though there's more info on geodns, TJG> which I'm told is like a "poor man's anycast.")
There's very little out there on anycast, as it's not really a designed function of the routing protocols. People are just exploiting the way the protocols work by sending packets to the nearest destination. Very Roughly: To set it up, basically just set up a set of servers with the same addresses, and dynamic routing protocols will send packets to the 'nearest' destination. Wikipedia's article on anycast has links to various whitepapers on it. FYI: ISC is one of the largest users of it for one of the root DNS servers (F) out there, and has published quite a few papers on it. TJG> I thought I could use a DNS server which polls server health (only TJG> serving addresses that are up), but I'm told this is a bad idea for TJG> reasons I don't yet grasp. The main reason/problem is caching that you don't control. You'll find that (major) sites and end point clients will ignore your TTLs and cache IPs way beyond what you want. DNS failover does work, but isn't as "clean" as you'll want. You'll find people going to the wrong site all the time, so plan accordingly! Cheers, Ross.