Fact-checked by Grok 2 weeks ago

Extension Mechanisms for DNS

Extension Mechanisms for DNS (EDNS), formally known as EDNS(0), is a backward-compatible protocol extension to the (DNS) that enables the advertisement of capabilities and supports larger UDP payload sizes beyond the original 512-byte limit defined in RFC 1035. Introduced to address the limitations of the core DNS protocol in handling modern requirements such as DNSSEC signatures and addresses, EDNS achieves extensibility through the use of a pseudo-resource record (pseudo-RR) called OPT, which is placed in the additional data section of DNS messages. The specification originated with 2671 in August 1999, which defined the initial EDNS(0) framework, including mechanisms for variable-sized packets and option codes for future extensions. This was later updated and obsoleted by 6891 in April 2013, incorporating deployment feedback to refine aspects like error handling, , and the of certain features such as labels from 2673. Key features of EDNS include the OPT record's field, which specifies the sender's desired payload size (with a recommended maximum of 4096 bytes to balance performance and fragmentation risks), and its field, which encodes an extended response code (RCODE) and number for protocol . EDNS also introduces flags in the OPT record, notably the DNSSEC OK (DO) bit to signal support for DNSSEC validation as per 3225, and a variable-length options field allowing arbitrary attribute-value pairs for capabilities like client information (ECS) in 7871 or padding for privacy in 8467. Backward compatibility is ensured by treating unsupported OPT records as empty, falling back to plain DNS, and prohibiting their caching to prevent interference with standard queries. Despite challenges like firewall traversal issues due to larger packets, EDNS has become essential for modern DNS operations, enabling efficient transport of complex data while maintaining interoperability with legacy systems.

Background

Original DNS Limitations

The (DNS), as originally specified in the late , was designed with assumptions suited to the era's nascent , characterized by small-scale networks and straightforward name resolution needs. Developed amid the transition from to /IP, the anticipated a modest growth in hosts—from organizational timesharing systems to individual workstations—but prioritized simplicity and rapid adoption over expansive scalability. This lean approach, outlined in early proposals like RFC 882 and refined in RFC 1035 (1987), focused on basic mappings of domain names to IP addresses, eschewing complex features such as dynamic updates to facilitate quick implementation across diverse systems. However, these foundational choices embedded inherent constraints that became evident as the expanded exponentially in the and beyond. A primary limitation of the original DNS protocol was the strict 512-byte payload restriction for (UDP) messages, excluding IP and UDP headers, which was intended to optimize performance on early, low-bandwidth networks. When responses exceeded this size—such as in cases involving multiple resource records—the (TC) flag would be set in the message header, forcing clients to refetch the data over (TCP), which introduced significant latency and complexity due to TCP's connection-oriented nature. This cap, rooted in 1980s datagram efficiency assumptions, proved inadequate for evolving uses like caching larger datasets or handling queries with extensive answers, often resulting in fragmented or inefficient query resolutions. Further constraints arose from the fixed structure of the DNS message header, which allocated only 4 bits for the Response Code (RCODE) field, limiting the protocol to just 16 possible error and status indicators, such as "No Error" (0) or "Name Error" (3). The 16-bit flags field similarly lacked provisions for future extensions, with reserved bits like the "" field offering no standardized mechanism to introduce new capabilities or options without altering the core protocol. These rigid designs hindered support for advanced features; for instance, the protocol could not natively accommodate oversized resource records, such as the cryptographic signatures required for DNS Security Extensions (DNSSEC), without resorting to truncation and fallback, exacerbating performance issues in security-sensitive environments. Extension Mechanisms for DNS (EDNS), introduced later, addressed these gaps by enabling larger payloads and extensible fields.

History and Development

The development of Extension Mechanisms for DNS (EDNS) began in 1999 with the publication of RFC 2671, which proposed EDNS0 as a framework to extend the DNS protocol without breaking backward compatibility. This initial specification introduced the OPT pseudo-resource record (RR) to carry additional data, such as larger UDP packet sizes beyond the original 512-byte limit, and established a version number to allow future extensions. Prompted by the growing demands of the Internet, including the need for larger responses to support emerging applications, EDNS0 aimed to provide a flexible mechanism for protocol enhancements while maintaining interoperability with legacy DNS implementations. In 2013, RFC 6891 updated and obsoleted RFC 2671, refining the EDNS(0) specification based on deployment experience. This revision standardized support for payloads up to 4096 bytes, clarified the handling of version 0, and addressed issues like fragmentation and error responses to improve reliability in diverse network environments. The update emphasized the OPT RR's role in signaling capabilities, ensuring EDNS could evolve without requiring changes to the core DNS wire format. Following the 2013 standardization, several EDNS options emerged to address specific operational needs. In 2016, RFC 7828 defined the edns-tcp-keepalive option to manage idle connections efficiently, reducing overhead in persistent DNS sessions. That same year, RFC 7830 introduced the padding option to obscure query lengths and enhance privacy against . Also in 2016, RFC 7871 specified the Client Subnet (ECS) option for conveying partial client IP information to improve response relevance, while RFC 7873 added the option for authenticating queries and mitigating attacks. More recent advancements continued to expand EDNS functionality. RFC 8914, published in 2020, introduced Extended DNS Errors (EDE) as an option to provide detailed feedback on query failures, aiding troubleshooting beyond basic response codes. In June 2025, RFC 9664 defined an EDNS option for negotiating lease durations in DNS updates, enabling temporary resource records to support dynamic services like mDNS. These developments have been driven by the IETF's DNS Operations (DNSOP) Working Group, which coordinates protocol maintenance and reviews extension proposals. The IANA maintains the registry of EDNS option codes under the DNS parameters, with the most recent update on October 13, 2025, reflecting ongoing registrations and assignments.

Technical Mechanism

OPT Pseudo-Resource Record

