Bind 10 – Resolver Timeouts Troubleshooting

binddomain-name-system

Is there any detail on how bind 10 handles resolver timeouts?

The latest info I could find was on Bind 8.2.1+
http://fengnet.com/book/DNS.and.BIND.5th.Edition/dns5-CHP-6-SECT-2.html

The resolver timeout for the next round of queries is based on the number of nameservers configured in resolv.conf. The timeout for the second round of queries is 10 seconds divided by the number of nameservers configured, rounded down. Each successive round's timeout is double the previous timeout. After three sets of retransmissions (a total of four timeouts for every nameserver configured), the resolver gives up trying to query nameservers.

In BIND 8.2.1, the ISC changed the resolver to send only one set of retries, or a total of two queries to each nameserver in resolv.conf. This was intended to reduce the amount of time a user would have to wait for the resolver to return if none of the nameservers was responding.

Best Answer

It appears to be slightly different than that now in the latest bind10 development snapshot:

bind10-devel-20110819/src/lib/resolve/recursive_query.h:

     80     /// \param query_timeout Timeout value for queries we sent, in ms
     81     /// \param client_timeout Timeout value for when we send back an
     82     ///        error, in ms
     83     /// \param lookup_timeout Timeout value for when we give up, in ms
     84     /// \param retries how many times we try again (0 means just send and
     85     ///     and return if it returs).
     86     RecursiveQuery(DNSService& dns_service,
...
     93                    int query_timeout = 2000,
     94                    int client_timeout = 4000,
     95                    int lookup_timeout = 30000,
     96                    unsigned retries = 3);