Como a consulta DNS funciona

Quando um cliente precisa procurar um nome usado em um programa, ele consulta os servidores DNS para resolver o nome. Cada mensagem de consulta que o cliente envia contém três informações, que especificam uma pergunta para o servidor responder:

  • Um nome de domínio DNS específico, declarado como nome de domínio totalmente qualificado (FQDN)
  • Um tipo de consulta específica, que pode especificar um tipo de registro de recurso ou um tipo especializado de operação de consulta.
  • Uma classe específica para o nome de domínio DNS.
    Para servidores DNS do Windows, isso deve ser especificado como a classe Internet (IN).

Por exemplo, o nome especificado pode ser o FQDN de um computador, como “host-a.exemplo.microsoft.com.” e o tipo de consulta específica pode ser procurar um registro de recurso de endereço (A) com esse nome. Pense na consulta DNS como um cliente que faz ao servidor uma pergunta com duas partes, como “Você tem algum registro de recurso (A) para um computador cujo nome é “nome_do_host.exemplo.microsoft.com.'”? Quando o cliente recebe uma resposta do servidor, ele lê e interpreta o registro de recurso A respondido, conhecendo o endereço IP do computador que ele solicitou pelo nome.

As consultas DNS são resolvidas de várias formas. Às vezes, um cliente responde a uma consulta localmente, usando informações em cache obtidas a partir de uma consulta anterior. O servidor DNS pode usar seu próprio cache de informações de registros de recursos para responder a uma consulta. Um servidor DNS também pode consultar ou contatar outros servidores DNS em nome do cliente solicitante para resolver totalmente o nome e, em seguida, retornar uma resposta para o cliente. Esse processo é conhecido como recursão.

Além disso, o próprio cliente pode tentar contatar servidores DNS adicionais para resolver um nome. Ao fazer isso, o cliente usa consultas separadas e adicionais com base nas respostas de referência dos servidores. Esse processo é conhecido como iteração.

Em geral, o processo de consulta DNS ocorre em duas partes:

  • Uma consulta de nome começa em um computador cliente e é passada para um resolvedor, o serviço de cliente DNS, para resolução.
  • Quando a consulta não pode ser resolvida localmente, os servidores DNS podem ser consultados para resolver o nome, conforme necessário.

Esses dois processos são explicados com mais detalhes nas seções a seguir.

 

Parte 1: O resolvedor local

A figura a seguir mostra uma visão geral do processo de consulta DNS completo.

Como funciona uma consulta DNSComo foi mostrado nas etapas iniciais do processo de consulta, um nome de domínio DNS é usado em um programa no computador local. Em seguida, a solicitação é passada para o serviço de cliente DNS para resolução usando as informações armazenadas em cache localmente. Se o nome consultado puder ser resolvido, a consulta será respondida e o processo será concluído.

O cache do resolvedor local pode incluir informações de nomes obtidas em duas fontes possíveis:

  • Se um arquivo Hosts é configurado localmente, todos os mapeamentos de nome para endereço de host desse arquivo são pré-carregados no cache quando o serviço de cliente DNS é iniciado.
  • Os registros de recursos obtidos nas respostas enviadas a partir de consultas DNS anteriores são adicionados ao cache e mantidos por um período de tempo.

Se a consulta não corresponder a uma entrada no cache, o processo de resolução continuará com o cliente consultando um servidor DNS para resolver o nome.

 

Parte 2: Consultando um servidor DNS

Como foi indicado na figura anterior, o cliente consulta um servidor DNS preferencial. O servidor efetivamente usado durante a consulta cliente/servidor inicial do processo é selecionado em uma lista global. Para obter mais informações sobre como essa lista global é compilada e atualizada, consulte Recursos de cliente.

Quando o servidor DNS recebe uma consulta, ele primeiro verifica se tem autoridade para responder à consulta com base nas informações de registro de recurso contidas em uma zona configurada localmente no servidor. Se o nome consultado corresponde a um registro de recurso nas informações de zona local, o servidor responderá autoritativamente, usando essas informações para resolver o nome consultado.