The OPT pseudo-resource record (pseudo-RR) serves as the foundational mechanism for Extension Mechanisms for DNS (EDNS), enabling the addition of control information to DNS messages without altering the core protocol structure. It functions as a meta-RR, meaning it does not represent actual DNS data but instead conveys extension-related , such as payload size limits and optional attributes, to enhance capabilities like larger message sizes and new features. The OPT RR is included in the additional data section of both queries and responses, allowing senders to signal support for EDNS while maintaining with legacy systems. In wire format, the OPT RR adheres to the standard resource record structure but with specific field assignments tailored for its role. The NAME field is always empty, represented as the root domain (0 in wire encoding). The TYPE field is set to 41, uniquely identifying it as OPT. The CLASS field specifies the sender's desired maximum payload size in octets, with a value of 4096 bytes to support larger messages beyond the original DNS limit of 512 bytes; values below 512 are treated as 512 for . The TTL field repurposes its 32 bits to carry an 8-bit extended RCODE in the upper octet, an 8-bit VERSION in the middle octet, and a 16-bit flags field in the lower two octets. The RDLENGTH field indicates the length of the RDATA in octets, and the RDATA itself consists of zero or more variable-length options in a {attribute,value} , enabling flexible extensions. Placement rules ensure the OPT RR integrates seamlessly into DNS messages without disrupting parsing. Only one OPT pseudo-RR is permitted per message; multiple instances trigger a FORMERR response (RCODE=1). It must appear as the last resource record in the additional data section, following any other records such as or SIG(0) for authentication. The sender includes the OPT RR to declare its desired UDP payload size, and the receiver responds by including its own OPT RR with a size it can handle; if the receiver cannot accommodate the requested size, it may truncate the response or fall back to non-EDNS behavior. This negotiation allows while preventing oversized packets from causing fragmentation issues. Backward compatibility is a core design principle of the OPT pseudo-RR, preserving the robustness of the DNS protocol in heterogeneous environments. Non-EDNS-aware resolvers treat the OPT as an unknown RR type (41) and silently ignore it, continuing to process the message using original DNS rules, which typically limits payloads to 512 bytes. Non-EDNS(0)-aware resolvers ignore the OPT RR and respond normally without including an OPT RR, limiting the response to 512 bytes. EDNS(0)-supporting responders include their own OPT RR in the response. This ignore-or-error behavior ensures that EDNS extensions do not break existing deployments, allowing gradual adoption across the internet.

EDNS Header and Flags

The Extension Mechanisms for DNS (EDNS) header is carried within the OPT pseudo-resource record (RR), which augments the standard DNS message header without replacing it. This augmentation allows for extended capabilities while maintaining with legacy DNS implementations that ignore the OPT RR. The OPT RR is placed in the additional data section of the DNS message and uses RR type 41. The EDNS version number occupies bits 23-16 (the second octet from the MSB) of the 32-bit TTL field in the OPT RR header. This field is currently set to 0 to indicate full conformance with the EDNS(0) specification; higher version numbers are reserved for future incompatible protocol changes. Responders that do not support a requested version return an extended response code (RCODE) of BADVERS (16) in the DNS header, along with an OPT RR containing version 0. The extended RCODE extends the original 4-bit RCODE field from the standard 12-byte DNS header to 12 bits total. The upper 8 bits (bits 31-24) of the OPT RR's TTL field provide these additional codes, enabling up to 256 possible values (0-255) beyond the original 16 (0-15). A value of 0 in the extended RCODE bits indicates that the original 4-bit RCODE from the DNS header is sufficient and unextended. This mechanism supports new error conditions, such as BADVERS for version mismatches, without disrupting legacy resolvers. The EDNS flags occupy the lower 16 bits (bits 15-0) of the OPT RR's field, providing space for protocol extensions. The most significant bit (bit 15) is the DO (DNSSEC OK) flag, which, when set, signals the sender's willingness to accept DNSSEC-secured data in the response. The remaining 15 bits (14-0), known as the Z bits, are reserved and must be zeroed by senders; responders ignore them but may set them to zero in replies. These flags are additional to the standard DNS header's flags, ensuring coherent message processing.

Option Code Format

The Option Code Format defines the structure for individual extensions within the Resource Data (RDATA) portion of an OPT pseudo-resource record in EDNS(0), allowing for modular addition of protocol features without altering the core DNS message format. Each option consists of three fields: a 16-bit OPTION-CODE identifying the specific extension, a 16-bit OPTION-LENGTH specifying the size of the subsequent data in octets, and a variable-length OPTION-DATA field containing the actual payload, whose interpretation is determined by the OPTION-CODE. This wire format is specified in RFC 6891, which ensures backward compatibility by permitting variable-length options up to the maximum payload size supported by EDNS(0). The assignment and management of OPTION-CODE values are handled by the (IANA) through the DNS EDNS0 Option Codes (OPT) registry, established under Expert Review procedures to prevent conflicts and promote . Codes in the range 0 through 65000 are designated for standards-track or specification-required allocations, typically via IETF RFCs, while codes 65001 through 65534 are reserved for local or experimental use by implementers. As of October 2025, the registry lists over 20 assigned codes, including standards such as NSID (code 3) and (code 10), reflecting the growing adoption of EDNS extensions. Senders of DNS messages may include one or more options in the OPT RDATA to signal capabilities or convey additional information, with receivers required to process only those options for which they have registered support while silently ignoring any with unrecognized OPTION-CODE values to maintain robustness. Multiple options can appear sequentially within a single OPT RDATA, and their order is insignificant since each operates independently without dependencies on preceding or following options. Only one OPT pseudo-RR is permitted per DNS message, encapsulating all options for that exchange. An empty option, where OPTION-LENGTH is set to 0 and no OPTION-DATA follows, serves primarily to indicate support for a particular extension without transmitting substantive , allowing endpoints to probe capabilities during . For instance, this format enables the carriage of application-specific , such as client subnet information in the (ECS) option, within the broader EDNS framework.

Usage Examples

Wire Format Illustration

To illustrate the wire format of an Extension Mechanisms for DNS (EDNS(0)) message, consider a simple DNS query for the A record of "" that includes an OPT pseudo-resource record () in the additional section. This example assumes a UDP payload size of 1232 octets, EDNS version 0, and the DNSSEC OK (DO) flag set to request DNSSEC records if available, with no additional options. The message structure follows the standard DNS message format, extended by the OPT RR as defined in RFC 6891. The DNS header is 12 bytes long. For this query, the transaction ID is 0x1234, the flags are 0x0100 (indicating a standard query with desired), the question count (QDCOUNT) is 1, and the , , and additional counts (ANCOUNT, NSCOUNT, ARCOUNT) are 0, 0, and 1 respectively to account for the OPT . In hexadecimal, this appears as:
12 34 01 00 00 01 00 00 00 00 00 01
Following the header is the question section, which encodes the query name "" in compressed wire format (7 bytes for "example", 3 bytes for "com", plus null terminator), followed by the query type (A record, 0x0001) and class (, 0x0001), totaling 13 bytes:
07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00 01
The OPT RR then follows immediately, with its name as the root domain (0x00), type 41 (OPT, 0x0029), class set to the payload size of 1232 (0x04D0), and TTL encoding the extended parameters: extended RCODE 0 (0x00), 0 (0x00), flags with DO bit set (0x80), and reserved 0 (0x00), resulting in TTL 0x00008000. The RDATA length (RDLEN) is 0 since no options are present, and RDATA is empty. This OPT portion is 10 bytes:
00 00 29 04 d0 00 00 80 00 00 00
The full query message is thus 35 bytes, demonstrating how EDNS extends the basic DNS wire format without altering the core protocol. In a response, if the reply exceeds the advertised UDP size, the sender may set the truncated (TC) bit in the flags (0x0200 or higher) to indicate truncation and suggest TCP fallback. Additionally, EDNS supports extended response codes (RCODE) beyond the 4-bit limit in the standard header; for instance, a BADVERS code (16, or 0x10) for an unsupported version would place 0x10 in the extended RCODE field of the OPT TTL (e.g., TTL 0x10008000 if version 0 and DO set). This allows richer error signaling in large responses. For inspecting EDNS messages in practice, tools like Wireshark can filter traffic using the display filter "dns.opt" to show only packets containing an EDNS OPT RR.

