In message <mpatton=1996Jul22151319@bart.bbn.com>, "Michael A. Patton" writes:
The _protocols_ DO support this (although "cleanly" could be questioned). Very few clients have ever attempted to implement it, and few of them even came close to getting it right...although there were some pretty good examples a decade ago...
You're right... I forgot that "sortlist on steroids" could really solve this. Maybe it's time for bind and gated to be married? :) Another kludge I was thinking of that would almost work is to set DNS like this: www IN NS www1 www IN NS www2 www IN NS www3 Then each of www1, www2, www3 have different zones for www that list only themself. Then let bind figure out the one with the best rtt. Biggest problem is convergence -- which could be assisted if the clients actually timed out their DNS. They're arguably broken now -- they do a single lookup and use it forever (after renumbering web servers I've seen packets for the old address up to a month later -- I'm guessing people who don't restart their browser frequently, and it still has the old address cached).
Of course, the weak link here is allowing the client to make this decision. Most clients use the stupidest algorithm available, which is pick one (and only one, another violation) of the addresses, essentially at random, and use that. This has as likely a chance to pick the worst one as it does to pick the best one.
Rumour has it that netscape will have this fixed in an upcoming version. At least they'll time out one address and move on to others. Which is good news for those of us already doing multi-A record "load balancing".
(*) And a clearly "unclean" way, which will work with existing clients, is to take a routing prefix and distribute _that_ around.
Yeah I thought of this, but worried about hosts "on the edge" where more than one route is equally preferable and any sort of instability causing one of the routes to flap would be enough to "break" connections randomly. Dean