6.11 Conformance
A conforming implementation MUST satisfy every requirement in this chapter. This section collects them by role.
6.11.1 Resolver obligations #
6.11.1.1 Doors #
- Offer the native socket, the stub listener and answer the shim, and run one resolution function behind all three (§6.3).
- Offer no other policy path: no files, no in-shim DNS, no fallback (§6.3).
6.11.1.2 Native channel #
- Frame as §6.4; refuse an oversized request without reading it, with an error reply (§6.4).
- Ignore unknown keys; reject duplicate keys (§6.4).
- One request per connection; bound the time a request may take to arrive (§6.4).
- Access-check every request against the control object with the
peer's real token; default Everyone
RESOLVER_QUERY, SYSTEM and Administrators all (§6.4). - Answer unknown requests and denied requests with error replies (§6.4, §6.5).
6.11.1.3 Outcomes #
- Never report
unavailableasnotfound; never cacheunavailable(§6.6). - Report
unvalidateduntil validating; never forward an upstream'sAD(§6.6).
6.11.1.4 Resolution #
- Route every question to exactly one scope, in the order of §6.7; never fan out.
- Honour an exclusive scope absolutely while it is up (§6.7).
- Expand single labels with applicable domains only; never send one
bare; never expand a multi-label name; no
ndots(§6.7). - Answer the synthetic names of §6.7 before any network; never
forward
.local; never speak LLMNR. - Key the cache by scope; flush a scope whose servers change or that goes away; cap TTLs as §6.A2 (§6.7).
- Fresh source port, random identifier, 0x20 case with exact echo; ignore mismatched replies (§6.7).
- EDNS0 with the §6.A2 buffer; TCP on truncation; demote failing servers; bounded attempts (§6.7).
6.11.1.5 Stub door #
- Listen on
127.0.0.53only, UDP and TCP; ignore non-loopback sources (§6.8). - Render outcomes as §6.8; CNAME from a bare question to its expanded
name;
NOTIMPandFORMERRas §6.8; truncate over the buffer. - Bind without privilege (§6.8).
6.11.1.6 Network manager channel #
- Subscribe; replace scopes on every snapshot; reconnect with backoff; keep answering while disconnected (§6.9).
- Read only
Machine\System\Network\Resolverfrom the registry (§6.9).
6.11.2 Network manager obligations #
- Answer
subscribewith a snapshot and stream one on every change on the same connection (§6.9). - Send whole snapshots, never deltas; merge profile and lease facts itself (§6.9).
6.11.3 Client obligations #
- Treat an error reply as "not answered", never as
notfound(§6.5). - Be written against
validation(§6.6).