Implementation Scenario

In a typical implementation scenario, a DNS resolver initiates a query to an authoritative server by including an OPT pseudo-resource record (type 41) in the additional data section of the UDP message. The resolver sets the CLASS field of the OPT record to 4096, advertising its maximum UDP payload size reassembly capacity and enabling the server to send larger responses without truncation. Upon receiving the query, the authoritative server, if EDNS-compliant, includes its own OPT record in the response, mirroring or negotiating the payload size, and returns a large resource record set (RRset), such as a comprehensive TXT record exceeding 512 bytes, fully contained in the UDP datagram. If the authoritative server does not support EDNS, it ignores the OPT record and responds as per legacy DNS rules, limiting the response to 512 bytes; if the RRset exceeds this limit, the server sets the (truncation) bit, prompting the resolver to retry over for the full response. In such cases, the resolver detects the lack of EDNS support—either by absence of an OPT reply or a FORMERR (RCODE=1)—and falls back to non-EDNS queries for subsequent interactions with that server to ensure compatibility. Server configurations often tune EDNS via the edns-udp-size to response size and constraints. For , this is set in the named.conf options block, e.g., options { edns-udp-size 1232; }; to advertise a conservative avoiding fragmentation on paths with 1280-byte MTU, as recommended for broad interoperability. Similarly, Unbound configures it in the server section of unbound.conf, e.g., server: edns-buffer-size: 1232; to cap responses and mitigate issues with firewalls blocking larger packets. On the client side, resolver libraries like Node.js's built-in 'dns' module leverage the c-ares library, which enables EDNS by default for queries, allowing applications to handle larger DNS payloads without custom socket management. Testing EDNS implementation involves using tools like to simulate queries and inspect responses. For instance, dig @authoritative-server [example.com](/page/Example.com) +edns=1 sends a query with EDNS enabled ( buffer 4096 bytes in older dig versions, 1232 in 9.18+), revealing the OPT and full RRset size in the output; comparing with dig @authoritative-server [example.com](/page/Example.com) +edns=0 disables EDNS, confirming fallback to 512-byte limits or TC flags on large responses. This approach verifies server support and response sizes empirically across interactions.

Applications

DNS Security Extensions (DNSSEC)

DNS Security Extensions (DNSSEC) leverage Extension Mechanisms for DNS (EDNS) to enhance the security of DNS responses by enabling the inclusion of cryptographic signatures and authentication data that often exceed the traditional 512-byte payload limit. Without EDNS, DNSSEC responses frequently truncate, forcing fallback to less efficient connections or incomplete data delivery, which undermines practical deployment. EDNS addresses this by supporting larger message sizes, typically up to 4096 bytes, allowing full transmission of DNSSEC resource records (RRs) such as RRSIG and DNSKEY over . The DNSSEC OK (DO) flag in the EDNS header plays a pivotal role in signaling support for DNSSEC data. When a resolver sets the DO flag to 1 in a query, it indicates capability to process DNSSEC RRs, prompting authoritative servers to include relevant records like RRSIG (for signed data origin authentication), DNSKEY (for public keys), and NSEC or NSEC3 (for denial of existence) in the response. Servers copy the DO flag to the response and must omit these RRs if the flag is unset, except in explicit queries or zone transfers, ensuring backward compatibility with non-DNSSEC clients. EDNS provides critical size benefits for DNSSEC, as signed RRs and their signatures routinely surpass 512 bytes due to embedded cryptographic elements. For instance, a single RRSIG can add hundreds of bytes, and responses with multiple such records risk without EDNS, which recommends a size of at least 1220 bytes and up to 4000 bytes for efficient operation. This capability is essential for delivering complete NSEC or NSEC3 proofs of nonexistence, which chain records to authenticate NXDOMAIN or NODATA responses without , preventing attackers from exploiting partial data to forge responses. As of November 2025, DNSSEC deployment has reached significant scale, with over 93% of top-level domains (1,345 out of 1,438 TLDs) signed and more than 24 million DS records indicating signed delegations for second-level zones, making EDNS indispensable for efficient query resolution in security-aware environments. RFC 4035, which defines DNSSEC protocol modifications, explicitly assumes EDNS(0) support for practical deployment, mandating a minimum UDP buffer of 1220 bytes to handle expanded responses without fallback mechanisms.

Client Subnet (ECS)

