Domain Name System

Origem: Wikipédia, a enciclopédia livre.
(Redirecionado de Dns)
Ir para: navegação, pesquisa
NoFonti.svg
Esta página ou secção cita fontes confiáveis e independentes, mas que não cobrem todo o conteúdo, comprometendo a sua verificabilidade (desde junho de 2016).
Por favor, adicione mais referências inserindo-as no texto. Material sem fontes poderá ser removido.—Encontre fontes: Google (notícias, livros e acadêmico)

O Domain Name System (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 IP numé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.[1]

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.[2]

Existem centenas de servidores-raiz DNS (root servers) no mundo todo, agrupados em 13 zonas DNS raiz,[3] 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.

História[editar | editar código-fonte]

A implementação do DNS-Berkeley, foi desenvolvida originalmente para o sistema operacional BSD UNIX 4.3. A implementação do Servidor de DNS Microsoft se tornou parte do sistema operacional Windows NT na versão Server 4.0. O DNS passou a ser o serviço de resolução de nomes padrão a partir do Windows 2000 Server como a maioria das implementações de DNS teve suas raízes nas RFCs 882 e 883, e foi atualizado nas RFCs 1034 e 1035.

Visão geral[editar | editar código-fonte]

Um recurso da internet, por exemplo um site da Web, pode ser identificado de duas maneiras: pelo seu nome de domínio[4], por exemplo, “www.wikipedia.org” ou pelo endereço de IP[5] dos equipamentos que o hospedam (por exemplo, 208.80.152.130 é o IP associado ao domínio www.wikipedia.org[6]). Endereços IP são usados pela camada de rede para determinar a localização física e virtual do equipamento. Nomes de domínio, porém, são mais mnemônicos para o usuário e empresas. É então necessário um mecanismo para resolver um nome de domínio em um endereço IP. Esta é a principal função do DNS.

Ocasionalmente, presume-se que o DNS serve apenas o objetivo de mapear nomes de hosts da Internet a dados e mapear endereços para nomes de host. Porém, o DNS pode armazenar uma grande variedade de tipo de dados, para praticamente qualquer finalidade.[7]

Hierarquia[editar | editar código-fonte]

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[editar | editar código-fonte]

Ver artigo principal: Servidor-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 topo apropriado. 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 (top-level domain)[editar | editar código-fonte]

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.[8]

Servidores com autoridade[editar | editar código-fonte]

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[9]. 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[editar | editar código-fonte]

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[editar | editar código-fonte]

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[editar | editar código-fonte]

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[editar | editar código-fonte]

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)[editar | editar código-fonte]

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.

Estrutura[editar | editar código-fonte]

The hierarchical domain name system, organized into zones, each served by a name server

Registro de nome de domínio[editar | editar código-fonte]

A organização responsável por atribuir nomes de domínio e endereços IP em nível global é a ICANN.

Referências

  1. RFC 1035, Domain Names - Implementation and Specification, P. Mockapetris, The Internet Society (November 1987)
  2. «DNS: Entenda como se proteger com o analista de segurança da PSafe» 
  3. «IANA: Root Servers». Consultado em 29 de junho de 2017 
  4. RFC 1034 (em inglês)
  5. RFC 781 (em inglês)
  6. IP da wikipedia (em inglês)
  7. «rfc2181» 
  8. «O que é DNS (Domain Name System)?». InfoWester. Consultado em 26/-7/2017  Verifique data em: |acessodata= (ajuda)
  9. «Name Server Definition». www.techterms.com. Consultado em 1º de agosto de 2012 

Ver também[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]

Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.