Date: Mon, 7 Dec 1998 19:04:38 -0600 (CST) From: Tony Kimball <alk@pobox.com> To: net@FreeBSD.ORG Subject: Re: resolver behaviour Message-ID: <13932.30101.788469.964960@avalon.east> References: <alk@pobox.com> <199812080031.QAA10114@salsa.gv.tsc.tdk.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Quoth Don Lewis on Mon, 7 December:
: So if you discover that one of netscape.com's servers is broken, you're
: going to add a non-broken server to for netscape.com to your /etc/resolv.conf?
: Then when you find another broken server, you'll add another entry to
: /etc/resolv.conf, etc.
My expectation, on the basis of anecdotal experience, is that
two should be quite sufficient, if chosen well. Name servers
at widely separated locations in the DNS graph rarely (if ever!
for I have never seen it happen) suffer common corruption.
: NXDOMAIN replies are issued by servers that have been configured to
: be authoritative for the zone in which the name resides and that name
: is not listed in the zone file.
...and by servers which have been misconfigured, or are plain buggy,
and all those who rely upon those servers.
Quoth Mike Jenkins on Mon, 7 December:
: So the new resolver algorithm would sort of look like this?
:
: for i in nameserver-list
: do
: answer=query $i
: case answer in
: timeout) ;; # try next nameserver
: NXDOMAIN) ;; # try next nameserver
: *) break ;; # got answer
: esac
: done
: return answer
Thanks. This is what happens in practice today, only the looping is
done by hand by the end-user, instead of in the library. I think such
an algorithm introduces too much latency into bad requests (i.e. ones
for which NXDOMAIN is correct), though. When a person does it
manually, they do it because they *know* the request is valid, and the
server is broken.
read nameserver-list
set alarm at timeout
pausetime = timeout / N
nx = null
select-list = null
trap eintr {
if nx == null return timeout
else return nx
}
for i in nameserver-list
do
query i
push i select-list
select on select-list for pausetime
for answer in pending replies
do
case postive(answer):
return answer
case NXDOMAIN:
nx = answer
continue
done
end loop
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?13932.30101.788469.964960>