The Client Subnet (ECS) option, identified by option code 8 in the EDNS(0) framework, enables recursive DNS resolvers to convey partial information about the originating client's network to upstream authoritative servers, thereby enhancing the accuracy of geolocation-based responses such as those from content delivery networks (CDNs). This mechanism addresses limitations in routing, where DNS queries from a recursive resolver might otherwise route to a distant authoritative instance, leading to suboptimal content delivery. By including details, ECS allows authoritative servers to select the nearest CDN edge or provide location-specific results, improving and without exposing the full client . The ECS option encodes its data in a structured format within the OPTION-DATA field: a 2-octet FAMILY field indicating the address type (1 for IPv4, 2 for ), followed by an unsigned octet for SOURCE PREFIX-LENGTH specifying the number of significant address bits, another octet for SCOPE PREFIX-LENGTH (set to 0 in queries and indicating response coverage in replies), and the truncated itself, padded with zeros to align with 32-bit or 128-bit boundaries as needed. Recursive resolvers typically insert the ECS option into queries, truncating the client to preserve —for instance, to a /24 prefix for IPv4 or /56 for —thus masking the lower-order bits that could pinpoint individual hosts while still providing sufficient geographic granularity. Upstream authoritative servers that support ECS can then use this information to tailor responses, such as directing clients to closer instances, and echo back the relevant fields in their replies with an appropriate SCOPE PREFIX-LENGTH to signal the precision of the subnet used. This approach involves a deliberate trade-off, as revealing even a truncated exposes approximate client location to authoritative servers, potentially aiding in traffic optimization at the cost of reduced compared to standard DNS queries. To mitigate this, the recommends truncation and allows opt-out by omitting the option entirely or setting SOURCE PREFIX-LENGTH to 0, preventing any address data from being sent. Standardized in 7871 in May 2016 as an informational document capturing existing practice, ECS builds on earlier proposals and has seen revisions in subsequent updates to refine its deployment. As of 2025, ECS enjoys widespread adoption among major public recursive resolvers, including , which fully supports it for improved CDN steering, and , offering ECS-enabled endpoints like 9.9.9.11 for enhanced geolocation accuracy. Measurements indicate that 79% of popular domain nameservers signal ECS support, with 40% delivering subnet-specific responses, reflecting its integration into global DNS infrastructure for better performance in distributed services. However, privacy-focused resolvers like Cloudflare's intentionally avoid ECS to minimize location leakage.

Padding Option

The EDNS(0) Padding Option, designated with option code 12, enables DNS clients and servers to append a variable number of random padding bytes to DNS messages, thereby increasing their size to a specified , often aligned with MTU boundaries for efficiency. This mechanism addresses privacy concerns in DNS traffic by obfuscating the correlation between query content and response sizes, which could otherwise reveal information about queried domains through . It is particularly valuable in encrypted DNS protocols such as (DoT) and (DoH), where uniform message sizes hinder passive observers from inferring query patterns without breaking encryption. Defined in RFC 7830 published in 2016, the Padding Option allows clients to request a specific padding length in their queries, which servers can echo back in responses or extend further if needed to meet operational requirements. Length negotiation supports multiple Padding Options within a single message, enabling iterative adjustments to achieve desired sizes while maintaining compatibility with EDNS(0) constraints. To ensure proper alignment in wire format, padding lengths are typically multiples of 4 bytes, avoiding fragmentation issues in network transmission and adhering to EDNS option padding rules. RFC 8467 complements this by outlining padding policies, recommending strategies like fixed-size blocks (e.g., 128 or 256 bytes) or variable padding based on message context to balance privacy and performance. From a perspective, the Option mitigates amplification attacks in distributed denial-of-service (DDoS) scenarios by standardizing response sizes, reducing the predictability that attackers exploit to forge queries and amplify traffic volumes. In encrypted environments, it enhances resistance to , as demonstrated in studies showing that unpadded DNS messages leak resolution patterns even under encryption. By 2025, adoption has grown in privacy-focused DNS resolvers, with implementations in tools like Unbound—configurable via options to pad TLS queries—and Knot Resolver, which integrates padding for outgoing encrypted sessions to support secure resolution practices. This uptake aligns with broader pushes for encrypted DNS, including policy recommendations emphasizing padding to protect against metadata leakage in and consumer environments.

Keepalive Option

The edns-tcp-keepalive option, identified by option code 11, is an Extension Mechanisms for DNS (EDNS(0)) feature designed to negotiate the lifetime of idle connections between DNS clients and servers. It consists of a 16-bit unsigned value in the OPTION-DATA , representing the idle timeout in units of 100 milliseconds (thus, a value of 0 corresponds to no support, while maximum values allow up to approximately 109 minutes). This option is exclusively used over transports and is not applicable to UDP queries. In operation, a DNS client initiates the keepalive negotiation by including the edns-tcp-keepalive option in a query message, with the OPTION-LENGTH set to 0 to indicate its proposal for connection reuse without specifying a timeout. If the server supports the option and wishes to accept, it echoes the option in its response, populating the TIMEOUT field with its preferred idle lifetime value in 100ms units; the client must then honor this timeout by closing the connection if idle beyond that duration. Should the server set the TIMEOUT to 0 in the response, it signals rejection, prompting the client to close the connection immediately after the response. Servers may dynamically adjust the TIMEOUT based on resource availability, and clients are required to include the option in all subsequent queries over the same session to maintain the agreement. Specified in RFC 7828 (published April 2016), this option facilitates the reuse of sessions for multiple DNS transactions, significantly reducing the overhead associated with establishing new connections for each query compared to traditional per-query handshakes. It particularly benefits high-volume clients, such as recursive resolvers or applications sending frequent queries, by lowering , minimizing CPU and network resource usage, and helping mitigate risks like TCP reflection attacks through controlled connection persistence. A TIMEOUT value of 0 effectively disables the feature, reverting to standard connection closure after each response. By 2025, the edns-tcp-keepalive option has seen widespread adoption in major DNS software implementations, including Unbound (where it overrides default TCP idle timeouts when enabled), Knot Resolver (via a dedicated module for TCP and TLS connections), PowerDNS Authoritative Server and Recursor (with support for negotiation in AXFR-over-TLS scenarios), and ISC BIND (as part of broader EDNS TCP enhancements). It is commonly deployed in load balancers like PowerDNS dnsdist and recursive resolvers to enhance efficiency in environments with persistent TCP usage, such as DNS-over-TLS (DoT) deployments, reflecting its role in optimizing modern DNS infrastructure for scalability. The DNS Cookie option, defined with option code 10 in the EDNS(0) OPT resource record, serves as a lightweight transaction security mechanism to protect DNS servers and clients from off-path attacks such as spoofing, denial-of-service (), and amplification abuse. It operates by exchanging opaque cookies between clients and servers, enabling servers to authenticate query sources without relying on cryptographic signatures or transport-layer security. This option is particularly useful for authoritative DNS servers facing high query volumes, as it allows and replay validation with minimal computational overhead. In operation, a client initiating a sends a query with an empty Cookie option or one containing only its 8-byte Client Cookie, generated as a pseudorandom function (PRF) output using the client , server , and a client-side secret with at least 64 bits of . The server responds to valid initial queries by including a full Cookie option in the response, comprising the echoed 8-byte Client Cookie followed by an 8- to 32-byte Server Cookie. The Server Cookie is produced via a PRF applied to the client , the received Client Cookie, and a server-side secret of at least 64 bits of , ensuring it ties the response to the specific client without exposing the secret. Subsequent client queries to the same include the full Cookie (Client Cookie + Server Cookie), which the server validates by recomputing the Server Cookie and checking for matches; invalid cookies trigger rejection or require re-exchange. This process follows the general EDNS option format, where the Cookie data occupies the variable-length OPTION-DATA field. The mechanism enhances security by complicating off-path spoofing, as attackers cannot predict or forge valid Server Cookies without the secret, thereby mitigating floods and attacks where forged queries exploit larger responses. It complements the standard 16-bit DNS transaction ID, which primarily matches requests to responses but offers limited against guessing; the Cookie adds server-verified uniqueness per client-server pair, reducing the risk of response injection or cache poisoning. While the base specification from RFC 7873 (published in 2016) does not include privacy-specific modes, it supports compatibility with encrypted DNS transports like , preserving its utility in modern deployments. Deployment of the option is widespread among authoritative DNS servers to prevent query abuse, with implementations in software like 9.10.3 and later, Unbound 1.6.4 and later, and Resolver 2.0.0 and later, as noted in the . For example, Cloudflare's authoritative DNS infrastructure supports , enabling abuse prevention by filtering invalid queries at scale, as evidenced by tools detecting Cookie-enabled responses from their servers. This adoption helps authoritative operators manage traffic without impacting legitimate recursive resolvers.

