Read selected reasons without treating the registry as policy
04Reason codes distinguish technical causes and policy origins. RFC 8914 defines an initial set from 0 through 24; later registrations and private values are not invalid merely because this guide does not interpret them.
Code 0 SHOULD have human explanation. A private example INFO-CODE 65000 fits the 16-bit field and can be accepted without a standardized meaning. No automatic action or globally registered purpose is invented.
Source for this drawing: RFC 8914 · Read RFC section 4 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
An INFO-CODE is diagnostic context, not authority to change DNS behavior.
- Code 6 reports DNSSEC validation ending Bogus; code 7 reports no presently valid signatures with some expired; code 23 reports an unrecoverable error communicating with another server.
- Code 15, Blocked, describes an operator’s internal security policy;16, Censored, an external requirement;17, Filtered, a client-requested blocklist. These are different origins, not increasing severities.
- Code 0 is Other; implementations SHOULD add explanatory EXTRA-TEXT. The registry allocates 0–49151 by First Come First Served and 49152–65535 for Private Use (§5.2). These are registration procedures, not proof of safety.
- Receivers MUST NOT assume that an EDE/RCODE combination makes sense. They MUST keep ordinary RCODE processing even with unfamiliar reasons, private codes or NOERROR.
This chapter selects examples, not a live or exhaustive current IANA registry. RFC 8914’s initial 0–24 range is historical publication content; do not label every higher code unassigned today. Full definitions are linked in §4, and accepting a code is different from trusting its assertion.
Read the RFC section ↗