Performance DNS: les servers NS secondaires secondaires améliorent-ils les performances?

Lorsque certains domaines ont une NS principale et plusieurs NSes secondaires, les clients leur requestront-ils de réduire au hasard la charge, ou ils atteindront NS primaire uniquement et ne procéderont-ils qu'aux secondaires uniquement lorsque le primaire échoue?

Je vais réutiliser l'exemple à partir d'ici https://serverfault.com/questions/130608/when-is-a-secondary-nameserver-hit/130625#130625

Fondamentalement, cela dépend de la mise en œuvre du résolveur. Certains résolveurs frappent le premier server, d'autres résolus choisiront au hasard un server à partir de ceux disponibles. Pour contourner la plupart des servers DNS, randomment l'ordre des réponses.

Si vous requestz google.com, vous obtenez la réponse suivante:

#dig NS google.com ;; QUESTION SECTION: ;google.com. IN NS ;; ANSWER SECTION: google.com. 297286 IN NS ns3.google.com. google.com. 297286 IN NS ns2.google.com. google.com. 297286 IN NS ns4.google.com. google.com. 297286 IN NS ns1.google.com. ;; ADDITIONAL SECTION: ns1.google.com. 297067 IN A 216.239.32.10 ns2.google.com. 297074 IN A 216.239.34.10 ns3.google.com. 297074 IN A 216.239.36.10 ns4.google.com. 297067 IN A 216.239.38.10 

Et puis nous le faisons à nouveau:

 #dig NS google.com ;; QUESTION SECTION: ;google.com. IN NS ;; ANSWER SECTION: google.com. 297249 IN NS ns3.google.com. google.com. 297249 IN NS ns2.google.com. google.com. 297249 IN NS ns1.google.com. google.com. 297249 IN NS ns4.google.com. ;; ADDITIONAL SECTION: ns1.google.com. 297030 IN A 216.239.32.10 ns2.google.com. 297037 IN A 216.239.34.10 ns3.google.com. 297037 IN A 216.239.36.10 ns4.google.com. 297030 IN A 216.239.38.10 

Notez ici comment ils modifient l'ordre des servers de noms dans la réponse pour répartir la charge.

En ce qui concerne les servers récursifs DNS, il n'y a pas de différence entre les servers de noms «primaires» et «secondaires» – techniquement, ils sont tous deux des servers «autorisés».

Les seules choses qui modifient l'efficacité de l'équilibrage de charge sont les suivantes:

  1. l'ordre selon lequel la list des loggings NS est renvoyée par les servers eux-mêmes
  2. si le client choisit un au hasard de toute façon
  3. si le client utilise d'autres heuristiques (c'est-à-dire le time aller-return – RTT) pour choisir le server «le plus rapide»

Parmi ces facteurs, le premier est le less important. Choisir au hasard et utiliser RTT est beaucoup plus fréquent.

Les résolveurs IPv4 utilisent généralement les servers dans l'ordre où ils les apathent dans le package, le premier ayant le plus souvent réussi. L'ordre est généralement randomisé par le server DNS pour répartir la charge. IPv6 va changer cela, car il nécessite l'IP avec les bits les plus courants les plus communs pour être contacté en premier. Cela rend la randomisation des réponses DNS sans signification.

Ils aborderont le premier, puis passeront à la SN secondaire, de sorte que plusieurs servers de noms n'augmenteront que la redondance.

Afin d'augmenter les performances, vous auriez besoin de tous les servers de noms, bien que la mise en œuvre de votre propre coût coûte beaucoup d'argent et n'offrira pas une amélioration substantielle pour justifier le coût.

Si vous parlez de servers dns, plutôt que dns caches, il requestra à un server au hasard. Le server maître est simplement la source des loggings dns pour les autres servers qui sont autorisés pour le domaine. Il est également vraisemblable que ce n'est pertinent que si vous utilisez axfr comme méthode de réplication de votre dns, lorsque vous consultez un backend tel qu'une database ou un directory ldap avec d'autres forms de réplication, il est encore less significatif quant à l'logging dans SOA. Il y a une exception à cela et c'est que si vous utilisez des mises à jour dynamics de dns, les clients dhcp contacteront ce server avec des informations mises à jour sur leur ips.

Sur la database empiriques sur nos servers DNS, il semble que le primaire et le secondaire soient atteints avec le même nombre ou les mêmes requests, c'est-à-dire que les résolveurs utiliseront les deux, soit par sélection random, soit par round robin ou autre.

L'ajout de plus de servers peut certainement améliorer les performances.

La seule façon réelle d'améliorer la performance du DNS sur l'set de l'Internet consiste à utiliser une adresse anycast .

Si vous venez d'append un tas d'adresses, vous n'avez toujours aucun contrôle sur l'adresse que certains users distants utiliseront réellement car le operating system du client décide de ce qu'il faut faire avec la list des servers DNS qu'il obtient. Un client intelligent essayerait de comprendre quel est le plus rapide, mais ce n'est pas quelque chose dont l'administrateur DNS a le contrôle.

Les clients Windows utiliseront le DNS principal à less que le primaire ne puisse être contacté, puis il passe au secondaire. Je ne pense pas qu'il existe un moyen de modifier ce comportement.