Extended DNS Errors

The Extended DNS Errors (EDE) mechanism provides a standardized way to convey detailed diagnostic information in DNS error responses, enhancing troubleshooting beyond the limited standard Response Code (RCODE) values. Defined as an EDNS(0) option with code 15, EDE allows authoritative servers, resolvers, and firewalls to include specific error indicators in responses carrying error RCODEs such as SERVFAIL, , or NXDOMAIN. This option complements the extended RCODE field in the EDNS header by offering granular, extensible error details without altering core DNS semantics. The wire format of the EDE option consists of a 16-bit INFO-CODE field referencing an IANA registry entry, followed by an optional variable-length EXTRA-TEXT field encoded in for human-readable descriptions. The INFO-CODE identifies the error type from 0 to 65535, with values 0–49151 allocated via and 49152–65535 reserved for private use. The EXTRA-TEXT supports by using encoding, enabling localized error messages in responses. Multiple EDE options can appear in a single OPT pseudo-resource record to report chained or compound errors. Common INFO-CODE values include 0 for "Other Error," a catch-all for unspecified issues, and 15 for "Blocked," indicating the query was rejected due to an internal policy such as or filtering. Other examples encompass 16 ("Censored") for government-mandated blocking and 17 ("Filtered") for or protection. These codes enable precise and user feedback, such as displaying explanatory messages in client applications. Standardized in RFC 8914 (October 2020), the EDE option was developed to address the opacity of generic DNS errors, improving diagnostics in recursive resolvers, forwarding proxies, and network filters. Servers insert EDE options into error responses when applicable, while clients and resolvers log or display the information without affecting query processing. The mechanism is particularly valuable in encrypted DNS protocols like (), where traditional tools are limited. As of October 2025, the IANA Extended DNS Error Codes registry has expanded to 30 assigned values, incorporating post- additions for scenarios like invalid query types (code 30) and unsupported NSEC3 iterations (code 27), which are relevant in modern implementations for enhanced error reporting in secure environments.

Lease Negotiation

The Negotiation option, defined in 9664, introduces an EDNS(0) mechanism to specify lifetimes for resource records added via DNS dynamic updates, allowing clients and servers to negotiate durations that determine how long these records remain valid before automatic expiration. This option, assigned EDNS code 2 ( ), is carried in the OPT pseudo-resource record of DNS messages and applies exclusively to DNS operations as specified in 2136, enabling more efficient management of transient records without requiring constant manual renewals or deletions. In terms of wire format, the Update Lease option consists of a 16-bit OPTION-CODE set to 2, a 16-bit OPTION-LENGTH indicating 4 or 8 octets of OPTION-DATA, followed by a 32-bit field representing the duration in seconds (unsigned ). An optional 32-bit -LEASE field may follow for negotiating lifetimes on resource , but the standard format uses only the LEASE field for most cases. A lease value of zero in the LEASE field signifies a permanent record that does not expire automatically, providing flexibility for both temporary and persistent updates. The recommended minimum lease duration is 30 seconds, though clients typically propose values of at least 1800 seconds (30 minutes) to balance efficiency and reliability. The negotiation process begins when a client includes the Update Lease option in a DNS UPDATE request within the OPT record, proposing a desired lease duration for the resource records being added or modified. Upon processing the update, the authoritative server evaluates the proposal and responds with a DNS UPDATE response containing an Update Lease option if the operation succeeds (RCODE=0); the granted LEASE value in this response may be shorter, equal to, or longer than the client's proposal, reflecting the server's policy on record lifetimes. If the server does not support the option or chooses to reject the proposed lease, it omits the Update Lease option from the response, effectively denying the negotiation and treating the update as a standard operation without an expiration. Servers must include the option in responses to successful updates that requested it, ensuring clear communication of the granted lifetime. This mechanism offers significant benefits for environments involving frequent dynamic updates, such as (IoT) deployments where devices register temporary service records. By assigning finite leases, servers can automatically remove stale records through garbage collection, reducing administrative overhead and preventing database bloat from accumulated obsolete entries. For power-constrained devices, longer negotiated leases minimize the frequency of renewal updates, conserving battery life and network resources while still maintaining up-to-date DNS information. Overall, the option decreases server load by limiting unnecessary traffic for record maintenance and supports scalable operations in enterprise and mobile scenarios. The scope of the Update Lease option is strictly limited to DNS UPDATE messages, with no application to standard DNS queries or other EDNS contexts, ensuring it integrates seamlessly with existing dynamic update workflows without altering core DNS query semantics. Published in June 2025, RFC 9664 standardizes this extension to address growing needs in automated and registration protocols.

Challenges

Compatibility and Deployment

