<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Continuing on Paul's input:<div><br></div><div>First: Consider the labor costs involved with multiple "cookie cutter" distributed wherever convenient and affordable.</div><div><br></div><div>Second: Consider the labor cost to configure and maintain such a DNS cluster. Add the inter-system bandwidth costs. Don't forget creation of new test and verification processes.</div><div><br></div><div>Third: Do a statistical analysis of your server query-response performance.</div><div><br></div><div>Last: Compare the costs determined in the first two elements above, including the customer-visible difference in performance divided by the cost difference.</div><div><br></div><div>Considering that most user queries tend to bunch around common DNS targets, you will most likely not find a business case your management will accept.</div><div><br></div><div>Loosely paraphrasing from <span class="Apple-style-span" style="font-family: Arial; font-size: 16px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><a href="http://books.google.com/books?id=LLASPR_zlAAC&printsec=frontcover&dq=human+use+of+human+beings&sig=WOxYK68RpuV0fSNJpujTy3ReK0I" style="color: rgb(0, 0, 204); ">The <b>Human</b> <b>Use</b> of <b>Human</b> <b>Beings</b>: Cybernetics and Society</a></span></div><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><font><span style="line-height: 1.2em; "><span class="ln2" style="color: rgb(103, 103, 103); "><font class="Apple-style-span" face="Arial">by Norbert Wiener, "Optimize the man, not the machine." </font></span></span></font></span><div><br></div><div> <br><div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div>James R. Cutler</div><div><a href="mailto:james.cutler@consultant.com">james.cutler@consultant.com</a></div><div><br class="khtml-block-placeholder"></div><br class="Apple-interchange-newline"></span></span></span></span><br class="Apple-interchange-newline"></span></div></span> </div><br><div><div>On May 7, 2008, at 5:29 PM, Paul Vixie wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><blockquote type="cite">My email servers each have a local DNS cache + recursive resolver, to<br></blockquote><blockquote type="cite">simplify administration and spread the load. The disadvantage is that one<br></blockquote><blockquote type="cite">server might spend ages doing a full recursive lookup when another one<br></blockquote><blockquote type="cite">already has the answer. It would be nice if a server could reduce latency<br></blockquote><blockquote type="cite">by asking the other members of a cluster if they already have an answer.<br></blockquote><blockquote type="cite">Something like the co-operative cacheing that was implemented for HTTP.<br></blockquote><blockquote type="cite">Has anyone done this?<br></blockquote><br>most recursive nameservers, including BIND, have a similar sounding<br>technology called "forwarding". this is where a single network-facing<br>server front-ends a set of recursive "forwarder" servers that are then<br>used by clients. this is non-ideal since it's not high-availability<br>which is what it sounds like you want.<br><br>one could theoretically offer a "forward-first, recursion-undesired,<br>short-short-timeouts" config option, to opportunistally fetch an answer<br>from a "nearby" server, and then head out to authority-land otherwise.<br>this has terrible scaling properties for even small sets of servers,<br>since every member of this server-set would have to do this before every<br>upstream query they made. you could do it with 2, maybe 3, but not with 4.<br><br>there is an ideology out there called "distributed hash tables" which i<br>know opendns.com uses to solve exactly this problem. there's no standard<br>protocol for it, and the F/L/OSS DNS DHT software i've seen is research<br>quality and is oriented toward authority rather than recursive server sets.<br><br>what i've been thinking about for a couple years now is a way to send each<br>upstream answer received by a recursive nameserver, to other recursive<br>nameservers who are thought of as "administratively nearby", so that all<br>servers would have a chance to cache things that any server was asked. i<br>don't know how this would interact with an LRU replacement strategy, since<br>i don't know whether another server's need for an upstream datum counts as<br>a "use" in that it should cause an LRU replacement the way our own upstream<br>data would do.<br><br>unless the cliff between "nearby" and "not nearby" is very tall+steep, you<br>are probably better off letting every recursive nameserver in your network<br>fend for itself.<br><br>_______________________________________________<br>dns-operations mailing list<br><a href="mailto:dns-operations@lists.oarci.net">dns-operations@lists.oarci.net</a><br>http://lists.oarci.net/mailman/listinfo/dns-operations<br></div></blockquote></div><br></div></body></html>