Se não houver informações de zona para o nome consultado, o servidor verificará se pode resolver o nome usando informações de consultas anteriores armazenadas localmente em cache. Se uma correspondência for encontrada, o servidor responderá com essa informação. Novamente, se o servidor preferencial puder responder ao cliente solicitante com uma resposta positiva correspondente em seu cache, a consulta será concluída.

Se o nome consultado não encontrar uma resposta correspondente no servidor preferencial — nas informações em cache ou de zona — o processo de consulta poderá continuar usando recursão para resolver totalmente o nome. Isso envolve a ajuda de outros servidores DNS para resolver o nome. Por padrão, o serviço de cliente DNS solicita que o servidor use um processo de recursão para resolver totalmente nomes solicitados pelo cliente antes de retornar uma resposta. Na maioria dos casos, o servidor DNS é configurado, por padrão, para fornecer suporte ao processo de recursão, como mostra a figura seguinte.

Como funciona a recursividadePara que o servidor DNS execute a recursão corretamente, ele primeiro precisa obter algumas informações de contato úteis sobre outros servidores DNS no espaço para nome do domínio DNS. Essas informações são fornecidas na forma de dicas de raiz, uma lista de registros de recursos preliminares que pode ser usada pelo serviço DNS para localizar outros servidores DNS autoritativos para a raiz da árvore de espaço para nome do domínio DNS. Os servidores raiz são autoritativos para a raiz de domínio e para os domínios de nível superior na árvore de espaço para nome do domínio DNS. Para obter mais informações, consulte Atualizando as dicas de raiz.

Ao usar as dicas de raiz para localizar servidores raiz, um servidor DNS pode completar o uso da recursão. Teoricamente, esse processo habilita qualquer servidor DNS para localizar os servidores autoritativos para qualquer outro nome de domínio DNS usado em qualquer nível na árvore de espaço para nome.

Por exemplo, considere o uso do processo de recursão para localizar o nome “host-b.exemplo.microsoft.com.” quando o cliente consulta um único servidor DNS. O processo ocorre quando um servidor DNS e um cliente são iniciados pela primeira vez e não têm nenhuma informação armazenada em cache localmente disponível para ajudar a resolver uma consulta de nome. Ele pressupõe que o nome consultado pelo cliente refere-se a um nome de domínio do qual o servidor não tem conhecimento local, com base em suas zonas configuradas.

Primeiro, o servidor preferencial analisa o nome completo e determina que ele precisa da localização do servidor autoritativo para o domínio de nível superior, “com”. Em seguida, usa uma consulta iterativa para o servidor DNS “com” para obter uma referência para o servidor “microsoft.com”. Uma resposta de referência do servidor “microsoft.com” é enviada para o servidor DNS com relação a “exemplo.microsoft.com”.

Por fim, o servidor “exemplo.microsoft.com.” é contatado. Como esse servidor contém o nome consultado como parte de suas zonas configuradas, ele responde autoritativamente ao servidor original que iniciou a recursão. Quando o servidor original recebe a resposta indicando que uma resposta autoritativa foi obtida para a consulta solicitada, ele encaminha essa resposta para o cliente solicitante e o processo de consulta recursiva é concluído.

Embora o processo de consulta recursiva possa requerer uso intenso de recursos quando executado conforme descrito acima, ele tem algumas vantagens de desempenho para o servidor DNS. Por exemplo, durante o processo de recursão, o servidor DNS que executa a pesquisa recursiva obtém informações sobre o espaço para nome do domínio DNS. Essas informações são armazenadas em cache pelo servidor e podem ser usadas novamente para ajudar a acelerar as respostas a consultas subseqüentes que as utilizam ou a elas correspondem. Ao longo do tempo, essas informações em cache podem crescer de maneira a ocupar uma parte significativa dos recursos de memória do servidor, embora o cache seja limpo sempre que o ciclo do serviço DNS é habilitado e desabilitado.

 

Respostas de consultas alternativas

A discussão anterior sobre consultas DNS pressupõe que o processo termina com uma resposta positiva para o cliente. Entretanto, as consultas também podem retornar outras respostas. Estas são as mais comuns:

  • Uma resposta autoritativa
  • Uma resposta positiva
  • Uma resposta de referência
  • Uma resposta negativa

