DNS

Juliana Jenny Kolb

teste seu conhecimento

Home > Redes de Computadores > Modelos de Arquitetura de Redes > Modelo OSI > Modelo TCP/IP

DNS

O DNS, do inglês Domain Name System (Sistema de Nomes de Domínios), funciona como um sistema de tradução de endereços IP para nomes de domínios.

O DNS é um sistema de gerenciamento de nomes hierárquico e distribuído para computadores, serviços ou qualquer recurso conectado à Internet ou numa rede privada. Associa várias informações atribuídas a nomes de domínios a cada entidade participante. Em sua utilização mais comum, traduz nomes de domínios mais facilmente memorizáveis a endereços IPnuméricos necessários à localização e identificação de serviços e dispositivos juntamente aos protocolos de rede subjacentes, processo esse denominado resolução de nome. Em virtude do banco de dados de DNS ser distribuído, seu tamanho é ilimitado e o desempenho não se degrada muito quando se adiciona mais servidores. Por padrão, o DNS usa o protocolo User Datagram Protocol (UDP) na porta 53 para servir as solicitações/requisições.

O DNS apresenta uma arquitetura cliente/servidor, podendo envolver vários servidores DNS na resposta a uma consulta. O servidor DNS resolve nomes para os endereços IP e de endereços IP para nomes respetivos, e permitindo a localização de hosts num domínio determinado.

Num sistema livre, o serviço é implementado pelo software BIND. Este serviço geralmente se encontra localizado no servidor DNS primário. O servidor DNS secundário é uma espécie de cópia de segurança do servidor DNS primário. Assim, ele se torna parte necessária para quem quer usar a internet de uma forma mais fácil, evita que hackers roubem os seus dados pessoais.

Existem centenas de servidores-raiz DNS (root servers) no mundo todo, agrupados em 13 zonas DNS raiz, das quais sem elas a Internet não funcionaria. Destes, dez estão localizados nos Estados Unidos da América, dois na Europa e um na Ásia. Para aumentar a base instalada destes servidores, foram criadas réplicas localizadas por todo o mundo, inclusive no Brasil desde 2003.

Hierarquia

Devido ao tamanho da Internet, armazenar todos os pares domínio – endereço IP em um único servidor DNS seria inviável por questões de escalabilidade, que incluem:

  • Disponibilidade: se o único servidor de DNS falhasse, o serviço se tornaria indisponível para o mundo inteiro;
  • Volume de tráfego: o servidor deveria tratar os pedidos DNS do planeta inteiro;
  • Distância: grande parte dos usuários estaria muito distante do servidor, onde quer que ele fosse instalado, gerando grandes atrasos para resolver pedidos DNS;
  • Manutenção do banco de dados: o banco de dados deveria armazenar uma quantidade de dados enorme e teria que ser atualizado com uma frequência muito alta (assim que um novo domínio fosse associado a um endereço IP).

A solução encontrada foi usar uma base de dados distribuída e hierárquica. Os servidores DNS se dividem nas seguintes categorias:

  • Servidores-raiz;
  • Servidores de domínio de topo;
  • Servidores com autoridade.

Servidores-raiz

No topo da hierarquia estão os 13 servidores raiz. Um servidor-raiz (root name server) é um servidor de nome para a zona raiz do DNS (Domain Name System). A sua função é responder diretamente às requisições de registros da zona raiz e responder a outras requisições retornando uma lista dos servidores de nome designados para o domínio de topoapropriado. Os servidores raiz são parte crucial da Internet porque são o primeiro passo em resolver nomes para endereços IP, esses últimos usados para comunicação entre hosts.

Servidores de domínio de topo 

Cada domínio é formado por nomes separados por pontos. O nome mais à direita é chamado de domínio de topo. Exemplos de domínios de topo são .com, .org, .net, .edu, .inf, .gov.

Cada servidor de domínio de topo conhece os endereços dos servidores autoritativos que pertencem àquele domínio de topo, ou o endereço de algum servidor DNS intermediário que conhece um servidor autoritativo.

Há também terminações orientadas a países, chamadas de Código de País para Domínios de Topo/Primeiro Nível (Country Code Top Level Domains). Por exemplo: .br para o Brasil, .ar para a Argentina, .fr para a França e assim por diante. Há também combinações, como .com.br e .blog.br.

Servidores com autoridade

O servidor com autoridade de um domínio possui os registros originais que associam aquele domínio a seu endereço de IP. Toda vez que um domínio adquire um novo endereço, essas informações devem ser adicionadas a pelo menos dois servidores autoritativos. Um deles será o servidor autoritativo principal e o outro, o secundário. Isso é feito para minimizar o risco de, em caso de erros em um servidor DNS, perder todas as informações originais do endereço daquele domínio.

Métodos de resolução: iterativo e recursivo

Com as três classes de servidores DNS, já é possível resolver qualquer requisição DNS. Basta fazer uma requisição a um servidor raiz, e esse retornará o endereço do servidor de topo responsável. Então repete-se a requisição para o servidor de topo, que retornará o endereço do servidor autoritativo ou algum intermediário. Repete-se a requisição aos servidores intermediários (se houver) até obter o endereço do servidor autoritativo, que finalmente retornará o endereço IP do domínio desejado.

