Estou tendo um problema de resolução de DNS que afeta o desempenho do meu site hospedado localmente quando o navega na minha máquina local. Se eu anexar o sufixo DNS da minha rede ao nome da máquina local quando for para o URL no meu navegador, o site terá um tempo de carregamento terrível (mais de 100 vezes mais lento) do que sem o sufixo DNS.
Eu pensei que poderia corrigir isso usando o meu arquivo hosts para evitar a necessidade de uma pesquisa. Adicionei uma entrada ao meu arquivo hosts como esta
127.0.0.1 myMachine.MyDnsSuffix
Mas isso não mudou os tempos de carregamento, mesmo após uma reinicialização. Embora não seja importante resolver esse problema específico, eu realmente gostaria de saber por que isso acontece.
Além disso, quando executo o nslookup no domínio myMachine.MyDnsSuffix
, percebo que ele usa o servidor DNS da minha rede para encontrar o IP. Isso pode estar relacionado ao meu problema ou estou apenas entendendo mal o funcionamento do nslookup?
fonte
nslookup
. Eu apenas tentei fazer ping nomyMachine.MyDnsSuffix
e ele resolveu o meu IP na rede, não127.0.0.1
como o especificado no meu arquivo HOSTS.ipconfig /flushdns
. E os NETBIOS armazenar em cache também:nbtstat -R
. (Processo sensível no Windows - WTF, por quê?!?)As pesquisas de DNS não usam um arquivo de hosts. Sempre.
fonte
gethostbyname()
pode ir através do arquivo hosts, ou através de DNS, mas um específico do DNS lookup (interpretada pornslookup
) não vai usar o arquivo hosts.OK, nova abordagem. Vamos limpar seu cache IP e NETBIOS.
ipconfig /flushdns
enbtstat -R
. Em seguida, ative um farejador de pacotes como o Wireshark e execute um ping enquanto estiver em execução.A partir da captura de pacotes, queremos ver se A) Há uma solicitação de DNS sendo enviada e, em caso afirmativo, que nome está solicitando. B) Se houver uma solicitação NETBIOS saindo. É possível que esse nome esteja sendo resolvido via NETBIOS em vez do DNS adequado.
Se não visualizarmos nenhuma das opções acima, apesar de você ter liberado o cache, é provável que o nome esteja sendo extraído de hosts ou lmhosts.
fonte
Algumas pessoas nos fóruns da Web afirmam que criar um novo arquivo de hosts e reiniciar o serviço de cliente DNS corrige o problema, mas não sei por que isso funcionaria se você já tentou reiniciar.
Sei que é um tiro no escuro, mas não existem palavras relacionadas à Microsoft como MSDN, Microsoft ou MSN na entrada do arquivo hosts, existem? A Microsoft criou o dnsapi.dll para ignorar as entradas de arquivo de hosts que correspondem a determinados nomes. Por exemplo, se eu adicionar a seguinte entrada, o Windows a ignorará e resolverá os dois nomes de host na entrada usando DNS:
fonte
HOSTS
arquivo, mas mesmo o domínio que não é da Microsoft é ignorado se compartilhar uma entrada com um domínio da Microsoft? Isso é apenas uma má programação da parte deles. Definitivamente, isso é algo a se observar se "minificar" umHOSTS
arquivo.Ao usar o nome DNS completo, seu navegador está tentando acessar o servidor proxy - clique no IE .
O arquivo de hosts ou a ordem de resolução de nomes não tem nada a ver com esse problema, e a dor inflamada na parte traseira da humanidade, que é o arquivo de hosts, deve ser retirada e filmada ruidosamente.
fonte
http://geekswithblogs.net/JanS/archive/2009/06/17/beware-of-spacing-in-windows7-hosts-file.aspx
Esta parece ser a causa real. Deixe a Microsoft repentinamente e sem aviso, ignorar uma convenção de 25 anos.
fonte
http://www.tweaksforgeeks.com/windows7/2011/02/windows-7-hosts-file-ignored <- Trabalhe para mim!
fonte