Encode search suffixes without DNS compression
03Type 31 concatenates zero-terminated domain names and zero padding; the suffix is not itself an answer.
With the chosen suffix, tea can become tea.picnic.example. for a later DNS lookup. This is one illustrative search candidate, not a fixed universal search order or an already resolved address.
Source for this drawing: RFC 8106 · Read RFC section 5.2 ↗
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.
A DNSSL option has Type 31, an 8-bit Length in 8-octet units, Reserved and a 32-bit Lifetime, followed by one or more search suffix domain names. Minimum Length is 2; the option must contain at least one name (§5.2). All names in an option share the same Lifetime.
- A DNSSL option has Type 31, an 8-bit Length in 8-octet units, Reserved and a 32-bit Lifetime, followed by one or more search suffix domain names. Minimum Length is 2; the option must contain at least one name (§5.2). All names in an option share the same Lifetime.
- Names MUST use the DNS label representation in RFC 1035 §3.1: a length octet then each label’s bytes, ending each name with a zero octet. Name representations are concatenated. Compressed-name pointers MUST NOT be used in DNSSL, even though some other DNS message fields permit them (§5.2).
- Our suffix picnic.example. encodes as 6+picnic, 7+example, 0: 16 bytes. lab.example. is 13 bytes. Together they occupy 29 bytes; three zero pad bytes make a 32-byte name field. With the 8-byte header, that is 40 bytes and Length 5. The remaining padding MUST be zero (§5.2).
- A short name such as tea can produce the chosen search candidate tea.picnic.example. The resolver then makes a separate DNS query; this configuration does not supply that name’s IP address. Exact search behavior is a resolver policy, and a malicious suffix can misdirect an unqualified lookup (§§3,7.1–7.2).
- The teaching codec accepts at most 32 non-root ASCII suffixes and selected label syntax. These are local model bounds, not RFC limits or a rejection rule for every otherwise legal binary DNS label. Length, truncation, compression and nonzero-padding failures are checked separately; no full DNS/search implementation is claimed.
Fictional documentation addresses/domains and chosen seconds. The isolated-option codecs and repository snapshots are bounded teaching models; no real RA, DNS query, operating-system configuration or security validation occurs.
Read the RFC section ↗