Repare que essa solução não resolve um dos problemas de escalabilidade completamente: os servidores raiz tem que ser acessados uma vez para cada requisição que for feita em toda a internet. Esses servidores também podem estar muito longe do cliente que faz a consulta. Além disso, para resolver cada requisição, são precisas várias consultas, uma para cada servidor na hierarquia entre o raiz e o autoritativo.

Esta forma de resolver consultas é chamada de iterativa ou não-recursiva: cada servidor retorna ao cliente (ou ao servidor local requisitante, como explicado adiante) o endereço do próximo servidor no caminho para o autoritativo, e o cliente ou servidor local fica encarregado de fazer as próximas requisições.

Há também o método recursivo: o servidor pode se responsabilizar por fazer a requisição ao próximo servidor, que fará a requisição ao próximo, até chegar ao autoritativo, que retornará o endereço desejado, e esse endereço será retornado para cada servidor no caminho até chegar ao cliente. Esse método faz com que o cliente realize apenas uma consulta e receba diretamente o endereço desejado, porém aumenta a carga dos servidores no caminho. Por isso, servidores podem se recusar a resolver requisições recursivas.

Melhorias de performance

Dois recursos são usados em conjunto para reduzir a quantidade de requisições que os servidores raiz devem tratar e a quantidade de requisições feitas para resolver cada consulta: cache e servidor local.

Cache

Toda vez que um servidor retorna o resultado de uma requisição para a qual ele não é autoridade (método de resolução recursivo), ele armazena temporariamente aquele registro. Se, dentro do tempo de vida do registro (TTL, Time to Live), alguma requisição igual for feita, o servidor DNS pode retornar o resultado sem a necessidade de uma nova consulta. Note que isso pode provocar inconsistência, já que se um domínio mudar de endereço durante o tempo de vida do cache, o registro estará desatualizado. Apenas o servidor autoritativo tem a garantia de ter a informação correta. É possível exigir, na mensagem de requisição DNS, que a resposta seja dada pelo servidor autoritativo.

Servidor local

Esse tipo de servidor não pertence à hierarquia DNS, mas é fundamental para o seu bom funcionamento. Em vez de fazer requisições a um servidor raiz, cada cliente faz sua requisição a um servidor local, que geralmente localiza-se fisicamente muito próximo do cliente, por exemplo um servidor proxy. Este se encarrega de resolver a requisição. Com o uso de cache, o servidor local pode ter a resposta pronta, ou ao menos conhecer algum servidor mais próximo ao autoritativo que o raiz (por exemplo, o servidor de topo), reduzindo a carga dos servidores raiz.

DNS reverso (reverse lookup)

Normalmente o DNS atua resolvendo o nome do domínio de um host qualquer para seu endereço IP correspondente. O DNS Reverso resolve o endereço IP, buscando o nome de domínio associado ao host. Ou seja, quando temos disponível o endereço IP de um host e não sabemos o endereço do domínio (nome dado à máquina ou outro equipamento que acesse uma rede), tentamos resolver o endereço IP através do DNS reverso que procura qual nome de domínio está associado àquele endereço. Os servidores que utilizam o DNS Reverso conseguem verificar a autenticidade de endereços, verificando se o endereço IP atual corresponde ao endereço IP informado pelo servidor DNS. Isto evita que alguém utilize um domínio que não lhe pertence para enviar spam, por exemplo.

Tipos de registros de DNS

Quando você registra um domínio e contrata um serviço de hospedagem, este pode oferecer subdomínios baseados em seu endereço para que você possa acessar serviços de e-mail, servidor de FTP (+), entre outros, por exemplo: ftp.seusite.com.br ou mail.seusite.com.br. Além disso, você também pode querer um subdomínio para determinados fins, como criar um blog dentro do seu site: blog.seusite.com.br.

Isso é possível graças a alguns registros (parâmetros) de DNS, que devem ser inseridos em arquivos específicos de configuração do servidor. No entanto, no caso de serviços de hospedagem, muitas vezes é possível alterar tais parâmetros por meio de um painel de controle ou de uma página específica.

Entre os registros mais comuns, constam:

  • A: basicamente, associam um ou mais endereços IP a um ou mais domínios. Pode-se utilizar AAAA para endereços IPv6;
  • CNAME (Canonical Name): servem para criar redirecionamentos para domínios ou subdomínios;
  • MX (Mail Exchanger): são os parâmetros que devem ser configurados para contas de e-mail no domínio (@seusite.com.br);
  • NS (Name Server): indicam quais servidores atuam como serviço de DNS do site;
  • PTR (Pointer): informam quais domínios estão associados a determinados IPs, quase se fosse o reverso dos registros A;
  • SRV (abreviação de Service): indicam a localização de determinados serviços dentro do domínio;
  • SOA (Start of Authority): indicam o início de uma zona, isto é, de um conjunto de registros localizado dentro de um espaço de nomes de DNS. Cada zona deve ter um registro SOA;
  • TXT (abreviação de Text): servem para a inserção de comentários ou orientações.

Artigos Relacionados

Deixe uma resposta