[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [dnsext] conclusions drawn in draft-wang-dns-inconsis-ncache-00
In message <200911031505.QAA20276@TR-Sys.de>, Alfred =?hp-roman8?B?SM5uZXM=?= w
rites:
> The recent I-D, draft-wang-dns-inconsis-ncache-00,
> proposes a significant re-interpretation of DNS caching behavior.
>
> I seriously doubt that the conclusions drawn in Section 4 of that
> draft are compatible with the DNS architecture.
>
> 1) The DNS is a *loosely* coupled distributed database.
> There's no guarantee of instantaneous consistency at large
> between authoritative servers, recursive resolvers, and
> potential local (stub) caches.
>
> 2) Tolerant behavior when facing inconsistencies has always been
> a major target of DNS protocol specifiations and its
> implementations.
>
> 3) Authoritative servers are responsible for resolving temporary
> inconsistencies over time, not resolvers.
>
> 4) TTL is the basic mechanism to resolve inconsistencies in caches
> over time. Zone administrators have to decide under operational
> considerations which TTL values to publish, and in doing so,
> they enter into some kind of contract with the potential clients
> to undertake efforts to maintain the correctness of RRsets for
> the duration of their TTL.
> That's why important change processes in zones should be started
> with reducing relevant TTL values to an amount of time that can
> be guaranteed for the old and new content to be valid. That's
> "make before break" as a paradigm for good zone administration.
>
> 5) Whenever an authoritative server hands out an RRset to a resolver
> (end system or caching recursive resolver), it equally enters
> into a contract with its client stating that the authoritative
> answer is to be regarded as valid for this client, for the TTL
> value(s) reported in the answer.
> A recursive caching resolver similarly enters into a contract
> with its clients when it hands out the (remaining) TTL values
> for RRsets.
>
> 6) There's no mechanism in DNS to "revoke" such contracts.
> Cached RRsets remain valid for the remaining TTL.
> RFC 1035 explicitely mentions only TTL expiry as a reason to
> purge cache entries.
A cache is free to use other critera to expire records. The only
requirement is that the record MUST NOT be used after the TTL
expires.
> You can enter into a new "contract negotiation" by asking an
> authority again but that does not immediately invalidate
> previous "contracts".
>
> Therefore, IMHO the correct method for dealing with apparent
> inconsistencies is to let each RRset time out independently and
> apply the "most specific answer first" principle for cache lookup.
>
> In the example in the draft, a cache has unexpired entries for
>
> (1) www.example.com IN A NODATA
> (2) www.example.com IN AAAA 4321:0:1:2:3:4:567:89ab
>
> and later receives on a q=MX query:
>
> (3) www.example.com IN NXDOMAIN
>
> In this case (assuming all validity checks passed), (3) is to be
> used to construct the answer to the stub resolver whose query had
> triggered the outbound q=MX query, and if the negative answer is
> cacheable (as per RFC 2308), (3) is to be cached as well,
> independently, and will be used to answer queries for any QTYPE
> (and CLASS=IN) for the given QNAME, with the exception of those
> that can be matched with (1) and (2), i.e. QTYPE=A and QTYPE=AAAA
> -- until these cache entries expire.
No, GLUE address records regularly get replaced by NXDOMAINs from the
zone.
> (IIRC, during the FR debate last year it had even be proposed to
> apply a more stringent caching paradigm, which would cause using
> cached answer (3) _only_ for answering future queries for the same
> (q=MX, CLASS=IN, QNAME) tuple.)
>
> This strategy also seems to be important from a security and
> resilience point of view:
> Letting NXDOMAIN responses expunge existing cache entries would
> make such reponses much more valuable vehicles for cache poisoning
> attacks, and it would increase the potential damage resulting from
> (temporal) operational/administrative errors.
> Kind regards,
> Alfred HÎnes.
>
> --
>
> +------------------------+--------------------------------------------+
> | TR-Sys Alfred Hoenes | Alfred Hoenes Dipl.-Math., Dipl.-Phys. |
> | Gerlinger Strasse 12 | Phone: (+49)7156/9635-0, Fax: -18 |
> | D-71254 Ditzingen | E-Mail: ah@TR-Sys.de |
> +------------------------+--------------------------------------------+
>
>
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: marka@isc.org