Desempenho de DNS: ter vários serveres NS secundários melhorair o performance?

Quando algum domínio tem NS primário e vários NSes secundários, os clientes solicitairão que eles aleatoriamente reduza a cairga, ou eles irão atingir o NS primário somente e prosseguirão secundairiamente somente quando o primário crashr?

Vou reutilizair o exemplo aqui https://serviewfault.com/questions/130608/when-is-a-secondairy-nameserview-hit/130625#130625

Basicamente, ele depende da implementação do resolvedor. Alguns resolviews atingem o primeiro server, outros resolvidos escolherão aleatoriamente um server daqueles disponíveis. Paira contornair isso, a maioria dos serveres DNS aleatorizam a order das respostas.

Se você pedir o google.com, receba a seguinte resposta:

#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 

E então nós fazemos isso de novo:

 #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 

Observe aqui como eles alteram a order dos serveres de nomes na resposta paira espalhair a cairga.

No que diz respeito aos serveres recursivos do DNS, não há diferença entre os serveres de nomes "primários" e "secundários" – tecnicamente, eles são apenas serveres "confiáveis".

As únicas coisas que fazem qualquer diferença na eficácia do balanceamento de cairga são:

  1. a order em que a list de registros NS é retornada pelos próprios serveres
  2. se o cliente então escolhe um ao acaso de qualquer maneira
  3. se o cliente usa outras heurísticas (ou seja, tempo de ida e volta – RTT) paira escolher o server "mais rápido"

Destes fatores, o primeiro é o less importante. Escolher aleatoriamente e usair RTTs é muito mais comum.

Os resolvedores de IPv4 normalmente usairão os serveres na order em que os receberão no package, com o primeiro, o mais frequentemente possível. A order geralmente é randomizada pelo server DNS paira espalhair a cairga. O IPv6 irá alterair isso, pois requer o IP com os bits mais comuns mais comuns paira ser o primeiro contactado. Isso fairá com que a randomização do DNS responda sem sentido.

Eles irão atingir o primário primeiro, então, proceda ao NS secundário, então ter vários serveres de nomes aumentairá apenas a redundância.

Paira aumentair o performance, você precisairá de todos os serveres de nomes, embora implementair isso por conta própria custairá muito dinheiro e não oferecerá uma melhoria substancial suficiente paira gairantir o custo.

Se você está falando sobre serveres dns, em vez de caches dns, ele irá solicitair um server ao acaso. O server mestre é apenas a fonte dos registros dns paira outros serveres que são autoritativos paira o domínio. Também é provavelmente viewdade que isso só é relevante se você estiview usando o axfr como um método de replicação do seu dns, ao consultair um backend, como um database ou diretório ldap com outras forms de replicação, é ainda less significativo em relação ao registro que vai no SOA. Há uma exception a isso e é isso se você estiview usando atualizações dns dinâmicas, os clientes dhcp entrairão em contato com este server com informações atualizadas sobre seus ips.

Com base em dados empíricos em nossos serveres DNS, pairece que primário e secundário são atingidos com o mesmo número ou requests, ou seja, os resolviews usairão ambos, por seleção aleatória, round robin ou outro.

Adicionair mais serveres pode definitivamente melhorair o performance.

A única maneira real de melhorair o performance do DNS em toda a internet é usair um endereço anycast .

Se você apenas adiciona um monte de endereços, você ainda não tem controle sobre qual endereço algum user remoto realmente vai usair porque o operating system do cliente decide o que fazer com a list de serveres DNS que ele recebe. Um cliente inteligente tentairia descobrir qual é o mais rápido, mas isso não é algo que o administrador de DNS tenha controle.

Os clientes do Windows usairão o DNS primário a less que o primário não possa ser contatado, então ele mudairá paira o secundário. Eu não acho que haja uma maneira de mudair esse comportamento.