The problem is that web servers are frequently located in one place and everyone in the world is trying to get to it.
The solution is to replicate the data in serveral data center throughout the network. Then you somehow get the clients to find the "closest" servers. This is hard. How to do it?
Assumption:
Soltuion one:
Solution two:
The Cisco DistributedDirector is another solution. It uses routing metrics to decide which server is closest.
Avi has a router-based solution.
Both solutions presented during this talk have a problem with established TCP sessions being reset when a problem occurs that interrupts connectivity between the endpoints of the TCP session.
Each web server tells the router via IGP its own public /32 into the web-border router.
Tunneling is used to connect up the various web sites over the same public IP address.
To handle the TCP redirects, the session redirects to a unique port on a per server basis.
Assumption: the internal network on which the web servers exists is more stable than the rest of the Internet.
Advantages:
Disadvantages
It would be a good idea to have the DNS server monitor the http server. Why don't you do this?
There is a project at John Hopkins to study this.
The Cisco Product monitors port 80 and if it dies it will move it to the bottom of the list if it does not find it.
MCI has been doing the DNS hack for what it is, but trying to add to many other factors will make it overly complex. The Cisco approach or Hopscotch might be a better long-term approach.
Someone else thinks that DNS is the right place.
Paul Vixie notes that there is no guarantee that the order in which the responses are returned will be the order in which the client will choose addresses to try. He also notes that it is impossible to triangulate in the Internet because there are an infinte number of dimensions available.