diff --git a/bin/named/named.conf.rst b/bin/named/named.conf.rst index 9fbe08b0ba..40163878a5 100644 --- a/bin/named/named.conf.rst +++ b/bin/named/named.conf.rst @@ -403,6 +403,7 @@ OPTIONS sig-validity-interval integer [ integer ]; sortlist { address_match_element; ... }; stacksize ( default | unlimited | sizeval ); + stale-answer-client-timeout ( disabled | off | integer ); stale-answer-enable boolean; stale-answer-ttl duration; stale-cache-enable boolean; @@ -806,6 +807,7 @@ VIEW sig-signing-type integer; sig-validity-interval integer [ integer ]; sortlist { address_match_element; ... }; + stale-answer-client-timeout ( disabled | off | integer ); stale-answer-enable boolean; stale-answer-ttl duration; stale-cache-enable boolean; diff --git a/doc/arm/reference.rst b/doc/arm/reference.rst index 96416d320e..eb9140b3dc 100644 --- a/doc/arm/reference.rst +++ b/doc/arm/reference.rst @@ -1832,6 +1832,20 @@ Boolean Options Information about stale answers is logged under the ``serve-stale`` log category. +``stale-answer-client-timeout`` + This option defines the amount of time ``named`` waits before attempting to + answer the query with a stale RRset from cache. If a stale answer is found, + ``named`` continues the ongoing fetches, attempting to refresh the RRset in + cache until the ``resolver-query-timeout`` interval is reached. + + The default value is ``1800`` (in milliseconds) and the maximum value is + bounded to ``resolver-query-timeout`` minus one second. A value of ``0`` + immediately returns a cached RRset if available, and still attempts a refresh + of the data in cache. + + The option can be disabled by setting the value to ``off`` or ``disabled``. + It also has no effect if ``stale-answer-enable`` is disabled. + ``stale-cache-enable`` If ``yes``, enable the retaining of "stale" cached answers. Default ``no``. diff --git a/doc/man/named.conf.5in b/doc/man/named.conf.5in index 9798295f4a..2180bdbd6c 100644 --- a/doc/man/named.conf.5in +++ b/doc/man/named.conf.5in @@ -466,6 +466,7 @@ options { sig\-validity\-interval integer [ integer ]; sortlist { address_match_element; ... }; stacksize ( default | unlimited | sizeval ); + stale\-answer\-client\-timeout ( disabled | off | integer ); stale\-answer\-enable boolean; stale\-answer\-ttl duration; stale\-cache\-enable boolean; @@ -901,6 +902,7 @@ view string [ class ] { sig\-signing\-type integer; sig\-validity\-interval integer [ integer ]; sortlist { address_match_element; ... }; + stale\-answer\-client\-timeout ( disabled | off | integer ); stale\-answer\-enable boolean; stale\-answer\-ttl duration; stale\-cache\-enable boolean; diff --git a/doc/misc/options b/doc/misc/options index 33874c2d0c..3444f6eaf8 100644 --- a/doc/misc/options +++ b/doc/misc/options @@ -333,6 +333,7 @@ options { sig-validity-interval [ ]; sortlist { ; ... }; stacksize ( default | unlimited | ); + stale-answer-client-timeout ( disabled | off | ); stale-answer-enable ; stale-answer-ttl ; stale-cache-enable ; @@ -696,6 +697,7 @@ view [ ] { sig-signing-type ; sig-validity-interval [ ]; sortlist { ; ... }; + stale-answer-client-timeout ( disabled | off | ); stale-answer-enable ; stale-answer-ttl ; stale-cache-enable ; diff --git a/doc/misc/options.active b/doc/misc/options.active index 6d158267bf..deeda67131 100644 --- a/doc/misc/options.active +++ b/doc/misc/options.active @@ -331,6 +331,7 @@ options { sig-validity-interval [ ]; sortlist { ; ... }; stacksize ( default | unlimited | ); + stale-answer-client-timeout ( disabled | off | ); stale-answer-enable ; stale-answer-ttl ; stale-cache-enable ; @@ -692,6 +693,7 @@ view [ ] { sig-signing-type ; sig-validity-interval [ ]; sortlist { ; ... }; + stale-answer-client-timeout ( disabled | off | ); stale-answer-enable ; stale-answer-ttl ; stale-cache-enable ; diff --git a/doc/misc/options.grammar.rst b/doc/misc/options.grammar.rst index 867256d25a..4fdc098aae 100644 --- a/doc/misc/options.grammar.rst +++ b/doc/misc/options.grammar.rst @@ -259,6 +259,7 @@ sig-validity-interval [ ]; sortlist { ; ... }; stacksize ( default | unlimited | ); + stale-answer-client-timeout ( disabled | off | ); stale-answer-enable ; stale-answer-ttl ; stale-cache-enable ; diff --git a/doc/notes/notes-current.rst b/doc/notes/notes-current.rst index 15067ac56d..9044417d92 100644 --- a/doc/notes/notes-current.rst +++ b/doc/notes/notes-current.rst @@ -26,6 +26,23 @@ New Features - None. +- A new option, ```stale-answer-client-timeout``, has been added to + improve ``named``'s behavior with respect to serving stale data. The option + defines the amount of time ``named`` waits before attempting + to answer the query with a stale RRset from cache. If a stale answer + is found, ``named`` continues the ongoing fetches, attempting to + refresh the RRset in cache until the ``resolver-query-timeout`` interval is + reached. + + The default value is ``1800`` (in milliseconds) and the maximum value is + bounded to ``resolver-query-timeout`` minus one second. A value of + ``0`` immediately returns a cached RRset if available, and still + attempts a refresh of the data in cache. + + The option can be disabled by setting the value to ``off`` or + ``disabled``. It also has no effect if ``stale-answer-enable`` is + disabled. + Removed Features ~~~~~~~~~~~~~~~~