Subject: [DNSOP] Please review the definitions around "recursive" in terminology-bis

From: "Paul Hoffman" <[email-masked]>
Date: Mon, 12 Mar 2018 08:09:27 -0700

Greetings. The definition of "recursive resolver" has been problematic 
both in RFC 7719 and in draft-ietf-dnsop-terminology-bis. Section 6 of 
draft-ietf-dnsop-terminology-bis defines a bunch of terms about servers, 
including "recursive mode" and "recursive resolver". The current text 
gives:

    Recursive mode:  A resolution mode of a server that receives DNS
       queries and either responds to those queries from a local cache 
or
       sends queries to other servers in order to get the final answers
       to the original queries.  Section 2.3 of [RFC1034] describes this
       as "The first server pursues the query for the client at another
       server".  A server operating in recursive mode may be thought of
       as having a name server side (which is what answers the query) 
and
       a resolver side (which performs the resolution function).  
Systems
       operating in this mode are commonly called "recursive servers".
       Sometimes they are called "recursive resolvers".  While strictly
       the difference between these is that one of them sends queries to
       another recursive server and the other does not, in practice it 
is
       not possible to know in advance whether the server that one is
       querying will also perform recursion; both terms can be observed
       in use interchangeably.

    Recursive resolver:  A resolver that acts in recursive mode.  In
       general, a recursive resolver is expected to cache the answers it
       receives (which would make it a full-service resolver), but some
       recursive resolvers might not cache.

That is, "recursive mode" is only barely defined in RFC 1034, and 
"recursive resolver" is defined almost trivially.

Can these be improved on? This is one of the core ideas in the DNS 
protocol and it seems a bit weird that we don't have a crisp set of 
definitions. If there is more text from RFCs to quote, that would 
possibly be a big help.

--Paul Hoffman

---

From: Joe Abley <[email-masked]>
Date: Mon, 12 Mar 2018 11:28:24 -0400

On 12 Mar 2018, at 11:09, Paul Hoffman <[email-masked]> wrote:

> Can these be improved on? This is one of the core ideas in the DNS protocol and it seems a bit weird that we don't have a crisp set of definitions. If there is more text from RFCs to quote, that would possibly be a big help.

One detail that could be included (even if just as a brief reference) is the relevant signalling with RD/RA flags. The relevant text is in RFC 1034 4.3.1 and RFC 1035 4.1.1 

Joe

---

From: P Vix <[email-masked]>
Date: Mon, 12 Mar 2018 17:21:48 +0000

No cc. I call them full resolved not recursive resolvers. I thought 1034 also did.

On March 12, 2018 3:09:27 PM UTC, Paul Hoffman <[email-masked]> wrote:
>_______________________________________________
>DNSOP mailing list
>[email-masked]
>https://www.ietf.org/mailman/listinfo/dnsop

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

---

From: "Paul Hoffman" <[email-masked]>
Date: Mon, 12 Mar 2018 10:39:54 -0700

On 12 Mar 2018, at 10:21, Vix wrote:

> I call them full resolved not recursive resolvers. I thought 1034 also 
> did.

Not really. Please see the full text of Section 6 to see the state of 
"full resolver" and "full-service resolver".

The term "recursive resolver" is used in a zillion other places, so 
defining it here will help readers understand the DNS.

--Paul Hoffman

---

From: Evan Hunt <[email-masked]>
Date: Mon, 12 Mar 2018 18:10:34 +0000

Yes please. I'd start off by noting that "recursive" (like "resolver") is
used in several different ways and a single clear definition isn't
possible.

"Recursive mode" is currently defined as "receiving a query and then either
answering from a cache or sending a query to other servers" -- which seems
overly broad to me; it could include a caching forwarder, which isn't what
I think of as "recursion", though of course others may differ.

The RA and RD bits are defined as "recursion desired" and "recursion
available", which at least implicitly suggests that "recursion" means
whatever a server does in response to those bits.

RFC 1034 discussed "recursive" and "iterative" as separate and distinct
concepts in distributed database design... but the DNS uses an iterative
process to implement recursion. A "recursive resolver", "iterative
resolver", and "full resolver" are pretty likely to be the same thing.
(This isn't very clear from the definitions of either "recursive mode" or
"iterative mode" in the current text, btw. See the terminology section in
RFC 4697.)

I don't think any one explanation can meaningfully reconcile all of
these; I think we need a list of possible meanings, and maybe a
Venn diagram, discussing the various shades of meaning in "stub",
"recursive/recursion", "iterative/iterating", "forwarder/forwarding",
"validator/validating", "cache/caching", and "resolver", so that
there's a good chance someone can guess at the meaning when several
of those words are chained together, as they often are.

I don't have any text to offer at the moment, but I'll give it some
thought.

-- 
Evan Hunt -- [email-masked]
Internet Systems Consortium, Inc.

---

From: Paul Vixie <[email-masked]>
Date: Mon, 12 Mar 2018 14:13:59 -0700

> "full resolver" and "full-service resolver".

huh.

> defining it here will help readers understand the DNS.

as long as you don't try to call it a recursor, we'll have no trouble 
between us.

-- 
P Vixie