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

25

Quando um servidor DNS está procurando um endereço IP para um cliente e recebe uma lista de vários servidores DNS a serem consultados, 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? É uma implementação específica ou é coberta por uma RFC?

bpfinn
fonte

Respostas:

18

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

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

Jesper
fonte
4

A RFC 1794 cobre a pergunta de Round Robin que você está fazendo.

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

Mark Turner
fonte
3

Depende do cliente - de particular relevância para quem executa uma loja do Windows é o fato de o Vista \ Windows Server 2008 escolher o endereço usando um mecanismo diferente (se a pilha do 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, não "honrarão" as respostas de rodízio de DNS da mesma maneira que nas versões anteriores. Há uma explicação detalhada disso neste artigo do 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 o backup.

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

Helvick
fonte