Documentation → RFC Compliance

RFC Compliance

BoronDNS implements the DNS standards relevant to a secondary-only authoritative nameserver. This page records the compliance posture as of v0.2.0, synchronized with SRS v0.9.1.

All items marked Partial reflect the current Engineering MVP posture — implementation is in place and tested, but full release traceability, broader interop evidence, or release-level assertions remain open until the formal SRS MVP release. This is honest reporting: we do not claim compliance we cannot yet evidence.

Core DNS

RFCTitleStatus
RFC 1034Domain Names — Concepts and FacilitiesPartial (secondary/server-side clauses)
RFC 1035Domain Names — Implementation and SpecificationPartial (wire format, RR format, authoritative response, TCP framing)
RFC 2181Clarifications to the DNS SpecificationPartial (RRset, TTL, SOA, NODATA, truncation)
RFC 4343DNS Case Insensitivity ClarificationPartial
RFC 2308Negative Caching of DNS QueriesPartial (authoritative negative-response composition)
RFC 8020NXDOMAIN CutPartial (authoritative empty-subtree response semantics)
RFC 8482Minimal ANY ResponsesPartial (subset-of-available-RRsets; HINFO synthesis prohibited)

Zone transfers

RFCTitleStatus
RFC 5936DNS Zone Transfer Protocol (AXFR)Partial (AXFR client-side clauses)
RFC 1995Incremental Zone Transfer in DNS (IXFR)Partial (IXFR client-side clauses)
RFC 1996DNS NOTIFYPartial (NOTIFY receiver-side clauses)
RFC 9432DNS Catalog ZonesPartial (catalog consumer; optional BoronDNS member-transfer extension)

TSIG and authentication

RFCTitleStatus
RFC 8945Secret Key Transaction Authentication for DNS (TSIG)Partial (request/response, transfer, NOTIFY authentication)
RFC 4635HMAC SHA TSIG Algorithm IdentifiersPartial

Transport security

RFCTitleStatus
RFC 9103DNS Zone Transfer over TLS (XoT)Partial (client-side; TLS 1.3-only, SNI, ALPN dot, configured trust anchors, optional mTLS, no cleartext fallback)
RFC 8446TLS 1.3Partial (via rustls)
RFC 9325Recommendations for Secure TLS UsePartial (TLS 1.3-only transfer-client profile via rustls)
RFC 6066TLS Extensions (SNI)Partial
RFC 5280PKIX Certificate and CRL ProfilePartial (X.509 path validation for XoT trust anchors; no revocation checking)
RFC 7858DNS over TLS (ALPN dot identifier for XoT)Partial

EDNS

RFCTitleStatus
RFC 6891Extension Mechanisms for DNS (EDNS(0))Partial
RFC 7766DNS Transport over TCPPartial
RFC 7828edns-tcp-keepalive EDNS0 OptionPartial
RFC 7830EDNS(0) Padding OptionPartial (accepted, not generated)
RFC 5001DNS Name Server Identifier Option (NSID)Partial
RFC 8914Extended DNS ErrorsPartial (opt-in: Not Ready and Unsupported NSEC3 Iterations)
RFC 5452DNS Resilience against Forged AnswersPartial (QID and source-port entropy)

DoS resistance

RFCTitleStatus
RFC 7873Domain Name System (DNS) CookiesPartial (server-side; BADCOOKIE; RRL interaction; staged rollover)
RFC 9018Interoperable DNS Server CookiesPartial (version-1 server cookie; current-plus-previous staged rollover)

Record types

BoronDNS transfers, stores, and serves any record type present in the zone. All standard and unknown types are handled faithfully.

Record typesRFC
A, NS, SOA, MX, TXT, CNAME, PTR, AAAARFC 1035, RFC 3596
SRVRFC 2782 (Partial)
NAPTRRFC 3403 (Partial)
DNAMERFC 6672 (Partial)
CAARFC 8659
TLSA, SMIMEARFC 6698
SSHFPRFC 4255
HTTPS, SVCBRFC 9460 (Partial)
URIRFC 7553 (Partial)
DANE TLSARFC 6698 (Partial — RR format only; no DANE validation)
Unknown types (TYPE65XXX)RFC 3597 (Partial — opaque pass-through)

DNSSEC

BoronDNS serves DNSSEC records (RRSIG, DNSKEY, DS, NSEC, NSEC3) exactly as received from the primary. It does not perform zone signing, online signing, or signature validation.

RFCTitleStatus
RFC 4034Resource Records for DNSSECPartial (serve-only RR formats)
RFC 4035DNSSEC Protocol ModificationsPartial (authoritative serve-only response behavior; no validation)
RFC 5155DNSSEC NSEC3Partial (serve-only; NSEC3 iterations cap with EDE)
RFC 6840DNSSEC ClarificationsPartial (serve-only DO, AD, CD bit handling)
RFC 1982Serial Number ArithmeticPartial (SOA serial comparison in IXFR and zone refresh)

Explicitly out of scope

The following are intentionally not implemented — they require recursive or primary-only functionality:

RFCTitleReason
RFC 1034 §4.3.2Recursive resolutionBoronDNS is secondary-only
RFC 2136DNS Dynamic UpdateSecondary-only; updates arrive from primary via IXFR
RFC 7314EDNS EXPIRE OptionExplicitly excluded Experimental option; ordinary SOA refresh/expire is in scope
RFC 4033DNS Security IntroductionInformative only — cited for architecture context

The full compliance matrix, evidence pointers, and traceability to SRS v0.9.1 are published in the project repository at github.com/Integrity-Ltd/borondns.