Subject: draft-ietf-ipngwg-dns-lookups-04.txt

From: Robert Elz <[email-masked]>
Date: Wed, 14 Jul 1999 17:35:05 +0200

Matt,

As we discussed in the hall today ... doing name to address translations
using A6 records has an interesting new property that might bear some
explicit mention in the doc, and perhaps might impact upon some of the APIs.

This isn't strictly a DNS issue, the DNS properties don't change as such,
but as the library functions (gethostbyname() etc) are generally considered
to be DNS related, I have cc'd this to namedroppers, as well as to the
ipng list.   I think that replies should be confined to the ipng list
(so hopefully Randy will oblige and not allow any through to namedroppers...)

The issue is that with A6 it becomes possible (without having to stetch
your imagination towards absurdities) for the resolver interface (the thing
that converts A6 records into 128 bit addresses for the application) to
return a partial set of the addresses owned by the name that was being
looked up.

With correctly functioning servers, that never happens with A (or AAAA)
records, if a server returns you any of them, it should be returning you
all of them (they're an RRSet in DNS speak, and such a thing is always
supposed to be treated as a unit).

But while the A6 records at any node in the DNS tree will be a RRSet,
they can require extra processing to produce the 128 bit result, and,
some of that processing might take longer than other parts.

I don't think this is a bad thing, in fact it is probably a good one,
provided that applications are aware it can happen, and hopefully, provided
there's a way that the application can decide for itself whether it prefers
an address, any address, as quickly as possible, or whether it wants the
resolver to work as hard as it can and return every address that the DNS
suggests should reach the name in question.

Since the doc in question here isn't an API doc, saying a lot about this
in there probably isn't appropriate.   It most probably is appropriate to
mention the issue though.

kre

--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [email-masked]
--------------------------------------------------------------------

---

From: Bob Halley <[email-masked]>
Date: Wed, 14 Jul 1999 11:50:28 -0700

> return a partial set of the addresses owned by the name that was being

Yes.  For example, it won't be uncommon for some A6 chains for a name
to be complete in a cache, while others are incomplete.  Even if the
cache at one time had all the chains complete, some of the chains may
subsequently have become incomplete because a link was purged due to
TTL, signature validity period, or because the space was needed in the
cache.  A smart application would like to be able to try to use what's
in the cache right now, since one of the addresses will probably work,
and the delay of getting all of the addresses can be avoided.

> suggests should reach the name in question.

Applications which say "give me something quickly" must be prepared to
wait longer if their connection attempts with the quick answers fail.
If they don't wait, they could turn what might have been a small delay
into failure.

Simple applications won't want to worry about things like this, so
some kind of tradeoff between latency and completeness will have to be
made for them.

/Bob