resolv.conf question / timeout behaviour
tom at preissler.co.uk
Wed Mar 31 10:56:09 UTC 2021
at my work place we have a three resolver setup in /etc/resolv.conf.
We had sometimes, though rarely, response times for DNS like 14000ms,
due to the fact that the *first* listed resolver is down for maintenance
reasons. The application we test this with is Oracle/TNSPing.
As a mitigation we therefore put in timeout:1, but we just recently got
again a TNSPing response of 9000ms.
I noticed in man resolv.conf this section on "timeout":
Sets the amount of time the resolver will wait for
a response from a remote name server before
retrying the query via a different name server.
| This may not be the total time taken by any
| resolver API call and there is no guarantee that a
| single resolver API call maps to a single timeout.
Measured in seconds, the default is RES_TIMEOUT
(currently 5, see <resolv.h>). The value for this
option is silently capped to 30.
I am intrigued by the above sentence marked with "|". Does anybody
know what that means in detail, can anybody explain that please?
I explained the reason for the 9000ms so that Oracle and its many processes
all come together to resolve the DNS name and they *keep hitting* the first
resolver - and "timeout" can't kick in due to parallel requests from different
processes, hence the high overall response time.
More information about the bind-users