1 votes

Délais d'attente des résolveurs dans Bind 10

Existe-t-il des détails sur la façon dont bind 10 gère les délais d'attente des résolveurs ?

Les dernières informations que j'ai pu trouver concernaient Bind 8.2.1+. http://fengnet.com/book/DNS.and.BIND.5th.Edition/dns5-CHP-6-SECT-2.html

Le délai d'attente du résolveur pour le prochain tour de requêtes est basé sur le nombre de serveurs de noms configurés dans resolv.conf. Le délai d'attente pour le deuxième tour de requêtes est de 10 secondes divisé par le nombre de serveurs de noms configurés, arrondi à l'inférieur. Le délai d'attente de chaque tour successif est le double du délai d'attente précédent. Après trois séries de retransmissions (soit un total de quatre délais d'attente pour chaque serveur de noms configuré), le résolveur renonce à interroger les serveurs de noms.

Dans BIND 8.2.1, l'ISC a modifié le résolveur pour qu'il n'envoie qu'un seul jeu de tentatives, soit un total de deux requêtes à chaque serveur de noms dans resolv.conf. Cette modification avait pour but de réduire le temps d'attente d'un utilisateur pour le retour du résolveur si aucun des serveurs de noms ne répondait.

0 votes

2voto

polynomial Points 3908

Il semble qu'il soit légèrement différent de ce qu'il est maintenant dans le dernier instantané de développement de bind10 :

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);

0 votes

Merci d'avoir trouvé ça. Voyez-vous quelque chose à propos du query_timeout - quand la requête à un serveur échoue, est-ce qu'il interroge un autre serveur - et il essaie jusqu'à la valeur de réessai ?

0 votes

Oui, en regardant le fichier recursive_query.cc, on constate qu'il continue à envoyer des requêtes, en attendant le délai d'attente query_timeout pour une réponse de chaque serveur de noms qu'il interroge. Après client_timeout, il renvoie une erreur au client qui a demandé une réponse, mais il continue à essayer de résoudre le nom jusqu'à lookup_timeout, moment où il abandonne.

0 votes

Et quand il itère à travers les serveurs, il passe au suivant en cas d'échec - ce n'est pas une requête multiple en parallèle, correct ? merci de regarder ça (je ne connais pas le C++)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X