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

8

Atualmente, estou executando um site cujo tráfego está distribuído entre 7 servidores espelho agora (usando o round robin DNS). Porém, em breve serão necessários mais espelhos, devido à grande quantidade de tráfego que cresce permanentemente.

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

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

Obrigado.

Liberta-te
fonte

Respostas:

10

Uma coisa a ter em mente é que, por padrão, as pesquisas de DNS usam UDP. Se a resposta for maior do que pode caber em um único datagrama, serão retornados quantos caberem 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 o TCP.

Os servidores DNS em cache não devem armazenar em cache respostas truncadas, pois eles não sabem o quão completo é o conjunto de registros retornados (a resposta não diz "Estou fornecendo 12 de 28 registros").

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

Se você estiver usando registros CNAME, isso também aumentará o tamanho da resposta, à medida que você recupera 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 cruza o tamanho máximo de uma resposta UDP.

James F
fonte
11
na verdade, os servidores de cache têm permissão para armazenar em cache as respostas se a seção inteira foi recebida. Se a seção 'resposta' estiver correta, mas a seção 'adicional' estiver truncada, seria bom armazenar em cache essa resposta.
Alnitak
8

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

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

Mike
fonte
3

Estou atrasado para esta 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 ultrapassarão 36. Na verdade, se você incluir mais do que isso, ele não incluirá apenas os servidores extras, eles o ignorarão completamente. Verizon e Comcast foram os dois com quem tive problemas, mas tenho certeza de que outros são afetados.

Dito isto, se você tiver tráfego suficiente para garantir 36 espelhos, não use DNS de rodízio.

UltimateBrent
fonte
2

Se você possui muitos servidores, talvez a melhor resposta seja fazer o 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 os clientes dos pontos de roteamento nos servidores mais próximos em rede. Cada servidor responde em round-robin por um subconjunto da lista completa de possíveis servidores.

Andrew McGregor
fonte
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 houver).

Chopper3
fonte