Como os clientes DNS escolhem um endereço IP quando recebem várias respostas?

22

Quando um servidor DNS está procurando um endereço IP para um cliente e recebe uma lista de vários servidores DNS para consulta, como ele escolhe um? Da mesma forma, quando um cliente DNS recebe uma lista de vários endereços IP para um FQDN, como ele escolhe um? A implementação é específica ou é coberta por um RFC?

    
por bpfinn 15.01.2010 / 00:05

3 respostas

16

Um servidor DNS que resolve uma consulta pode priorizar a ordem na qual ele usa os servidores listados com base nos dados históricos de tempo de resposta (RFC1035 seção 7.2). Ele também pode priorizar por sub-rede mais próxima (eu vi isso no RFC, mas não lembro qual). Se nenhum histórico ou prioridade de sub-rede estiver disponível, ele pode escolher aleatoriamente ou simplesmente escolher o primeiro. Eu vi implementações de servidores DNS fazendo várias combinações de acima.

Um programa cliente escolhendo um endereço IP de uma lista (de registros A / AAAA) geralmente tentará os endereços na ordem em que foram retornados pelo servidor DNS (round robin). Se o cliente não puder se conectar ao primeiro endereço IP retornado, ele deverá tentar o segundo e assim por diante. Por exemplo, todos os principais navegadores fazem isso, no entanto muitos outros programas cliente da Internet "esquecem" essa etapa e falham se não conseguirem se conectar ao primeiro endereço IP.

    
por 16.01.2010 / 16:29
3

RFC 1794 Cobre a pergunta Round Robin que você está fazendo.

Quanto às respostas, a maioria dos clientes DNS usará o primeiro endereço IP na lista, alguns fazem cálculos de sub-rede para descobrir o que está mais próximo, outros escolhem aleatoriamente, mas a maioria depende do servidor DNS para enviar a lista.

    
por 15.01.2010 / 00:12
2

Depende do cliente - de particular relevância para qualquer pessoa executando uma loja Windows é o fato de que o Vista \ Windows Server 2008 escolherá o endereço usando um mecanismo diferente (se a pilha ipv6 estiver instalada) para versões anteriores do Windows que escolheriam o primeiro endereço. Em muitos casos, isso significa que eles sempre escolherão o mesmo, ou seja, eles não "honrarão" as respostas round-robin do DNS da mesma forma que as versões anteriores. Há uma explicação detalhada disso em este artigo de blog da technet .

O artigo vinculado indica que o Windows 7 e o Server 2008 R2 alteram esse comportamento padrão novamente, mas não consigo encontrar nada para fazer isso.

Também vale ressaltar que este é o comportamento compatível com os padrões para o ipv6, até onde eu sei, embora eu ficaria muito feliz em descobrir que estava errado.

    
por 15.01.2010 / 00:28