[ Standards & DMARCbis ]

Choose np only after establishing domain nonexistence

Distinguish existing names, NODATA, NXDOMAIN and resolution failure before selecting np, sp or an Author Domain policy.

By the EmailAuth research team · 6 min read

[ Key points ]

  • Derive the applicable policy before selecting its p, sp or np assessment.
  • Missing np falls back to sp when present, otherwise p.
  • An authoritative existence fixture is different from an unexecuted example or an unresolved DNS failure.
On this page

Existence belongs to the domain, not one record type

The np tag supplies a DMARC assessment policy for nonexistent subdomains under the applicable discovered policy. It is useful only when the existence decision is sound. “No A record,” “no DMARC TXT record” and “the Author Domain does not exist” are different statements. Treating them as synonyms can apply the wrong policy to a real domain or conceal a resolution outage behind a false negative answer.

RFC 9989 section 4.7 distinguishes np from sp. The former addresses nonexistent subdomains; the latter addresses existing subdomains. Neither substitutes for determining which policy record applies. The Author Domain's own valid policy has priority, and its p tag is used for that domain. Parent-policy calculations come later, when the Author Domain has no applicable policy of its own.

Specify the parent and keep the examples fictional

Use north.example as an invented organizational domain with this policy: v=DMARC1;p=none;sp=quarantine;np=reject;psd=n. Assume every case below uses an otherwise valid message whose authentication does not produce an aligned pass. These are documentary fixtures with manually derived outcomes, not DNS observations, delivery attempts or statements about any organization's records.

For live.north.example, stipulate an address record and no own DMARC policy. Discovery reaches the parent boundary, and existence is established. The requested assessment comes from sp=quarantine. The parent's p=none does not replace the more specific existing-subdomain preference. Preserve the selected tag in the result so a reviewer can see why quarantine was chosen.

For empty.north.example, stipulate an MX record but no A record. An A query's authoritative NOERROR/NODATA response is compatible with that existing name. With no own DMARC policy, sp=quarantine still applies. This case deliberately separates a missing record type from a missing domain; a checker that labels it nonexistent merely because it asked only for A would fail the expected decision.

Interpret NXDOMAIN at the right name

For gone.north.example, stipulate an authoritative NXDOMAIN response for the Author Domain itself, without an alias chain, and no own policy. The selected parent policy uses np=reject. RFC 9989 Appendix A.4 explains that DMARC existence does not require a particular mail-related record type. Its definition follows DNS existence rather than SMTP's narrower notion of a resolvable destination.

An NXDOMAIN response for _dmarc.live.north.example would deny that queried child name, not prove that live.north.example is absent. The direction of the inference matters. RFC 8020 explains that a denied name also has no descendants; it does not say that denial of a child erases its parent. Alias processing can also make the denied name different from the original question, so retain the actual name whose existence was denied.

An empty nonterminal is another useful boundary case: a node can exist in the DNS hierarchy because it has descendants even when it has no records of its own. Do not collapse that structural existence into NXDOMAIN. The fixture designer should specify the tree, not merely a convenient text label attached to an empty answer.

Inspect NODATA and resolution failures separately

NODATA is not an independent DNS response code. RFC 2308 section 2.2 describes a negative-answer classification that needs response context. A blank Answer section can accompany a referral, and aliases can affect which name and type were actually resolved. Save the question, response code, alias chain and authority information before drawing an existence conclusion.

SERVFAIL, timeout and an incomplete response are not evidence of nonexistence. RFC 1035 section 4.1.1 distinguishes server failure from name error. In the fictional broken.north.example case, SERVFAIL leaves existence unresolved; it does not select np by itself. RFC 9989 section 4.10.1 leaves DNS-error handling to receiver discretion, including possible temporary deferral. An evaluator must retain this unresolved state instead of claiming a normal negative lookup.

Apply policy precedence and fallback deliberately

Now give own.north.example a valid v=DMARC1;p=none policy at its exact _dmarc name. Its own p value supplies the assessment; the parent's np and sp preferences do not replace it. This is a policy-discovery rule, not an exception invented for permissive child domains. Existing child configuration still needs an authorized owner and a reasoned security review.

If np is absent from the selected parent record, its section 4.7 default is sp when sp exists, otherwise p. For the example parent, removing np makes the nonexistent-subdomain assessment quarantine. Removing both np and sp leaves none. This fallback deserves a separate test because a shortcut that jumps directly from missing np to p would ignore the documented sp default.

