Qual é o limite prático para endereços IP no round-robin de DNS?

8

Atualmente, estou executando um site cujo tráfego é distribuído entre 7 servidores espelhos no momento (usando round robin de DNS). Mas em breve mais espelhos serão necessários, dada a grande quantidade de tráfego que está crescendo permanentemente.

Existe algum limite prático recomendado para o número de endereços IP associados a um determinado nome de domínio ao usar o round robin DNS ??

Além disso, que tipo de solução você recomendaria quando o número de espelhos fosse alto (por exemplo, mais de 10 ou 20 espelhos)?

Obrigado.

    
por GetFree 26.06.2009 / 04:37

5 respostas

9

Uma coisa a ter em mente é que, por padrão, as pesquisas de DNS usam o UDP. Se a resposta for maior do que a que pode caber em um único datagrama, quantos forem necessários serão retornados e o bit TC (truncado) será definido no cabeçalho.

O solicitante pode optar por trabalhar com o que foi retornado ou tentar novamente a consulta usando TCP.

O armazenamento em cache dos servidores DNS não deve armazenar em cache as respostas truncadas, pois elas não sabem o quão completo é o conjunto de registros retornados (a resposta não diz "Estou dando a você 12 de 28 registros").

Assim, o número máximo de registros é um fator de quanto você pode inserir em um datagrama UDP. Lembre-se de que a resposta precisa incluir a seção de autoridade, que variará de tamanho com base no registro SOA da zona.

Se você estiver usando registros CNAME, isso também aumentará o tamanho da resposta, já que você recebe o CNAME e o registro A da coisa apontada.

Sua melhor aposta é brincar com vários números de registros A usando dig ou "host -v" para ver quando a consulta ultrapassa o tamanho máximo de uma resposta UDP.

    
por 26.06.2009 / 10:49
8

Não há limite rígido, mas a maioria dos sites não executa mais de 5 ou 10 espelhos. O espelhamento por round robin de DNS é mais útil se os sites estiverem separados geograficamente, de modo que haja redundância além do compartilhamento de carga.

À medida que o número de espelhos aumenta, a eficiência do uso de round-robin de DNS como compartilhamento de carga diminui porque o round-robin do DNS não considera solicitações diferentes que exigem mais recursos. É melhor usar o balanceamento de carga de front-end para distribuir a carga de trabalho pela carga da CPU e disponibilidade do servidor, o que também simplificará a manutenção, pois um servidor pode ser imediatamente removido sem uma alteração de DNS, resultando em clientes tentando acessar um servidor inativo de registros DNS armazenados em cache .

    
por 26.06.2009 / 05:19
3

Estou atrasado para essa pergunta, mas achei que seria bom mencionar os limites reais do que você pode fazer. Não há limite teórico que conheço, mas vários ISPs não levam nada além de 36. Na verdade, se você incluir mais do que isso, ele não apenas não incluirá os servidores extras, eles o ignorarão completamente. Verizon e Comcast foram os dois problemas com os quais tive problemas, mas tenho certeza de que outros estão afetados.

Dito isto, se você tiver tráfego suficiente para garantir 36 espelhos, por favor, não use o DNS round-robin.

    
por 09.01.2010 / 06:38
2

Se você tiver muitos servidores, talvez a melhor resposta seja fazer como a Akamai e usar servidores DNS anycast e round robin. Em outras palavras, os servidores DNS da zona são distribuídos pela rede, todos com os mesmos endereços IP e pontos de roteamento nos servidores mais próximos da rede. Cada servidor responde em rodízio para um subconjunto da lista completa de possíveis servidores.

    
por 09.01.2010 / 07:07
1

Fazemos algo muito semelhante, mas usamos balanceadores de carga de hardware (Cisco ACEs btw), dessa forma, o único limite é o tamanho da sub-rede (se for o caso).

    
por 09.01.2010 / 10:14