From 8ddd5c2f9cb53105b1950d99baf802e1be7e8cee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= Date: Mon, 25 May 2020 14:34:56 +0200 Subject: [PATCH] Update "edns-udp-size" documentation in the ARM Update the description of the process for determining the advertised UDP buffer size in outgoing queries so that it matches the code. --- doc/arm/reference.rst | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/doc/arm/reference.rst b/doc/arm/reference.rst index 582a2c77b2..42b234fa75 100644 --- a/doc/arm/reference.rst +++ b/doc/arm/reference.rst @@ -3401,16 +3401,23 @@ Tuning buffer size of 512, as this has the greatest chance of success on the first try. - If the initial query is successful with EDNS advertising a buffer size of - 512, then ``named`` will advertise progressively larger buffer sizes on - successive queries, until responses begin timing out or ``edns-udp-size`` is - reached. + If the initial query is successful with EDNS advertising a buffer + size of 512, then ``named`` will switch to advertising a buffer size + of 4096 bytes (unless ``edns-udp-size`` is lower, in which case the + latter will be used). - The default buffer sizes used by ``named`` are 512, 1232, 1432, and - 4096, but never exceeding ``edns-udp-size``. (The values 1232 and - 1432 are chosen to allow for an IPv4/IPv6 encapsulated UDP message to - be sent without fragmentation at the minimum MTU sizes for Ethernet - and IPv6 networks.) + Query timeouts observed for any given server will affect the buffer + size advertised in queries sent to that server. Depending on + observed packet dropping patterns, the advertised buffer size will be + lowered to 1432 bytes, 1232 bytes, 512 bytes, or the size of the + largest UDP response ever received from a given server, and then + clamped to the ``<512, edns-udp-size>`` range. Per-server EDNS + statistics are only retained in memory for the lifetime of a given + server's ADB entry. + + (The values 1232 and 1432 are chosen to allow for an IPv4/IPv6 + encapsulated UDP message to be sent without fragmentation at the + minimum MTU sizes for Ethernet and IPv6 networks.) Any server-specific ``edns-udp-size`` setting has precedence over all the above rules.