Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo fornece uma visão geral do processo de consulta DNS (Sistema de Nomes de Domínio) e como os servidores DNS resolvem consultas. Ele também explica como os servidores DNS usam recursão e iteração para resolver consultas.
Como funcionam as consultas DNS
Quando um cliente DNS precisa procurar um nome, ele consulta servidores DNS para resolver o nome. Cada mensagem de consulta que o cliente envia contém três informações, especificando uma pergunta para o servidor responder:
- Um nome de domínio DNS especificado, declarado como um nome de domínio totalmente qualificado (FQDN).
- Um tipo de consulta especificado, que pode especificar um registro de recurso (RR) por tipo ou um tipo especializado de operação de consulta.
- Uma classe especificada para o nome de domínio DNS. Para servidores DNS que executam o sistema operacional Windows, essa classe sempre deve ser especificada como a classe Internet (IN).
Por exemplo, o nome especificado pode ser o FQDN de um computador, como host-a.example.contoso.com.
, e o tipo de consulta especificado para procurar um endereço (A) RR por esse nome. Pense em uma consulta DNS como um cliente fazendo a um servidor uma pergunta em duas partes, como "Você tem algum registro de recurso A para um computador chamado hostname.example.contoso.com.
?" Quando o cliente recebe uma resposta do servidor, ele lê e interpreta o A RR respondido, aprendendo o endereço IP do computador que pediu pelo nome.
A tabela a seguir descreve os tipos de consulta DNS comuns e as IDs correspondentes.
Tipo | Documento de Identificação |
---|---|
Um | 1 |
AAAA | 28 |
Arquitetura Orientada a Serviços (SOA) | 6 |
SRV | 33 |
As consultas DNS são resolvidas de muitas maneiras diferentes. Às vezes, um cliente pode responder a uma consulta localmente usando informações armazenadas em cache obtidas de uma consulta anterior. O servidor DNS pode usar seu próprio cache de informações de registro de recursos para responder a uma consulta. Um servidor DNS também pode consultar outros servidores DNS em nome do cliente. Este processo é conhecido como recursão. O servidor resolve o nome e, em seguida, envia uma resposta de volta para o cliente.
Além disso, o próprio cliente pode tentar entrar em contato com outros servidores DNS para resolver um nome. Quando um cliente faz isso, ele usa consultas separadas com base em respostas de referência de servidores. Este 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 Cliente DNS, para resolução.
- Quando a consulta não pode ser resolvida localmente, os servidores DNS podem ser consultados conforme necessário para resolver o nome.
Cada processo é explicado em mais detalhes neste artigo.
Como funciona a iteração
Iteração é o tipo de resolução de nomes usado entre clientes DNS e servidores quando as seguintes condições estão em vigor:
- O cliente solicita o uso de recursão, mas a recursão 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 pode 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 próprio conhecimento específico sobre o namespace em relação aos dados de nomes que estão sendo consultados. Por exemplo, se um servidor DNS em sua intranet receber uma consulta de um cliente local para www.contoso.com
, ele poderá retornar uma resposta de seu cache de nomes. Se o nome consultado não estiver atualmente armazenado no cache de nomes do servidor, o servidor poderá responder fornecendo uma referência. Uma referência é uma lista de RRs NS e A para outros servidores DNS que estão mais próximos do nome consultado pelo cliente.
Quando a iteração é usada, um servidor DNS pode ajudar ainda mais a resolução de uma consulta de nome além de dar sua própria melhor resposta de volta ao cliente. Para a maioria das consultas iterativas, um cliente usa sua lista configurada localmente de servidores DNS para entrar em contato com outros servidores de nomes em todo o namespace DNS se seu servidor DNS primário não puder resolver a consulta.
O serviço Cliente DNS do Windows não executa recursão.
How caching works (Como funciona a colocação em cache)
À medida que os servidores DNS processam consultas de cliente usando recursão ou iteração, eles descobrem e adquirem um armazenamento significativo de informações sobre o namespace DNS. Em seguida, o servidor armazena essas informações em cache.
O cache fornece uma maneira de acelerar o desempenho da resolução DNS para consultas subsequentes de nomes populares, enquanto reduz substancialmente o tráfego de consultas relacionadas ao DNS na rede.
À medida que os servidores DNS fazem consultas recursivas em nome dos clientes, eles armazenam temporariamente em cache os registros de recursos. Os registros de recursos armazenados em cache contêm informações obtidas de servidores DNS. Esses servidores são autorizados para nomes de domínio DNS. Essas informações são aprendidas ao fazer consultas iterativas. Essas consultas ajudam a responder totalmente a uma consulta recursiva realizada em nome de um cliente. Mais tarde, quando outros clientes fizerem novas consultas que solicitam informações de registro de recursos correspondentes aos registros armazenados em cache, o servidor DNS poderá usar as informações armazenadas em cache para respondê-las.
Quando as informações são armazenadas em cache, um valor TTL (Time-To-Live) se aplica a todos os registros de recursos armazenados em cache. Contanto que o TTL de um registro de recurso armazenado em cache não expire, um servidor DNS pode continuar a armazenar em cache. Ele pode usar o registro de recurso armazenado em cache novamente ao responder a consultas de seus clientes que correspondem a esses registros. Os valores de TTL de cache usados pelos registros de recursos na maioria das configurações de zona recebem o TTL mínimo (padrão) que é definido no registro de recurso Start of Authority (SOA) da zona. Por padrão, o TTL mínimo é de 3.600 segundos (uma hora), mas pode ser ajustado ou, se necessário, TTLs de cache individuais podem ser definidos em cada registro de recurso.
Observação
Por padrão, o serviço Servidor DNS usa um arquivo de dicas raiz, cache.dns
, que é armazenado na pasta <systemroot>\System32\Dns
no computador servidor. Esse arquivo contém os registros de recursos NS e A para os servidores raiz do namespace DNS (os servidores raiz da Internet ou servidores raiz da intranet). Quando o serviço Servidor DNS é iniciado, a lista de servidores raiz é consultada para obter uma lista atual de todos os servidores raiz. Os resultados da consulta são usados para atualizar o arquivo de dicas raiz. Esta operação também é executada periodicamente enquanto o serviço está em execução. Quando são feitas alterações nas dicas de raiz por um administrador, essas alterações são gravadas de volta no arquivo de dicas de raiz.
Resolvedor de serviço de cliente DNS
Quando um nome de domínio DNS é usado em um programa no computador local, a solicitação é então passada para o serviço Cliente DNS para resolução, que primeiro verifica 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 diagrama a seguir mostra um exemplo simples de um cliente DNS consultando o serviço Cliente DNS para uma resolução de nomes.
O cache do resolvedor local pode incluir informações de nome obtidas de duas fontes possíveis:
Se um arquivo Hosts for configurado localmente, todos os mapeamentos de nome de host para endereço desse arquivo serão carregados no cache quando o serviço Cliente DNS for iniciado.
Os registros de recursos obtidos em respostas respondidas de consultas DNS anteriores são adicionados ao cache e mantidos por um tempo determinado pelo tempo de vida útil (TTL).
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.
O diagrama a seguir mostra o serviço de cliente DNS verificando o cache para uma consulta DNS.
Configurar clientes DNS com mais de um IP de servidor DNS adiciona tolerância a falhas à sua infraestrutura DNS. Adicionar vários IPs de servidor DNS garante que os nomes DNS ainda possam ser resolvidos se o servidor DNS primário, o link de rede ou a infraestrutura de suporte falharem.
Falhas de nome podem causar travamentos de aplicativos ou componentes, interrupções de recursos aguardando expirações de tempo limite dependentes que, direta ou indiretamente, causam falhas operacionais. Consulte sobre os tempos limite de resolução do cliente DNS para uma discussão mais aprofundada sobre todos os cenários possíveis.
Por esses motivos, recomendamos que você configure qualquer cliente Windows com mais de um servidor DNS. No entanto, o processo de resolução do cliente Windows varia dependendo do número de servidores DNS configurados.
Processo de consulta do servidor DNS
Quando o servidor DNS recebe uma consulta, ele primeiro verifica se pode responder à consulta com autoridade. O servidor DNS faz verificações usando informações de registro de recursos contidas em uma zona configurada localmente no servidor.
Se o nome consultado corresponder a um RR correspondente nas informações da zona local, o servidor responderá com autoridade, usando essas informações para resolver o nome consultado.
Se não existirem informações de zona para o nome consultado, o servidor verificará se pode resolver o nome usando informações armazenadas em cache localmente de consultas anteriores. Se uma correspondência for encontrada aqui, o servidor responderá com essas informações. Novamente, se o servidor preferencial puder responder com uma resposta positiva correspondente de seu cache para o cliente solicitante, a consulta será concluída.
Se o nome consultado não encontrar uma resposta correspondente em seu servidor preferido, seja a partir de seu cache ou informações de zona, o processo de consulta poderá continuar, usando a recursão para resolver totalmente o nome. Este processo envolve a assistência de outros servidores DNS para ajudar a resolver o nome. Por padrão, o serviço Cliente DNS solicita que o servidor use um processo de recursão para resolver completamente os nomes em nome do cliente antes de retornar uma resposta.
Para que o servidor DNS faça a recursão corretamente, ele primeiro precisa de algumas informações de contato úteis sobre outros servidores DNS no namespace de domínio DNS. Essas informações são fornecidas como dicas de raiz. As pistas raiz são uma lista de registos preliminares de recursos. O serviço DNS usa esses registros para localizar outros servidores DNS que são autoritativos para a raiz da árvore de namespace de domínio DNS. Os servidores raiz são autoritativos para a raiz do domínio e os domínios de nível superior na árvore de nomes de domínio DNS.
Ao utilizar dicas de raiz para localizar servidores raiz, um servidor DNS é capaz de realizar a recursão. Em teoria, esse processo permite que qualquer servidor DNS localize os servidores que são autorizados para qualquer outro nome de domínio DNS usado em qualquer nível na árvore de namespace.
As etapas a seguir descrevem o processo de consulta de um servidor DNS:
Se a consulta for um nome de domínio totalmente qualificado (FQDN), o que significa que termina com um ponto de terminação (
.
), então a consulta é enviada para o servidor DNS. Por exemplo,www.contoso.com.
Se a consulta for uma consulta de múltiplos rótulos não qualificada, ou seja, não termina com um ponto final (
.
), o cliente DNS envia-a para o servidor DNS com um ponto final (.
). Por exemplo,www.contoso.com.
Se o termo não qualificado for uma consulta de etiqueta única, como
www
. Em seguida, o comportamento é diferente com base nas configurações de DNS na NIC.Se houver uma lista de pesquisa de sufixos DNS, o serviço de cliente DNS os acrescentará em ordem do primeiro ao último para a consulta de rótulo único e enviará a consulta com ponto terminado (
.
) para o servidor DNS. Este processo é um processo repetido até que toda a lista de pesquisa de sufixos DNS seja usada.Se nenhuma lista de pesquisa de sufixos DNS estiver configurada, o serviço de cliente DNS acrescentará sufixo DNS primário à consulta de rótulo único com ponto terminado (
.
) e enviará para o servidor DNS.Quando o cliente DNS é configurado para executar a devolução de nomes, ele devolve o sufixo DNS primário e envia outra consulta com um ponto de encerramento (
.
) se o sufixo DNS primário falhar. Por exemplo, se a resoluçãowww.test.contoso.com
falhar, o cliente será transferido parawww.contoso.com
Se houver um sufixo DNS específico de conexões configurado nos adaptadores, ele acrescenta à consulta um ponto final (
.
) e é enviado para o servidor DNS.
Em todos os casos, a resposta é armazenada no cache do cliente DNS, independentemente de a resposta ser positiva ou negativa.
O fluxograma a seguir ilustra o processo descrito de consulta a um servidor DNS.
Recursão DNS
Considere o uso do processo de recursão para localizar o nome host-b.example.contoso.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 informações armazenadas em cache localmente disponíveis para ajudar a resolver uma consulta de nome. Ele assume que o nome consultado pelo cliente é para 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 do local do servidor que é autoritativo para o domínio de nível superior, com
. Em seguida, ele usa uma consulta iterativa para o servidor DNS com
para obter uma referência para o servidor contoso.com
. Em seguida, uma resposta de encaminhamento vem do servidor contoso.com
para o servidor DNS example.contoso.com
.
Finalmente, o servidor example.contoso.com.
é contactado. Como esse servidor contém o nome consultado como parte de suas zonas configuradas, ele responde autoritariamente de volta ao servidor original que iniciou a recursão. Quando o servidor original recebe a resposta, ele verifica se a resposta é autoritativa. Se estiver, o servidor encaminha essa resposta de volta para o cliente solicitante, concluindo o processo de consulta recursiva.
Embora o processo de consulta recursiva possa consumir muitos recursos quando executado conforme descrito, 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 namespace de domínio DNS. O servidor armazena em cache as informações, que podem ser usadas novamente para ajudar a acelerar a resposta de consultas subsequentes que as usam ou correspondem. Com o tempo, essas informações armazenadas em cache podem crescer e ocupar uma parte significativa dos recursos de memória do servidor. O cache é limpo sempre que o serviço DNS é reiniciado.
Tempo de espera adaptativo da consulta DNS
O recurso de tempo limite adaptável de consulta DNS permite que o tempo limite para consultas DNS se adapte com base no tempo necessário para consultas anteriores, reduzindo o tempo limite para a maioria das consultas. Os tempos limite também podem ser aumentados para ligações de alta latência, tais como ligações via satélite. Os aplicativos da Windows Store podem otimizar a configuração de tempos limite de DNS por interface de rede.
Em vez de esperar por 1.000 ms antes de expirar uma consulta DNS, o primeiro tempo limite é ajustado para ficar entre 25 ms e 1.000 ms, com base no desempenho anterior da rede.
Cache não responsivo do servidor DNS
Os servidores DNS não responsivos são armazenados em cache e repetidos periodicamente. Essa desativação permite que o cliente DNS use o melhor servidor disponível de forma consistente e passe menos tempo esperando por servidores DNS que não respondem.
A figura a seguir mostra exemplos de consultas de cliente DNS em cada servidor em cada adaptador usando o processo nesta seção.
O serviço Cliente DNS consulta os servidores DNS na seguinte sequência:
O serviço Cliente DNS envia a consulta de nome para o primeiro servidor DNS na lista de servidores DNS do adaptador preferencial e aguarda um segundo por uma resposta.
Se o serviço Cliente DNS não receber uma resposta do primeiro servidor DNS dentro de um segundo, ele enviará a consulta de nome para os primeiros servidores DNS em todos os adaptadores que ainda estão em consideração e aguardará dois segundos por uma resposta.
Se o serviço Cliente DNS não receber uma resposta de nenhum servidor DNS em dois segundos, ele enviará a consulta para todos os servidores DNS em todos os adaptadores que ainda estão em consideração. Em seguida, o serviço Cliente DNS aguarda mais dois segundos por uma resposta.
Se o serviço Cliente DNS ainda não receber uma resposta de nenhum servidor DNS, ele enviará a consulta de nome para todos os servidores DNS em todos os adaptadores que ainda estão em consideração e aguardará quatro segundos por uma resposta.
Se o serviço Cliente DNS não receber uma resposta de nenhum servidor DNS, o cliente DNS enviará a consulta para todos os servidores DNS em todos os adaptadores que ainda estão em consideração e aguardará oito segundos por uma resposta.
Se o serviço Cliente DNS não receber uma resposta de nenhum servidor em oito segundos, o serviço Cliente DNS responderá com um tempo limite. Se o serviço Cliente DNS não receber uma resposta de nenhum servidor DNS em um adaptador específico, ele expirará todas as consultas a esses servidores pelos próximos 30 segundos nesse adaptador.
Se, em algum momento, o serviço Cliente DNS receber uma resposta negativa de um servidor, ele removerá todos os servidores desse adaptador da consideração durante essa pesquisa. Por exemplo, se o primeiro servidor no Adaptador Alternativo A der uma resposta negativa na etapa 2, o serviço Cliente DNS não consultará nenhum outro servidor na lista para o Adaptador Alternativo A.
Se o serviço Cliente DNS receber uma resposta positiva, ele interromperá a consulta pelo nome, adicionará a resposta ao cache e retornará a resposta ao cliente.
O serviço Cliente DNS controla quais servidores respondem a consultas de nome mais rapidamente e move os servidores para cima ou para baixo na lista com base na rapidez com que respondem às consultas de nome.
Respostas de consulta alternativas
A descrição anterior de consultas DNS pressupõe que o processo termina com uma resposta positiva retornada ao cliente. No entanto, as consultas também podem retornar outras respostas. A seguir estão as respostas de consulta mais comuns:
- Uma resposta fidedigna
- Uma resposta positiva
- Uma resposta de encaminhamento
- Uma resposta negativa
Uma resposta autorizada é uma resposta positiva de um servidor DNS que tem autoridade direta sobre o nome consultado. Esta resposta inclui o bit de autoridade definido na mensagem DNS para indicar a sua autenticidade.
Uma resposta positiva pode consistir no RR consultado ou em uma lista de RRs (também conhecida como conjunto RR) que se encaixa no nome de domínio DNS consultado e no tipo de registro especificado na mensagem de consulta.
Uma resposta de referência contém outros RRs não especificados por nome ou tipo na consulta. Esse tipo de resposta é retornado ao cliente se o processo de recursão não for suportado. Os registros devem 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 mais dados, como RRs, que são diferentes do tipo consultado. Por exemplo, se o servidor DNS não encontrar nenhum RR A para o nome de host consultado www
nesta zona, mas encontrar um RR CNAME para www
em vez disso, ele poderá incluir essas informações em sua resposta ao cliente. Se o cliente puder utilizar a iteração, poderá efetuar mais consultas usando as informações de referência numa tentativa de resolver completamente o nome por si mesmo.
Uma resposta negativa do servidor pode indicar um dos dois resultados possíveis:
- O servidor autoritativo não conseguiu encontrar o nome consultado no namespace DNS.
- O servidor autoritativo encontrou o nome consultado, mas não existem registros do tipo especificado para esse nome.
O resolvedor processa a consulta e retorna os resultados para o programa solicitante. A resposta pode ser positiva ou negativa. Além disso, o resolvedor armazena em cache a resposta para uso futuro.
Se a resposta resultante a uma consulta for muito longa para ser enviada e resolvida em um único pacote de mensagens UDP, o servidor DNS poderá iniciar uma resposta de failover pela porta TCP 53 para responder totalmente ao cliente em uma sessão conectada TCP.
A desativação do uso de recursão em um servidor DNS é feita quando os clientes DNS estão sendo limitados a resolver nomes para um servidor DNS específico, como um localizado na intranet. A recursão também pode ser desativada quando o servidor DNS não consegue resolver nomes DNS externos. Nesse caso, espera-se que os clientes façam failover para outro servidor DNS para resolução de nomes. Se você desabilitar a recursão no servidor DNS, não poderá usar encaminhadores no mesmo servidor.
Por padrão, os servidores DNS usam vários intervalos padrão ao executar uma consulta recursiva e entrar em contato com outros servidores DNS. Estas predefinições incluem:
- Um intervalo de repetições de recursão de 3 segundos. Esse intervalo é o período de tempo que o serviço DNS aguarda antes de tentar novamente uma consulta feita durante uma pesquisa recursiva.
- Um intervalo de tempo limite de recursão de 8 segundos. Esse intervalo é o período de tempo que o serviço DNS aguarda antes de falhar uma pesquisa recursiva que foi repetida.
Na maioria das circunstâncias, esses parâmetros não precisam de ajustes. No entanto, se você estiver usando pesquisas recursivas em um link de rede de longa distância (WAN) de velocidade lenta, poderá melhorar o desempenho do servidor e a conclusão da consulta fazendo pequenos ajustes nas configurações.
Conteúdo relacionado
Para saber mais sobre o processo de pesquisa inversa, consulte Pesquisa inversa.