ietf-corpus

rfc-8020

NXDOMAIN: There Really Is Nothing Underneath

S. Bortzmeyer, S. Huque
date2016-11 streamIETF areaops wgdnsop statusPROPOSED STANDARD pages10 canonicalhttps://www.rfc-editor.org/rfc/rfc8020 doi10.17487/RFC8020 errataview
This document states clearly that when a DNS resolver receives a response with a response code of NXDOMAIN, it means that the domain name which is thus denied AND ALL THE NAMES UNDER IT do not exist. This document clarifies RFC 1034 and modifies a portion of RFC 2308: it updates both of them.

updates

Extracted elements (15)

design-rationale §4

The NXDOMAIN cut optimization is especially useful when combined with QNAME minimization (RFC 7816), since a resolver can stop searching as soon as an NXDOMAIN is encountered along the minimized query path.

dns, privacy

design-rationale §6

The rules in Section 2 use SHOULD rather than MUST because some resolvers implement their cache as a dictionary rather than a tree structure, giving them a legitimate reason to be unable to follow the NXDOMAIN cut rules.

dns

design-rationale §A

The SOA record owner name returned in an NXDOMAIN response cannot be used to infer the NXDOMAIN cut boundary, because the SOA indicates the zone apex rather than the closest existing domain name. Using it would be incorrect.

dns

interoperability-note §3.2

RFC 2308 Section 5's negative caching rule is updated: a cached NXDOMAIN response applies not only to the original <QNAME, QCLASS> but also to any descendant names under that QNAME in the same QCLASS.

dns

interoperability-note §5

Some authoritative name servers incorrectly reply with NXDOMAIN instead of NODATA for Empty Non-Terminal (ENT) names. This behavior is incompatible with DNSSEC and implementations should not support it.

dns, security

interoperability-note §5

Split-horizon DNS setups where a resolver forwards queries for a locally administered zone that appears nonexistent to public authoritative servers may be broken by NXDOMAIN cut; this document assumes such setups are rare and need not be supported.

dns

interoperability-note §2

The NXDOMAIN stored in the cache is for the denied name (the last name in a CNAME/DNAME chain per RFC 6604), not necessarily the QNAME. Implementations must account for CNAME/DNAME chains when determining which name is subject to the NXDOMAIN cut.

dns

normative-requirement §2 MAY

A resolver MAY continue to send cached data under an NXDOMAIN cut as a reply until the TTL of that cached data expires, since this may avoid additional processing when a query is received.

dns

normative-requirement §2 MAY

A validating resolver MAY implement the NXDOMAIN cut behavior only when the NXDOMAIN response has been validated with DNSSEC, as a safeguard against cache poisoning with false NXDOMAIN responses.

dns, security

normative-requirement §2 MUST

If the NXDOMAIN response due to a cached nonexistence is from a DNSSEC-signed zone, the iterative caching resolver MUST return the accompanying NSEC or NSEC3 records in the response to the triggering query if the query had the DNSSEC OK (DO) bit set.

dns, security

normative-requirement §2 SHOULD

When an iterative caching DNS resolver receives an NXDOMAIN response, it SHOULD store it in its cache and then all names and resource record sets (RRsets) at or below that node SHOULD be considered unreachable. Subsequent queries for such names SHOULD elicit an NXDOMAIN response.

dns

protocol-element §3.1

Empty Non-Terminal (ENT) names are nodes in the DNS tree that have no resource record sets but have descendant nodes that do. The correct response to an ENT query is NODATA (RCODE NOERROR with empty answer section), not NXDOMAIN.

dns

protocol-element §1.1

The 'denied name' is defined as the domain name whose existence has been denied by a response RCODE of NXDOMAIN. In most cases this is the QNAME, but due to RFC 6604, it may be the last name in a CNAME/DNAME chain.

dns

security-consideration §7

If a resolver does not validate answers with DNSSEC, it can be poisoned with a false NXDOMAIN, effectively deleting a subtree of the domain name space. NXDOMAIN cut may amplify this attack's effects; DNSSEC validation is the only mitigation.

dns, security

security-consideration §7

NXDOMAIN cut may help mitigate 'random qnames' denial-of-service attacks where queries with a fixed nonexistent suffix and random prefixes flood resolvers; once the resolver caches the NXDOMAIN for the fixed suffix, it stops forwarding the flood to authoritative servers.

dns, security