Level 300 :- DNS – Fluxo de resolução de nomes DNS em clientes Microsoft


Neste artigo iremos abordar o fluxo de resolução de nomes DNS a partir de equipamentos rodando Windows 2000 e posteriores.É muito importante conhecer-mos este fluxo, principalmente no que é referente à resolução de problemas.

Em clientes pré-Windows 2000, temos primariamente a resolução de nomes NETBIOS que não necessariamente precisa ser utilizados em sistemas Windows 2000 e posteriores, que utilizam resolução de nomes DNS como método primário.

Nomes DNS são divididos em duas partes conforme mostrado abaixo:

 WWW.Z1BR.COM

ZAMBONIS.SPACES.LIVE.COM

COMPUTER01.WOODGROVEBANK.LOCAL

Esta estrutura consiste em NOME DE HOST (em amarelo) e SUFIXO DNS (em vermelho).O nome de host, está associado a um registro no DNS que por sua vez, apontará para um endereço IP e o sufixo DNS associado à zona DNS onde se encontra o registro.

Agora que já nos recordamos de como é a estrutura de nomes DNS, vamos analisar como é o fluxo de resolução de nomes.

Vamos tomar como exemplo um usuário que pretende acessar um compartilhamento de rede; então o usuário digita \\ServerFS01\PastaCompartilhada.

image

O primeiro passo, é completar o nome de host requisitado, com o sufixo DNS de acordo como especificado nas propriedades da conexão de rede, clicando nas propriedades do TCP-IP (tanto na versão IPv4 quanto IPv6) clique no botão “Avançado” e na guia DNS  conforme mostrado na imagem ao lado:

É selecionada por padrão, a opção “Append parent suffixes of the primary DNS Suffix”, opção esta que irá acrescentar o sufixo pai  DA MÁQUINA aos nomes requisitados onde não foi especificado o FQDN, como no nosso exemplo.Notem que abaixo desta opção temos como optar em escolher uma lista de sufixos; no caso de termos vários domínios por exemplo (Os sufixos da lista, são adicionados na ordem, até que seja encontrado o host), com este procedimento podemos agilizar na estação de trabalho, a resolução de nomes em uma grande floresta. Outra opção que podemos configurar, seria adicionar estaticamente um sufixo DNS para a conexão (esta configuração não será alterada de forma automática).

Com relação ao sufixo primário da máquina, podemos encontra-lo  nas “Propriedades Avançadas do Sistema” na guia “Computer Name” conforme mostrado na imagem à direita (note que o sufixo é POR PADRÃO alterado automaticamente quando a máquina é ingressada em um novo domínio);imagePor razões de segurança, algumas organizações desmarcam este checkbox, o que pode ocasionar problemas de resolução de nomes caso o analista não atualize manualmente o sufixo primário.

Após completar o nome do host com o sufixo DNS, o próximo procedimento do sistema é checar o CACHE DNS da máquina.A função do CACHE DNS local é agilizar o processo de resolução de nomes além de diminuir o tráfego de rede; podemos visualizar este cache através do comando IPCONFIG /DISPLAYDNS e apaga-lo através do comando IPCONFIG /FLUSHDNS.

Podemos desativar o registro de cache através do comando NET STOP DNSCACHE ou desabilitando o serviço de DNS Client pela console de serviços (SERVICES.MSC).

No CACHE DNS local podemos ter armazenados registros positivos (respostas resolvidas com sucesso pelo servidor DNS) e registros negativos (respostas resolvidas pelo servidor DNS as quais o cliente DNS não consegue se conectar ao host, como por exemplo o status de “HOST NÃO ENCONTRADO” quando acessamos uma URL.Por padrão, o tempo de armazenamento de um registro positivo no CACHE DNS é de 86.400 segundos (1 dia) e de um registro negativo de 900 segundos (15 minutos).Porém conseguimos modificar este período através de edição do registro:

  • Para definir o período de armazenamento dos registros positivos e negativos, navegamos até a seguinte chave :

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters

    • Para edição do período de armazenamento de registros POSITIVOS devemos criar um novo valor DWORD com o nome MaxCacheTtl (o valor deve ser estabelecido em segundos.O valor padrão é de 86400).
    • Para edição do período de armazenamento de registros NEGATIVOS devemos criar um novo valor DWORD com o nome MaxNegativeCacheTtl (o valor deve ser estabelecido em segundos.O valor padrão é de 900).

Caso o nome requisitado não seja resolvido pelo CACHE DNS, o próximo passo seria consultar o ARQUIVO HOSTS localizado no diretório %windir%\System32\drivers\etc\. O arquivo hosts contém entradas estáticas e é usado geralmente para agilizar o processo de resolução de nomes, pré-população do CACHE DNS, para ambientes em “Grupo de Trabalho” como em uma DMZ ou ainda para bloqueio de sites. Devemos usar com cautela o arquivo HOSTS, pois é uma forma de descentralizar a resolução de nomes; o que pode causar problemas de resolução, caso haja mudanças nas configurações de TCP-IP dos hosts mapeados. Abaixo segue vídeo onde mostro um exemplo de edição do arquivo HOSTS:

O próximo passo é encaminhar a requisição de resolução para o servidor DNS preferencial configurado nas propriedades do TCP-IP da interface de rede. Caso o servidor DNS preferencial esteja off-line ou por qualquer motivo o cliente DNS não tenha conectividade com o servidor, a requisição de resolução de nomes é encaminhada para o servidor DNS secundário, caso o mesmo também esteja sem comunicação com o cliente, a requisição é encaminhada para o outro servidor DNS listado no topo da lista de servidores DNS na guia DNS das configurações avançadas do TCP-IP. A lista é checada de cima para baixo, o que torna recomendado a colocação no topo da lista, servidores do mesmo site e ou servidores de sites onde o link de conexão com o cliente DNS tenha a maior banda disponível.image

Quando a requisição chega ao servidor DNS, o servidor efetua os seguintes processos para a tentar resolver o host:

1 – O servidor verifica se é o SOA (Start of Authority) ou seja, o servidor autoritativo do sufixo da requisição, se sim o servidor responde a requisição consultando o conteúdo da zona, se não o servidor verifica o cache DNS do serviço (este, não é o mesmo CACHE DNS comentado anteriormente, e sim o cache do serviço DNS);

2 – Zonas DNS (…o servidor pesquisa nas zonas que hospeda…)

3 – Pesquisa na base de dados do Wins (caso esteja configurado…com este recurso o servidor pesquisa a base de dados dos servidores Wins indicados para verificar a existência do registro solicitado.)

4 – Encaminhadores condicionais (Regras de encaminhamento de requisições referente a um determinado domínio DNS)

5 – Encaminhadores (….encaminhamento para qualquer requisição que o servidor não resolva)

6 – Root Hints (….servidores responsáveis pelo domínio raiz ( “.” ) na internet)

Obs.:- Estes recursos do servidor DNS serão abordados detalhadamente nos próximos artigos da série

Caso o servidor DNS não consiga resolver a requisição, retornará este status para o cliente que por sua vez começará o processo de resolução de nomes NetBios…