Uma resposta autoritativa é uma resposta positiva retornada ao cliente e fornecida com o bit de autoridade definido na mensagem DNS para indicar que a resposta foi obtida a partir de um servidor com autoridade direta para o nome consultado.

Uma resposta positiva pode consistir no RR consultado ou em uma lista de RRs (também conhecida como conjunto RR) que corresponde ao nome de domínio DNS consultado e ao tipo de registro especificado na mensagem de consulta.

Uma resposta de referência contém registros de recursos adicionais não especificados por nome ou tipo na consulta. Esse tipo de resposta é retornada ao cliente se não houver suporte para o processo de recursão. Os registros destinam-se a atuar como respostas de referência úteis que o cliente pode usar para continuar a consulta usando iteração.

Uma resposta de referência contém dados adicionais, como registros de recursos (RRs), que são diferentes do tipo consultado. Por exemplo, se o nome de host consultado foi “www” e nenhum RR A foi encontrado para esse nome nessa zona, mas foi encontrado um RR CNAME, o servidor DNS pode incluir essa informação quando responder ao cliente.

Se o cliente for capaz de usar iteração, poderá fazer consultas adicionais usando a informação de referência em uma tentativa de resolver totalmente o nome.

Uma resposta negativa do servidor pode indicar que um dos dois resultados possíveis foi encontrado enquanto o servidor tentava processar e resolver a consulta em modo recursivo total e autoritativamente.

  • Um servidor autoritativo indicou que o nome consultado não existe no espaço para nome DNS.
  • Um servidor autoritativo indicou que o nome consultado existe mas não há registros do tipo especificado para esse nome.

O resolvedor passa os resultados da consulta, na forma de resposta positiva ou negativa, para o programa solicitante e armazena a resposta em cache.

Observações

  • Se a resposta resultante de uma consulta for muito longa para ser enviada e resolvida em um único pacote de mensagem UDP, o servidor DNS pode iniciar uma resposta de tolerância a falhas na porta TCP 53 para responder ao cliente totalmente em uma sessão TCP conectada.
  • A desabilitação do uso da recursão em um servidor DNS geralmente é feita quando os clientes DNS estão sendo limitados a resolver nomes para um servidor DNS específico; por exemplo, um servidor localizado na sua intranet. A recursão também pode ser desabilitada quando o servidor DNS for incapaz de resolver nomes DNS externos e espera-se que os clientes utilizem outro servidor DNS para resolução desses nomes.
    É possível desabilitar o uso de recursão configurando as propriedades Avançadas no console DNS do servidor aplicável. Para obter mais informações, consulteDesativar a recursividade no servidor DNS.
  • Se você desabilitar a recursão no servidor DNS, não poderá usar encaminhadores no mesmo servidor.
  • Por padrão, os servidores DNS usam diversos intervalos de tempo padrão quando executam uma consulta recursiva e contatam outros servidores DNS. São eles:
    • Um intervalo de 3 minutos para uma nova tentativa de recursão. Esse é o período de tempo que o serviço DNS espera antes de tentar novamente uma consulta feita durante uma pesquisa recursiva.
    • Um intervalo de tempo limite de recursão de 15 segundos. Esse é o período de tempo que o serviço DNS espera antes de falhar uma pesquisa recursiva que foi novamente tentada.

    Na maioria das circunstâncias, esses parâmetros não precisam de ajuste. Porém, se você estiver usando pesquisas recursivas em uma conexão WAN de baixa velocidade, o desempenho do servidor e a conclusão da consulta poderão ser melhorados com pequenos ajustes nas configurações. Para obter mais informações, consulte Ajustando os parâmetros avançados do servidor.

 

Como a iteração funciona

A iteração é o tipo de resolução de nomes usado entre clientes e servidores DNS quando as seguintes condições estiverem em vigor:

  • O cliente solicita o uso de recursão, mas ela está desabilitada no servidor DNS.
  • O cliente não solicita o uso de recursão ao consultar o servidor DNS.

Uma solicitação iterativa de um cliente informa ao servidor DNS que o cliente espera a melhor resposta que o servidor DNS puder fornecer imediatamente, sem entrar em contato com outros servidores DNS.