Extension Mechanisms for DNS (EDNS) enjoys widespread support among authoritative DNS servers. However, network-level adoption remains uneven, with only about 67% of DNS queries involving domain names whose authoritative nameservers fully support EDNS options such as Client Subnet (ECS), according to analysis by AdGuard DNS as of January 2024. This discrepancy arises primarily from legacy infrastructure, where partial EDNS compliance—such as ignoring unknown options or failing to respond to EDNS queries—continues to hinder seamless interoperability. A key deployment challenge involves traversal through es, including firewalls and devices, which frequently truncate packets exceeding 512 bytes or drop those containing EDNS extensions entirely. Such interference stems from outdated configurations designed for pre-EDNS DNS limitations, forcing resolvers to reduce buffer sizes or fallback to transport. Mitigation strategies include negotiating smaller EDNS buffer sizes during query exchanges to prevent truncation, though this can exacerbate issues like in bandwidth-constrained paths where oversized buffers amplify under load. Tools such as DNSViz provide practical testing for EDNS by analyzing response behavior in DNSSEC chains, revealing incomplete support that triggers fallbacks. The rise of encrypted DNS protocols like (DoH) and (DoT) helps bypass some restrictions but requires separate EDNS handling within encrypted sessions. When EDNS fails, queries often revert to TCP, incurring significantly higher latency—typically doubling it due to connection setup overhead and additional round-trip times. Regional variations in adoption can further complicate deployment. IETF documentation underscores these hurdles, noting that in constrained environments—such as those with restrictive middleboxes—EDNS non-support correlates with elevated query failure rates, emphasizing the need for ongoing operational guidance to bolster global interoperability.

Security Concerns

One significant security concern with EDNS is its role in enabling DNS amplification attacks, where attackers spoof the victim's IP address in small queries to open resolvers, eliciting large responses up to 4096 bytes via EDNS payload sizes, thereby multiplying traffic volume for distributed denial-of-service (DDoS) assaults. These attacks exploit EDNS's extension of UDP response limits beyond the traditional 512 bytes, achieving amplification factors as high as 50 times or more in observed incidents. Mitigations include server-side rate limiting of queries from unknown sources and the use of the EDNS Cookie option to verify legitimate clients before responding with large payloads. EDNS options can also introduce privacy leaks, particularly through the Client Subnet (ECS) mechanism, which embeds portions of the client's IP subnet in queries to improve geolocation accuracy but exposes user location data to authoritative servers along the resolution path. This leakage reduces the anonymity provided by recursive resolvers and enables potential surveillance or targeted attacks, with studies showing ECS revealing up to 24 bits of IPv4 address information in common deployments. Countermeasures involve anonymizing ECS data, applying EDNS Padding to obscure query patterns, or shifting to encrypted transports like (DoH) to conceal option details. Regarding forgery risks, EDNS itself provides no inherent integrity protection for DNS messages, leaving responses vulnerable to spoofing or cache poisoning without complementary measures like DNSSEC; the DO (DNSSEC OK) flag in EDNS queries merely signals a resolver's to DNSSEC but does not enforce validation or prevent tampering if signatures are absent or ignored. Proper mitigation requires full DNSSEC deployment with signature verification, as the DO flag alone cannot guarantee authenticity in non-secured zones. In recent years, EDNS has been implicated in attacks, with DNS —facilitated by large EDNS responses—accounting for 55% of observed DDoS vectors in 2024 reports extending into 2025 analyses. The Extended DNS Errors (EDE) option aids threat detection by providing standardized codes (e.g., for blocked or filtered queries) that help operators identify and respond to malicious attempts more effectively. Best practices to address these concerns, as outlined in EDNS specifications and subsequent guidelines, include capping advertised payload sizes at 1232 bytes to minimize fragmentation risks and reduce potential while ensuring compatibility across IPv4 and networks.

Performance Considerations

Extension Mechanisms for DNS (EDNS) provide significant benefits by supporting larger payloads, typically up to 4096 bytes, which allows servers to return complete resource record sets (RRsets) in a single packet without . This capability is particularly valuable for DNSSEC-signed responses or queries involving multiple address records (e.g., ), as traditional 512-byte limits often force and subsequent retries. By avoiding these truncations, EDNS reduces the overall number of messages exchanged, enhancing query efficiency and throughput in high-volume scenarios. A key advantage is the mitigation of TCP fallback for oversized responses. Without EDNS, UDP queries exceeding 512 bytes trigger flags, prompting clients to retry over , which incurs an additional round-trip time (RTT) for connection establishment—effectively doubling latency from 1 RTT () to 2 RTTs (). EDNS buffer size negotiation enables to handle larger responses directly, preserving the lower-latency path; studies indicate that 80% of truncated responses lead to such fallbacks, which EDNS largely prevents when properly configured. For the edns-tcp-keepalive option, reusing established connections further optimizes scenarios where is unavoidable, reducing per-query overhead from 2 RTTs to 1 RTT and minimizing server resource expenditure on repeated handshakes. However, these benefits come with costs related to packet sizing. Larger EDNS payloads increase the risk of if they exceed the path (MTU), particularly on links with non-standard MTUs or firewalls that drop fragments; in-network IPv4 fragmentation affects 4.4% of large DNS queries. In environments, the minimum MTU of 1280 bytes necessitates buffer sizes under approximately 1200 bytes (accounting for headers) to avoid host-side fragmentation, as routers do not fragment packets. Slow or congested links amplify these issues, potentially leading to and retransmissions that degrade performance. Empirical measurements underscore these dynamics. Analysis of billions of queries shows truncation rates of 2.93% to 7.15% without optimized EDNS, primarily due to oversized triggering fallbacks or fragmentation; adopting a 1232-byte size resolves 99.99% of responses without issues, yielding faster resolutions by curtailing retries. In fallback tests, DoTCP succeeds in over 95% of cases for 2KB responses but fails regionally up to 11.53% in cores, highlighting inconsistent efficiency. mechanisms improve throughput by sustaining connections, though exact CPU reductions vary by . Optimization involves tuning the EDNS buffer size to balance capacity and reliability, with 1232 bytes recommended as a default to minimize fragmentation while supporting most responses; resolvers should probe incrementally from 512 bytes upward and fallback on failures. On mobile networks, where MTU varies due to tunneling overhead (e.g., VPNs or carrier-grade NATs often reducing effective MTU below 1500 bytes), conservative sizes like 1232 bytes or lower prevent excessive fragmentation and maintain low-latency resolutions amid fluctuating conditions. Padding options introduce trade-offs for . The recommended block-length adds overhead of up to 128 bytes per query (padding to multiples of 128 octets) or 468 bytes for responses, increasing bandwidth use but obscuring query sizes to thwart ; maximal padding to full MTU (e.g., ~1400 bytes) maximizes at the cost of severe overhead and potential fragmentation, making it unsuitable for routine use.

