Configurando o cache do resolvedor de DNS do Windows

6

Eu fiz esta pergunta no Stack Overflow há alguns meses e não obtive quaisquer respostas úteis. Talvez alguém aqui tenha mais informações.

Observe que estou falando sobre o cache do resolvedor de DNS do cliente. Esta mensagem não está relacionada com o servidor DNS do Windows.

Eu tenho um programa em C # que faz muitas resoluções de DNS. Como o componente HTTPWebRequest não me permite alterar o cabeçalho do host, não consigo criar meu próprio cache DNS interno. Então, eu tenho que depender do cache DNS do Windows, que não parece ser passível de alteração.

Existe um artigo do TechNet sobre as configurações do Registro do cache DNS no Windows Server 2003, mas não consegui provar que defini-las faz alguma coisa no XP, no Server 2003, no Vista ou no Server 2008. Todas as outras páginas que encontrei através de uma pesquisa do Google ou referência essa página ou parafraseá-lo, às vezes incorretamente.

O comando ' ipconfig ' do Windows tem uma opção /displaydns que gerará o conteúdo do cache. No meu conhecimento, essa é a única maneira de determinar o tamanho do cache DNS. Em meus experimentos em uma caixa de 32 bits do Windows XP com 2 GB de memória, independentemente de definir os valores de registro do cache DNS, sempre acabo com entre 30 e 40 itens no cache - mesmo depois de fazer milhares de resoluções de DNS . Na minha máquina Windows 2008 de 64 bits com 16 GB de memória, sempre obtenho entre 270 e 300 itens no cache.

Estou perplexo. Não sei qual é a resposta, mas acho que um dos seguintes é o caso:

  1. Não é possível alterar o tamanho do cache do resolvedor de DNS.
  2. É possível, mas a documentação está errada.
  3. A documentação está correta, mas está incompleta.
  4. A documentação está correta e completa, mas sou burra demais para entender.
  5. As entradas de registro documentadas realmente alteraram o tamanho do cache, mas ipconfig não está me mostrando todas as entradas que estão no cache.

Alguém pode me dizer se é possível configurar o tamanho do cache do resolvedor de DNS no Windows XP, Vista ou Server 2008?

    
por Jim Mischel 29.09.2009 / 22:04

3 respostas

2

Outra maneira de verificar seria ver o tráfego de DNS fluindo no fio. ou seja, se seu aplicativo fizer uma consulta por domainX às 14h e você não vir o pacote DNS correspondente às 14h em rastreio, esse problema será resolvido usando o cache do lado do cliente.

Eu sei, é uma maneira complicada de confirmar o tamanho do cache. Concordo que deve haver uma maneira melhor de confirmar isso.

Tente fazer uma pergunta nos fóruns oficiais da Microsoft ou envie um email para a equipe de rede

aqui. link

    
por 01.10.2009 / 04:07
1

Dê um giro:

HKLM \ Sistema \ CurrentControlSet \ services \ Dnscache \ Parâmetros \ MaxCacheSize

Não consigo encontrar nenhuma documentação para isso, mas o serviço Dnscache verifica a existência desse valor de registro quando ele é inicializado, então vale a pena testar.

O valor é provavelmente em kilobytes. Como eu disse, uma vez que não é documentado, você terá que testar.

    
por 13.08.2012 / 22:51
0

Eu não tentei mudar as configurações no cliente DNS, então não posso falar sobre isso, mas o que eu sugiro é executar o processmon (www.sysinternals.com) enquanto você estiver reiniciando o serviço. Você deve ver qualquer tentativa feita para ler as chaves do Registro. Ele dirá exatamente qual chave do registro e itens ele está tentando acessar. Isso deve combinar com a documentação, mas se isso não acontecer, esperamos dizer o que está errado.

    
por 29.09.2009 / 22:13