Question About Terminology - DNS
This is a discussion on Question About Terminology - DNS ; Greetings listers and news-groupies,
This is a fairly long post, so if you're not interested, feel free to
move on.
I'm working on some reference material and I'm trying to describe the
various software components that make up the functioning ...
-
Question About Terminology
Greetings listers and news-groupies,
This is a fairly long post, so if you're not interested, feel free to
move on.
I'm working on some reference material and I'm trying to describe the
various software components that make up the functioning DNS we know
and love. I'm having some trouble with names.
In RFC's 1034 and 1035, Paul Mockapetris wrote about resolvers and
name servers. But there are actually three different jobs the way
things are usually implemented on the modern Internet:
- The client library (+ optional caching service, e.g. DNS Client
Service on Windows)
- The authoritative name server, which hosts zones and answers
iterative queries about them
- The name server that performs recursion
Mr. Mockapetris' almost 20-year-old RFC's describe recursion as
mostly the job of the resolver, but it's a bit vague about exactly
what the resolver is. It's pretty clear that the thing he meant has
evolved into the library + optional caching service we see on client
machines, but the words could be argued to apply nearly as well to a
name server that performs recursion.
My question really is, what do we call the third part of the puzzle,
the go-between service that looks up names on behalf of client
machines? Conceptually, it's a proxy, similar to a web proxy server
or outbound SMTP server.
For a long time, I and some of my colleagues have been calling it a
"smart resolver". And we've been calling the client library a "stub
resolver". But I want to know if this is common usage, or if common
usage is still to refer to the client library as a "resolver"; in
which case, again, what do we call the name server that performs
recursion? I definitely don't want to just call it a name server,
because an authoritative name server is also a name server. And yes,
I know that both this job and authoritative name service can be done
by the same process (e.g. named).
I'm looking for a well-reasoned argument, based on the RFC's and on
the actual meanings of words, to apply reasonable and differentiated
names to the three components. Unless your name is Mockapetris, I'm
not interested in an argument based on "because I said so".
Chris Buxton
Men & Mice
-
Re: Question About Terminology
Chris Buxton wrote:
> Greetings listers and news-groupies,
>
> This is a fairly long post, so if you're not interested, feel free to
> move on.
>
> I'm working on some reference material and I'm trying to describe the
> various software components that make up the functioning DNS we know
> and love. I'm having some trouble with names.
>
> In RFC's 1034 and 1035, Paul Mockapetris wrote about resolvers and
> name servers. But there are actually three different jobs the way
> things are usually implemented on the modern Internet:
>
> - The client library (+ optional caching service, e.g. DNS Client
> Service on Windows)
> - The authoritative name server, which hosts zones and answers
> iterative queries about them
> - The name server that performs recursion
>
> Mr. Mockapetris' almost 20-year-old RFC's describe recursion as
> mostly the job of the resolver, but it's a bit vague about exactly
> what the resolver is. It's pretty clear that the thing he meant has
> evolved into the library + optional caching service we see on client
> machines, but the words could be argued to apply nearly as well to a
> name server that performs recursion.
>
> My question really is, what do we call the third part of the puzzle,
> the go-between service that looks up names on behalf of client
> machines? Conceptually, it's a proxy, similar to a web proxy server
> or outbound SMTP server.
>
> For a long time, I and some of my colleagues have been calling it a
> "smart resolver". And we've been calling the client library a "stub
> resolver". But I want to know if this is common usage, or if common
> usage is still to refer to the client library as a "resolver"; in
> which case, again, what do we call the name server that performs
> recursion? I definitely don't want to just call it a name server,
> because an authoritative name server is also a name server. And yes,
> I know that both this job and authoritative name service can be done
> by the same process (e.g. named).
>
> I'm looking for a well-reasoned argument, based on the RFC's and on
> the actual meanings of words, to apply reasonable and differentiated
> names to the three components. Unless your name is Mockapetris, I'm
> not interested in an argument based on "because I said so".
>
> Chris Buxton
> Men & Mice
>
>
Attempt #1
1. Stub resolver or client - begins the query.
2. Recursing / caching name server - gets answers for stub resolver query.
3. Authoritative name server - ultimately answers the recursing /
caching name servers query.
Flame away.