Quando a iteração é usada, um servidor DNS responde a um cliente com base em seu conhecimento específico sobre o espaço para nome com relação aos dados de nomes que estão sendo consultados. Por exemplo, se um servidor DNS na sua intranet recebe uma consulta de um cliente local para “www.microsoft.com”, ele deve retornar uma resposta do seu cache de nomes. Se o nome consultado não estiver armazenado atualmente no cache de nomes do servidor, o servidor poderá responder fornecendo uma referência — isto é, uma lista de registros de recursos NS e A de outros servidores DNS que estão mais próximos ao nome consultado pelo cliente.

Quando uma referência é feita, o cliente DNS assume a responsabilidade por continuar fazendo consultas iterativas para outros servidores DNS configurados para resolver o nome. Por exemplo, na maioria dos casos envolvidos, o cliente DNS deve expandir sua pesquisa até os servidores de domínio raiz na Internet, em um esforço para localizar os servidores DNS que têm autoridade para o domínio “com”. Depois de contatar os servidores raiz da Internet, poderá receber respostas iterativas adicionais a partir desses servidores DNS apontando para servidores DNS da Internet efetivos do domínio “microsoft.com”. Quando o cliente recebe os registros desses servidores DNS, ele pode enviar outra consulta iterativa para os servidores DNS da Microsoft externos na Internet, que podem responder com uma resposta definitiva e autoritativa.

Quando a iteração é usada, um servidor DNS pode ajudar adicionalmente em uma resolução de consulta de nome, além de enviar sua melhor resposta para o cliente. Na maioria das consultas iterativas, um cliente usa sua lista de servidores DNS configurada localmente para contatar outros servidores de nomes em todo o espaço para nome DNS se o servidor DNS primário não conseguir resolver a consulta.

 

Como o armazenamento em cache funciona

Quando os servidores DNS processam consultas de clientes usando recursão ou iteração, eles descobrem e adquirem um estoque significativo de informações sobre o espaço para nome DNS. Essas informações são armazenadas em cache pelo servidor.

O armazenamento em cache permite acelerar o desempenho da resolução DNS para consultas subseqüentes de nomes comuns e reduz substancialmente o tráfego de consultas relativo ao DNS na rede.

Quando fazem consultas recursivas em nome dos clientes, os servidores DNS armazenam em cache temporariamente os registros de recursos (RRs). Os RRs armazenados em cache contêm informações obtidas de servidores DNS autoritativos para nomes de domínio DNS conhecidos durante as consultas iterativas realizadas para pesquisar e responder totalmente a uma consulta recursiva executada em nome de um cliente. Posteriormente, quando outros clientes fazem novas consultas solicitando informações de RR que correspondem aos RRs armazenados em cache, o servidor DNS pode usar essas informações de RR armazenadas em cache para responder.

Quando as informações são armazenadas em cache, um valor de tempo de vida (TTL) é aplicado a todos os RRs armazenados em cache. Enquanto o TTL de um RR armazenado em cache não expirar, o servidor DNS pode continuar a armazenar esse RR em cache e usá-lo novamente quando responder a consultas feitas por seus clientes que correspondam a esses RRs. Na maioria das configurações de zona, o armazenamento em cache dos valores de tempo de vida usados pelos RRs recebe a atribuição deTempo de vida mínimo (padrão), que é definida no registro de recurso de início de autoridade (SOA) da zona. Por padrão, o TTL mínimo é de 3.600 segundos (1 hora), mas ele pode ser ajustado ou, se necessário, o armazenamento em cache de TTLs pode ser configurado para cada RR.

Observações

  • Você pode instalar um servidor DNS como servidor somente de cache. Para obter mais informações, consulte Usando servidores somente de cache.
  • Por padrão, os servidores DNS usam um arquivo de dicas de raiz, Cache.dns, que é armazenado na pasta systemroot\System32\Dns do servidor. O conteúdo desse arquivo é pré-carregado na memória do servidor quando o serviço é iniciado e contém informações de ponteiro para servidores raiz do espaço para nome DNS onde você está operando os servidores DNS. Para obter mais informações sobre esse arquivo ou sobre como ele é usado, consulte arquivos relacionados ao DNS.

Fonte: http://technet.microsoft.com/pt-br/library/cc775637(v=ws.10).aspx

Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s