References

  1. [1]
    RFC 6891 - Extension Mechanisms for DNS (EDNS(0))
    This document updates the Extension Mechanisms for DNS (EDNS(0)) specification (and obsoletes RFC 2671) based on feedback from deployment experience in several ...
  2. [2]
    RFC 2671 - Extension Mechanisms for DNS (EDNS0)
    RFC 2671 Extension Mechanisms for DNS (EDNS0) August 1999 This document assigns extended label type 0bxx111111 as "Reserved for future extended label types.
  3. [3]
    [PDF] Development of the Domain Name System*
    The base design assumptions for the DNS were that it must: provide at least all of the same information as HOSTS. TXT.Missing: 1980s | Show results with:1980s
  4. [4]
    [PDF] Development of the Domain Name System - DTIC
    This paper examines the ideas behind the initial design of the DNS in 1983, discusses the evolution of these ideas into the current implementations and usages, ...Missing: 1980s | Show results with:1980s
  5. [5]
  6. [6]
  7. [7]
  8. [8]
  9. [9]
  10. [10]
    RFC 7828 - The edns-tcp-keepalive EDNS0 Option - IETF Datatracker
    This document defines an EDNS0 option ("edns-tcp-keepalive") that allows DNS servers to signal a variable idle timeout.Missing: 7830 7871
  11. [11]
    RFC 7871 - Client Subnet in DNS Queries - IETF Datatracker
    This document describes an Extension Mechanisms for DNS (EDNS0) option that is in active use to carry information about the network that originated a DNS query.
  12. [12]
    RFC 8914 - Extended DNS Errors - IETF Datatracker
    This document specifies a mechanism to extend DNS errors to provide additional information about the cause of an error.Table of Contents · Extended DNS Error EDNS0... · Defined Extended DNS Errors
  13. [13]
    Domain Name System Operations (dnsop) - IETF Datatracker
    Domain Name System Operations (dnsop) ; 11 pages. RFC 3258. Distributing Authoritative Name Servers via Shared Unicast Addresses · 5 pages. RFC 3901. DNS IPv6 ...
  14. [14]
    Domain Name System (DNS) Parameters
    Oct 13, 2025 · EDNS Header Flags (16 bits); EDNS version Number (8 bits); Child Synchronization (CSYNC) Flags; Underscored and Globally Scoped DNS Node Names ...
  15. [15]
  16. [16]
  17. [17]
  18. [18]
    Wireshark • Go Deep | Display Filter Reference: Domain Name System
    The website for Wireshark, the world's leading network protocol analyzer. Wireshark lets you dive deep into your network traffic - free and open source.
  19. [19]
    8. Configuration Reference — BIND 9 9.20.13 documentation
    The usual reason for setting edns-udp-size to a non-default value is to get UDP answers to pass through broken firewalls that block fragmented packets and ...
  20. [20]
    DNS flag day: 2020
    An EDNS buffer size of 1232 bytes will avoid fragmentation on nearly all current networks. This is based on an MTU of 1280, which is required by the IPv6 ...
  21. [21]
    unbound.conf(5) — Unbound 1.24.1 documentation
    Default is 65552 bytes, enough for 64 Kb packets, the maximum DNS message size. No message larger than this can be sent or received. Can be reduced to use less ...
  22. [22]
    DNS | Node.js v25.1.0 Documentation
    The node:dns module enables name resolution. For example, use it to look up IP addresses of host names. Although named for the Domain Name System (DNS),
  23. [23]
    Changelog | c-ares: a modern asynchronous DNS resolver
    Detect remote DNS server does not support EDNS using rules from RFC 6891 · Source tree has been reorganized to use a more modern layout · Allow parsing of CAA ...C-Ares Version 1.24. 0 - Dec... · C-Ares Version 1.23. 0 - Nov... · C-Ares Version 1.11. 0 - Feb...
  24. [24]
    dig versions and default EDNS UDP buffer size changes
    Jun 27, 2024 · dig advertised a default EDNS buffer size of 4096 bytes. In version 9.18, the default was changed to 1232 bytes to comply with the recommendations produced by ...
  25. [25]
    Testing EDNS compatibility with dig - ISC Knowledgebase
    Oct 16, 2024 · In the example queries below, replace "zone" with the name of the zone to be tested. Replace "server" with the name or IP address of the server ...
  26. [26]
    RFC 4035 - Protocol Modifications for the DNS Security Extensions
    The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the ...
  27. [27]
    RFC 3225: Indicating Resolver Support of DNSSEC
    ### Summary of DO Flag in RFC 3225
  28. [28]
    DNSSEC Deployment Report
    DNSSEC Deployment Report. Sat Nov 8 02:18:38 PST 2025. Total TLDs: 1438 / Signed TLDs in root: 1345 / Recently added: et.
  29. [29]
    DNSSEC-DANE-Deployment-Statistics
    Summary Statistics. Last updated: 2025-11-09 05:02 -0800. Total number of DS Resource Record sets: 24,378,966. Validatable DNSKEY record sets: 23,958,348. Total ...
  30. [30]
    EDNS Client Subnet (ECS) Guidelines | Public DNS
    Sep 3, 2024 · RFC 7871 – Client Subnet in DNS Queries – defines a mechanism for recursive resolvers like Google Public DNS to send partial client IP address ...
  31. [31]
    Service Addresses & Features - Quad9
    Quad9 has several different service offerings for recursive DNS features. Each is represented by a different IP address (or, in some cases, hostname).Missing: Cloudflare 2025
  32. [32]
    [PDF] ECSeptional DNS Data: Evaluating Nameserver ECS Deployments ...
    Additionally, prominent public recursive resolvers such as Google Public DNS and Cisco's OpenDNS also support ECS. The importance of recursive resolvers ...<|control11|><|separator|>
  33. [33]
    Optimizing CDN Performance with ECS | Leveraging Akamai for ...
    Aug 11, 2024 · This article explores how ECS works, why Cloudflare's 1.1.1.1 DNS resolver doesn't support it, and how Akamai leverages ECS to ensure content is served from ...
  34. [34]
    RFC 7830 - The EDNS(0) Padding Option - IETF Datatracker
    This document specifies the EDNS(0) "Padding" option, which allows DNS clients and servers to pad request and response messages by a variable number of octets.
  35. [35]
    Release notes — Knot Resolver 5.7.5 documentation - Read the Docs
    EDNS padding (RFC 8467) compatibility with knot-dns 3.3 libs (!1422) ... lib/resolve: use EDNS padding for outgoing TLS queries (!1254). support for ...
  36. [36]
    draft-mishra-iotops-iot-dns-guidelines-01 - IETF Datatracker
    Oct 14, 2025 · ... Resolvers and mitigations that can be implemented on DNS resolvers. ... [RFC7830] Mayrhofer, A., "The EDNS(0) Padding Option", RFC 7830 ...
  37. [37]
    Authoritative Server Settings - PowerDNS Documentation
    All PowerDNS Authoritative Server settings are listed here, excluding those that originate from backends, which are documented in the relevant chapters.
  38. [38]
    Authoritative Server (and dnsdist): AXFR-over-TLS (AXoT) #9776
    Nov 25, 2020 · Primary. Use edns-tcp-keep-alive options to keep connections open (§ 5.3.4, defined in RFC 7828). To pick up a draggable item, press the space ...
  39. [39]
    cloudflare.com | DNSViz
    Notices. Warnings (3) ./DNSKEY (alg 8, id 20038): The server appears to support DNS cookies but did not return a COOKIE option. See RFC 7873, Sec. 5.2.3 ...
  40. [40]
    RFC 8914: Extended DNS Errors
    This document specifies a mechanism to extend DNS errors to provide additional information about the cause of an error.Table of Contents · Extended DNS Error EDNS0... · Defined Extended DNS Errors
  41. [41]
    Domain Name System (DNS) Parameters
    ### Extended DNS Error Codes Table
  42. [42]
    Information on RFC 9664 - » RFC Editor
    This document describes an EDNS(0) option that can be used between DNS Update Requesters and authoritative DNS servers to include a lifetime (lease duration)
  43. [43]
  44. [44]
    Partial EDNS Compliance Hampers Deployment of New DNS ... - ISC
    May 28, 2015 · The demand for DNSSEC validation has made EDNS support much more important and probably helped drive adoption. However, the reliance on DNSSEC, ...Missing: Lease | Show results with:Lease
  45. [45]
    Privacy-friendly EDNS Client Subnet - AdGuard DNS
    Jan 23, 2024 · Our observations show that about 67% of DNS queries involve domain names whose nameservers support ECS. Comparing queries to ECS-enabled ...Missing: percentage | Show results with:percentage
  46. [46]
    Measuring Middlebox Interference with DNS Records
    Nov 17, 2020 · Measurements have shown that some middleboxes do not properly pass all DNS records. If a middlebox were to block the RRSIG records that carry ...Missing: EDNS | Show results with:EDNS
  47. [47]
    DNSViz | A DNS visualization tool
    DNSViz is a tool for visualizing the status of a DNS zone. It was designed as a resource for understanding and troubleshooting deployment of the DNS Security ...Missing: EDNS | Show results with:EDNS
  48. [48]
    DNSSEC Guide : What's EDNS All About (And Why Should I Care)?
    Extension mechanism for DNS (EDNS, or EDNS(0)) gives us a mechanism to send DNS data in larger packets over UDP. In order to support EDNS, both the DNS ...
  49. [49]
    [PDF] A Cloud Provider's View of EDNS Client-Subnet Adoption
    The EDNS Client Subnet specification provides a solution by embedding a portion of the client's IP address in the DNS query to help CDNs make better redirection ...<|separator|>
  50. [50]
  51. [51]
    dns reflection attack vs dns amplification attack
    Jul 13, 2015 · To amplify a DNS attack, each DNS request can be sent using the EDNS0 DNS protocol extension, which allows for large DNS messages, or using the ...
  52. [52]
    DNS amplification DDoS attack - Cloudflare
    DNS amplification is a DDoS attack that leverages DNS resolvers to overwhelm a victim with traffic.Missing: EDNS concerns
  53. [53]
    [PDF] Extended Abstract: Understanding the Privacy Implications of ECS
    ECS makes DNS less private, increasing mass surveillance risk and enabling targeted DNS poisoning attacks. It reveals a portion of the client's IP address.
  54. [54]
    Understanding the Growth and Security Considerations of ECS
    In this paper, we explore the implications of a recent extension to DNS called EDNS Client Subnet (ECS). This extension extends the visibility of client ...
  55. [55]
  56. [56]
  57. [57]
    DNSSEC - Domain Name System Security Extensions
    Feb 14, 2022 · DNSSEC OK (DO) - in the EDNS part of the Opt RR TTL, used in the query, indicates that the Resolver supports DNSSEC and wants to receive DNSSEC ...<|separator|>
  58. [58]
    Arelion DDoS threat landscape report 2025 reveals unprecedented ...
    Jun 12, 2025 · Arelion has today announced the publication of its DDoS threat landscape report 2025, offering a detailed analysis of Distributed ...Missing: EDNS | Show results with:EDNS
  59. [59]
    Extended DNS Errors: Unlocking the Full Potential of ... - RIPE Labs
    Sep 28, 2023 · In this article, we examine the new Extended DNS Errors (EDE) mechanism that provides extra feedback on DNS resolutions.
  60. [60]
    Extended DNS Errors used in DNS software and services - SIDN
    Jun 13, 2025 · RFC 8914 defines a long list of 'Extended DNS Errors' (EDE). In total, there are 24 error codes/messages, of which nearly half relate to DNSSEC.
  61. [61]
    Measuring the impact of DNS Flag Day 2020 - APNIC Blog
    Dec 14, 2020 · On the Flag Day (1 October 2020), DNS client behaviour should use a default EDNS payload size value of 1,232 octets, and DNS server behaviour ...
  62. [62]
    Fragmentation, Truncation, and Timeouts: Are Large DNS Messages ...
    Jun 16, 2021 · While rather rare, large responses exist in DNS, and they can be prevented by the increased adoption of smaller buffer sizes.
  63. [63]
    RFC 7828: The edns-tcp-keepalive EDNS0 Option
    A DNS client that sent a query containing the edns-keepalive-option ... However, it should be noted that RFC 6891 states: Lack of presence of an OPT ...
  64. [64]
    [PDF] Evaluating DNS Resiliency with Truncation, Fragmentation and ...
    Yet, 3 out of. 10 resolvers mainly announce very large EDNS(0) buffer sizes both from the Edge as well as from the Core, which potentially causes fragmentation.
  65. [65]
    EDNS buffer size impact - Server Fault
    Sep 7, 2020 · The current recommendation as documented for the 2020 DNS flag day for the default EDNS buffer size of 1232 bytes is selected to get the maximum buffer size.Why DNS through UDP has a 512 bytes limit?What can I do to prevent BIND from outputting these logsMore results from serverfault.com
  66. [66]
    RFC 8467: Padding Policies for Extension Mechanisms for DNS (EDNS(0))
    ### Summary of Padding Strategies for EDNS(0) in RFC 8467