Visual RFC.
ALL RFCs / RFC 3597
Read the RFC ↗
RFC 3597 / UNKNOWN DNS RECORDS

Keep message-local pointers out of new RDATA

02

DNS 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.

RFC 3597 · § 4EXAMPLE
4 / 4
Keep message-local pointers out of new RDATAThe owner name remains eligible for compression. Separately, receiving well-known RDATA MUST decompress; the listed historical types SHOULD decompress. Neither exception licenses a new type’s embedded name pointer.Compression pointers belong to one DNS messageowner nameOwner name eligible for compressionDistinct from embedded RDATA namesReceive well-known types: MUST decompressListed legacy types: SHOULD decompressNew-type RDATA names: MUST NOT compressActual opaque bytes are never scanned for apparent pointers
04
Separate owner eligibility from legacy reception

The owner name remains eligible for compression. Separately, receiving well-known RDATA MUST decompress; the listed historical types SHOULD decompress. Neither exception licenses a new type’s embedded name pointer.

Source for this drawing: RFC 3597 · Read RFC section 4 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
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.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

Servers MUST NOT compress embedded RDATA names in class-specific or non-well-known types. Here well-known means only types defined in RFC1035.

  • Servers MUST NOT compress embedded RDATA names in class-specific or non-well-known types. Here well-known means only types defined in RFC1035.
  • Specifications for new RR types containing names MUST NOT allow name compression there and SHOULD explicitly say those embedded names MUST NOT be compressed. Owner names remain eligible for compression.
  • Receiving servers MUST decompress well-known types and SHOULD also decompress RP, AFSDB, RT, SIG, PX, NXT, NAPTR and SRV for compatibility with historical senders. Receiving compatibility does not permit new compression.
  • RFC3597 changes PX and the historical SIG/NXT compression rules. The later RFC4033/4034/4035 DNSSEC family replaces RFC2535; do not implement the old DNSSEC suite from this example.
DETAILS

Offline bounded examples, not a complete DNS server, master-file parser or DNSSEC validator. Hexadecimal pairs represent octets (eight-bit bytes). Layouts are schematic unless marked otherwise. Generic data transport neither understands an application nor authenticates it.

Read the RFC section ↗

All chapters in RFC 3597

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