RFC 3597 / START HERE
Unknown DNS records, before the details
DNS means Domain Name System; RR means resource record, a typed piece of data attached to a name. RFC3597 explains how DNS carries records a particular server does not understand.
RDATA is the record’s type-dependent data field. An unaware server can preserve its bytes without decoding their meaning. Unknown is relative to the implementation, not a synonym for unassigned or invalid.
The idea in one picture
Keep record metadata
Preserve opaque bytes
Interpret at the app
A simplified picture of the idea; the chapters explain the actual mechanisms.
Why it exists
Requiring every intermediary to learn each new record format would slow deployment. This Proposed Standard defines transparent handling, generic editable text and consistent comparison rules. Later DNSSEC and registration documents update particular parts rather than replacing the whole RFC.
A familiar example
A fictional private TYPE65280 record passes unchanged through a secondary server and resolver to an application that knows its format. A generic data courier still cannot authenticate the payload, interpret an unfamiliar service or invent optional related records.
Helpful background
You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.
What you’ll learn next
Begin with chapter one, or choose a topic.
- Carry data without knowing its formatDNS means Domain Name System. A resource record (RR) attaches typed data to a name. RDATA is the record’s type-dependent data field. An unknown type is unknown to this implementation, not necessarily unassigned.→
- Keep message-local pointers out of new RDATADNS name compression can replace a name with a pointer to its location within one DNS message. Blindly copying such a pointer into another message can change what it points at.→
- Read the generic text representationA master file is editable DNS zone text. TYPE followed immediately by a decimal number identifies a type; CLASS followed immediately by a decimal number identifies a class. The literal token \# introduces generic RDATA.→
- Compare unknown data bit for bitRecord equality is needed by operations such as DNS Dynamic Update. For the same unknown type, RDATA equality compares every bit; it does not interpret embedded text as a domain name.→
- Build canonical data without guessing namesDNS Security Extensions (DNSSEC) use a canonical, predictable byte representation for signatures. Transporting unknown data and verifying a signature are separate operations. The later RFC4034 §6 defines the canonical rules used in this comparison.→
- Keep optional extras and type categories separateAdditional-section processing can attach helpful extra records to a DNS reply. A server cannot invent type-specific extras for a record whose format it does not know.→
This introduction explains RFC 3597 (2003). Read the original RFC ↗