segunda-feira, 13 de dezembro de 2010

Troubleshooting Host Name Resolution

Vai aqui uma dica muito interessante sobre uma "má" prática que a maioria dos Técnicos de TI (eu era um deles!!!) e até Administradores de Rede realizam.

Quando um usuário faz uma chamada ao Help Desk informando não estar acessando o servidor SRV1 e, durante o atendimento, o Técnico de TI descobre que o computador do usuário está resolvendo o IP do servidor SRV1 para um número inválido. Digamos que o IP do servidor SRV1 seja 192.168.0.10 e o computador está resolvendo o IP como 192.168.0.20. Diante dessa situação, qual é a primeira coisa que o Técnico de TI faz???

Se sua resposta foi verificar o Servidor de DNS, parabéns! Você também realiza a "má" prática!

A grande maioria acha que problemas relacionados a resolução de nomes está diretamente ligada ao Servidor de DNS, o que não é verdade. Para melhor esclarecer essa afirmação, vejamos como ocorre o processo de resolução de nome de host, utilizando o exemplo acima do SRV1:

1 - A primeira coisa que o computador do usuário faz é perguntar a si mesmo se ele é o SRV1.

2 - Caso a resposta seja não, o computador do usuário (vamos chamá-lo de CLIENT10) faz uma pesquisa no DNS Client Resolver Cache. E quem diabos é esse DNS Client Resolver Cache? É a cache local do CLIENT10. Ahá! Já volto nesse assunto.

3 - Caso o DNS Client Resolver Cache não resolva, aí sim, o CLIENT10 faz uma pesquisa no Servidor de DNS.

4 - Caso o Servidor de DNS não resolva, o CLIENT10 faz uma pesquisa na cache local do NetBios.

5 - Caso o NetBios não resolva, o CLIENT10 faz uma pesquisa no Servidor WINS.

6 - Caso o Servidor WINS não resolva (ou caso não haja um Servidor WINS na rede), o CLIENT10 faz uma pesquisa utilizando o Broadcast.

7 - Caso o Broadcast não resolva, o CLIENT10 faz uma pesquisa no arquivo local "lmhosts".

8 - Caso o arquivo lmhosts não resolva, o CLIENT10 retorna um erro informando que não conseguiu resolver o IP do servidor SRV1.

Mas espere, no exemplo acima o IP do servidor SRV1 foi resolvido como 192.168.0.20. Eu sei... mas quis apenas listar aqui todo o processo de resolução de nome de host.

Voltando ao nosso exemplo, mais precisamente, o passo 2: DNS Client Resolver Cache. É sobre esse cara que eu queria falar: Quando um nome de host é resolvido, ou seja, obtêm-se o seu IP, essa informação é armazenada localmente em cada computador. E qual é o local onde essa informação é armazenada? No DNS Client Resolver Cache!

Portanto, antes de sair correndo até o Servidor de DNS, verifique o DNS Client Resolver Cache primeiro. O problema pode ser local. Como fazer isso? Abra o Prompt de Comando e digite ipconfig /displaydns. Você verá a cache de hosts resolvidos com seus respectivos IPs. Para limpar a cache local, utilize o comando ipconfig /flushdns.

Vamos agora a uma situação mais "capciosa": Digamos que no DNS Client Resolver Cache do CLIENT10 o IP do SRV1 seja 192.168.0.20 e mesmo depois de executar o comando ipconfig /flushdns, ao executar o comando ipconfig /displaydns o IP continue sendo resolvido como 192.168.0.20, o que você faz??? Servidor de DNS???... Bêêêêê!!! Resposta errada de novo.

"Wadda hell, man?!" Se o DNS Client Resolver Cache já foi limpado e, seguindo a ordem do processo de resolução de nomes, o próximo é o Servidor de DNS, você diz que não é ele? Yep! Tem ainda mais um detalhe a ser observado em relação ao DNS Client Resolver Cache:

Toda vez que o DNS Client Resolver Cache é criado/recriado são adicionados registros como o IP local do computador (127.0.0.1) e os endereços localizados no arquivo hosts... Peraí.. que arquivo é esse? Dentro da pasta %systemroot%\system32\drivers\etc, existe um arquivo chamado hosts. Abrindo com o Bloco de Notas, você tem um arquivo de texto e ao final alguns registros do tipo "host     IP", como por exemplo:
127.0.0.1      localhost

É possível que o arquivo "hosts" do CLIENT10 tenha um registro do tipo "192.168.0.20    SRV1" e por isso, o IP do SRV1 esteja sendo resolvido errôneamente.

Phew! Falei muita abobrinha, mas espero que você tenha pego o espírito da coisa: Antes de correr ao Servidor de DNS, verifique o DNS Client Resolver Cache do computador afetado, abrindo o arquivo hosts e limpando a cache local com o comando ipconfig /flushdns.

That's all for now! Espero que tenham gostado dessa dica e, nos vemos na próxima. ^^

Nenhum comentário:

Postar um comentário