Testing mode and receiver handling remain additional layers. If the applicable record includes t=y, derive the selected policy first and then apply its testing semantics. A requested reject assessment also is not an assurance of a final rejection: receiver analysis and the interoperability requirements in RFC 9989 remain relevant. The table accompanying this article records policy selection, not observed inbox placement.

Preserve an evidence packet instead of a green badge

The exact commission is: Compare existing, NODATA and NXDOMAIN cases and derive the selected policy. The fictional comparison supports review of the expected logic, but it does not close the original operational-evidence gate. No live queries, controlled authority fixtures or receiver outcomes were collected. Current errata review is also unresolved after inaccessible endpoints were stopped.

An approved follow-up should retain the exact Author Domain, applicable policy record, existence evidence, fallback path, receiver version and resulting assessment. Keep DNS-engineering review separate from mail-policy ownership. Production applicability, specialist review, visual acceptance and publication permission remain pending. A reliable np explanation makes uncertainty visible precisely where a careless tool might hide it.

[ Takeaway ]

An absent record type or _dmarc child is not proof that the Author Domain does not exist.

[ By role ]

What this means for you

Choose your role for practical next steps.

DNS investigator

Prove the right name

Existence evidence must identify the name actually denied, especially with aliases.

Next steps

  1. Capture the original question and denied name.
  2. Explain NOERROR and authority context.
  3. Separate negative answers from outages.

Policy maintainer

Review inheritance explicitly

A parent record does not eliminate child-policy and fallback decisions.

Next steps

  1. Inventory own-policy children.
  2. Test missing np and missing sp separately.
  3. Record the selected tag with its value.

Incident responder

Do not turn outages into absence

A resolver failure can make a confident nonexistent-domain verdict unsafe.

Next steps

  1. Escalate unresolved SERVFAIL rather than relabel it.
  2. Preserve resolver/time context.
  3. Require controlled observations before recovery claims.

[ FAQs ]

Frequently asked questions

Why does an MX-only domain use sp in the example?

The name exists even without an A record. RFC 9989 Appendix A.4 does not require a specific mail-related record type to establish DNS existence, so the stipulated existing child uses sp.

Does NXDOMAIN for _dmarc.child prove child is absent?

No. It denies the queried child name, subject to alias context, not its parent. The Author Domain existence decision must refer to the right name.

Is NODATA a DNS response code?

No. It describes a negative-answer situation. NOERROR with an empty answer needs alias, referral and authority interpretation before it supports a NODATA classification.

Which policy applies when np is omitted?

For a nonexistent subdomain under the selected policy, section 4.7 requires sp when present, otherwise p. Do not skip an available sp value.

Can a child policy override the parent np value?

A valid policy at the exact Author Domain takes priority, and its p value is used. Resolve that discovery question before applying parent subdomain preferences.

What does SERVFAIL contribute to existence evidence?

It records failure to resolve, not proof of absence. Preserve the unresolved state and receiver handling rather than automatically selecting np.

Is an empty nonterminal nonexistent?

No. A node with descendants can exist structurally without resource records of its own. RFC 8020 distinguishes that situation from a denied nonexistent subtree.

Does np=reject guarantee the receiver will reject?

No. It selects a requested assessment for relevant failing mail. Testing mode, local analysis and RFC 9989 interoperability handling affect the subsequent decision; no receiver was tested here.

[ Sources ]

Sources

  1. RFC 1035: DNS implementation
  2. RFC 2308: DNS negative responses
  3. RFC 8020: NXDOMAIN subtree semantics
  4. RFC 9989: DMARC core

[ Glossary ]

Glossary

np
The assessment policy for nonexistent subdomains under the current DMARC rules.
sp
The assessment policy for existing subdomains under the applicable discovered record.
NXDOMAIN
DNS name error denying a name and, under RFC 8020 semantics, its subtree.
Empty nonterminal
An existing DNS tree node without its own resource records but with descendants.
SERVFAIL
A DNS server-failure response, distinct from name error or confirmed absence.

Enterprise provenance

Why top financial institutions and governments retired their email security dashboards.

Traditional email authentication platforms sell you a dashboard and ask your engineers to do the labour. In high-stakes environments, manual oversight means delayed enforcement, configuration drift and unmonitored shadow domains.

EmailAuth is the agentic email provenance platform. Our agents enforce p=reject, keep third-party senders aligned and move your domains to full RFC 9989 compliance, the new DMARC standard,, with human-in-the-loop auditability.

Governments Large enterprises Tier-1 financial institutions

SaaS · Dedicated tenancy · Air-gapped on-prem · BYOK encryption

Knowledge Base