Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece uma visão geral do processo de consulta do Sistema de Nomes de Domínio (DNS) 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 de DNS
Quando um cliente DNS precisa procurar um nome, ele consulta os 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 RR (registro de recurso) 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 para 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 de 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 solicitado pelo nome.
A tabela a seguir descreve os tipos comuns de consulta DNS e as IDs correspondentes.
| Tipo | ID |
|---|---|
| A | 1 |
| AAAA | 28 |
| 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. Esse processo é conhecido como recursão. O servidor resolve o nome e envia uma resposta de volta ao 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. 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 conforme necessário para resolver o nome.
Cada processo é explicado com mais detalhes neste artigo.
Como funciona a iteração
Iteração é o tipo de resolução de nomes usada entre clientes e servidores DNS quando as seguintes condições estão em vigor:
- O cliente solicita o uso de recursão, mas a recursão é 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 armazenado no cache de nomes do servidor, o servidor poderá responder fornecendo uma referência. Uma referência é uma lista de NS e RRs para outros servidores DNS mais próximos do nome consultado pelo cliente.
Quando a iteração é usada, um servidor DNS pode ajudar ainda mais na resolução de uma consulta de nome, além de fornecer sua própria melhor resposta 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 de cliente DNS do Windows não executa recursão.
Como funciona o 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 de DNS para consultas subsequentes de nomes populares, reduzindo substancialmente o tráfego de consulta relacionado 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 autoritativos 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 executada em nome de um cliente. Posteriormente, quando outros clientes fizerem novas consultas que solicitam informações de registro de recurso correspondentes a 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 de TTL (Time-To-Live) se aplica a todos os registros de recursos armazenados em cache. Desde 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 em 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 de Início da Autoridade (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.
Note
Por padrão, o serviço Servidor DNS usa um arquivo de dicas raiz, cache.dns, que é armazenado na pasta <systemroot>\System32\Dns do 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. Essa operação também é executada periodicamente enquanto o serviço está em execução. Quando as alterações são feitas 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 do cliente DNS
Quando um nome de domínio DNS é usado em um programa no computador local, a solicitação é passada para o serviço de 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 de cliente DNS para uma resolução de nomes.
O cache do resolvedor local pode incluir informações de nomes 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 de 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 (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.
A configuração de clientes DNS com mais de um IP de servidor DNS adiciona tolerância a falhas à sua infraestrutura DNS. A adição de 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 aplicativo ou componente, interrupções de recursos aguardando expirações de tempo limite dependentes que causam falhas operacionais direta ou indiretamente. Confira os tempos limite de resolução do cliente DNS para obter uma discussão mais detalhada 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 de acordo com o número de servidores DNS configurados.
Processo de consulta ao 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 recurso 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 houver 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 correspondente positiva 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 preferencial, seja de suas informações de cache ou zona, o processo de consulta poderá continuar, usando a recursão para resolver totalmente o nome. Esse processo envolve a assistência de outros servidores DNS para ajudar a 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 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 indicações de raiz. As indicações de raiz são uma lista de registros 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 os domínios raiz de domínio e de nível superior na árvore de namespace de domínio DNS.
Usando dicas raiz para localizar servidores raiz, um servidor DNS é capaz de concluir o uso da recursão. Em teoria, esse processo permite que qualquer servidor DNS localize os servidores que são autoritativos 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 (
.), a consulta será enviada ao servidor DNS. Por exemplo,www.contoso.com.Se a consulta for uma consulta de vários rótulos não qualificada, o que significa que ela não termina com um ponto de terminação (
.), o cliente DNS a enviará ao servidor DNS com um ponto de terminação (.). Por exemplo,www.contoso.com.Se a não qualificada for uma consulta de rótulo único, como
www. Em seguida, o comportamento é diferente com base nas configurações de DNS na placa de rede.Se houver uma lista de pesquisa de sufixos DNS, o serviço de cliente DNS os acrescentará da primeira para a última à consulta de rótulo único e enviará a consulta com ponto terminado (
.) para o servidor DNS. Esse processo é um processo repetido até que toda a lista de pesquisa de sufixos DNS seja usada.Se nenhuma lista de pesquisa de sufixo DNS estiver configurada, o serviço de cliente DNS acrescentará o sufixo DNS primário à consulta de rótulo único com ponto terminado (
.) e enviará ao servidor DNS.Quando o cliente DNS é configurado para executar a devolução de nome, ele devolve o sufixo DNS primário e envia outra consulta com um ponto de terminação (
.) se o sufixo DNS primário falhar. Por exemplo, se a resoluçãowww.test.contoso.comfalhar, o cliente será devolvido parawww.contoso.comSe houver um sufixo DNS específico de conexões configurado nos adaptadores, ele acrescentará a consulta com ponto encerrado (
.) e enviado ao 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 de 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 pressupõe 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 autoritativo para o domínio de nível superior, com. Em seguida, ele usa uma consulta iterativa ao com servidor DNS para obter uma referência ao servidor contoso.com. Em seguida, uma resposta de referência vem do servidor contoso.com para o servidor DNS para example.contoso.com.
Por fim, o servidor example.contoso.com. é contatado. Como esse servidor contém o nome consultado como parte de suas zonas configuradas, ele responde autoritativamente de volta ao servidor original que iniciou a recursão. Quando o servidor original recebe a resposta, ele verifica se a resposta é autoritativa. Se for, 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 as informações em cache, 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 para ocupar uma parte significativa dos recursos de memória do servidor. O cache é limpo sempre que o serviço DNS é reiniciado.
Tempo limite adaptável de consulta DNS
O recurso de tempo limite adaptável de consulta DNS permite que o tempo limite das 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 links de alta latência, como links de 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 1.000 ms antes de expirar uma consulta DNS, o primeiro tempo limite é ajustado para estar entre 25 ms e 1.000 ms, com base no desempenho anterior da rede.
Cache não responsivo do servidor DNS
Os servidores DNS sem resposta são armazenados em cache e repetidos periodicamente. Essa retirada permite que o cliente DNS use o melhor servidor disponível de forma consistente e gaste menos tempo esperando por servidores DNS que não respondem.
A figura a seguir mostra exemplos de consultas de cliente DNS a cada servidor em cada adaptador usando o processo nesta seção.
O serviço de cliente DNS consulta os servidores DNS na seguinte sequência:
O serviço de 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 de cliente DNS não receber uma resposta do primeiro servidor DNS em um segundo, ele enviará a consulta de nome para os primeiros servidores DNS em todos os adaptadores que ainda estão sendo considerados e aguardará dois segundos por uma resposta.
Se o serviço de 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 sendo considerados. O serviço de cliente DNS aguarda mais dois segundos por uma resposta.
Se o serviço de 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 sendo considerados e aguardará quatro segundos por uma resposta.
Se o serviço de cliente DNS não receber uma resposta de nenhum servidor DNS, o cliente DNS enviará a consulta a todos os servidores DNS em todos os adaptadores que ainda estão sendo considerados e aguardará oito segundos por uma resposta.
Se o serviço de cliente DNS não receber uma resposta de nenhum servidor em oito segundos, o serviço de cliente DNS responderá com um tempo limite. Se o serviço de 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, a qualquer momento, o serviço de 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 de Cliente DNS não consultará nenhum outro servidor na lista para o Adaptador Alternativo A.
Se o serviço de cliente DNS receber uma resposta positiva, ele interromperá a consulta do nome, adicionará a resposta ao cache e retornará a resposta ao cliente.
O serviço de cliente DNS controla quais servidores respondem às 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 das 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 autorizada
- Uma resposta positiva
- Uma resposta de indicação
- Uma resposta negativa
Uma resposta autoritativa é uma resposta positiva de um servidor DNS que tem autoridade direta sobre o nome consultado. Essa resposta inclui o bit de autoridade definido na mensagem DNS para indicar sua autenticidade.
Uma resposta positiva pode consistir no RR consultado ou em uma lista de RRs (também conhecida como conjunto de RR) que se ajusta ao nome de domínio DNS consultado e ao tipo de registro especificado na mensagem de consulta.
Uma resposta de indicação contém outros RRs não especificados por nome ou tipo na consulta. Esse tipo de resposta será retornado ao cliente se não houver suporte para o processo de recursão. Os registros devem atuar como respostas de referência úteis que o cliente pode usar para continuar a consulta usando a iteração. Uma resposta de indicação contém mais dados, como RRs que não sejam o tipo consultado. Por exemplo, se o servidor DNS não encontrar nenhum RR A para o nome www do host consultado nessa zona, mas encontrar um RR CNAME para www , ele poderá incluir essas informações em sua resposta ao cliente. Se o cliente puder usar a iteração, ele poderá fazer mais consultas usando as informações de referência na tentativa de resolver totalmente o nome para si mesmo.
Uma resposta negativa do servidor pode indicar um dos dois resultados possíveis:
- O servidor autoritativo não pôde 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 ao TCP.
A desabilitação do uso de recursão em um servidor DNS é feita quando os clientes DNS estão limitados a resolver nomes para um servidor DNS específico, como um localizado em sua intranet. A recursão também pode ser desabilitada 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 tempos padrão ao executar uma consulta recursiva e entrar em contato com outros servidores DNS. Esses padrões incluem:
- Um intervalo de repetição de recursão de 3 segundos. Esse intervalo é o período de tempo que o serviço DNS aguarda antes de repetir 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 em uma pesquisa recursiva que foi repetida.
Na maioria das circunstâncias, esses parâmetros não precisam de ajuste. No entanto, se você estiver usando pesquisas recursivas em um link de rede de longa distância (WAN) de baixa velocidade, 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 a pesquisa inversa.