Vista geral do DNS

Esta página fornece uma vista geral do Sistema de Nomes de Domínio (DNS).

Para uma vista geral do Cloud DNS, consulte a vista geral do Cloud DNS. Para ver os termos principais relacionados com o Cloud DNS, consulte o artigo Termos principais.

O DNS é uma base de dados distribuída hierárquica que armazena endereços IP e outros dados e permite consultas por nome.

Por outras palavras, o DNS é um diretório de nomes de domínios legíveis que se traduzem em endereços IP numéricos usados pelos computadores para comunicarem entre si. Por exemplo, quando introduz um URL num navegador, o DNS converte o URL num endereço IP de um servidor Web associado a esse nome. Os diretórios DNS são armazenados e distribuídos em todo o mundo em servidores de nomes de domínios que são atualizados regularmente.

Os seguintes conceitos são úteis quando trabalha com DNS.

Tipos de servidores DNS

Um servidor DNS armazena uma base de dados de nomes de domínios e, em seguida, processa os nomes de domínios com base em consultas DNS provenientes de um cliente numa rede.

Servidor autoritário

Um servidor autoritário é um servidor que contém os registos de nomes DNS, incluindo A, AAAA e CNAME.

Um servidor não oficial cria um ficheiro de cache com base em consultas anteriores de domínios. Não contém registos de nomes originais.

Resolvedor recursivo

Um resolutor recursivo é o servidor que envia uma consulta ao servidor autoritário ou não autoritário para resolução. Um resolvedor recursivo é assim chamado porque executa cada consulta para um determinado nome e devolve o resultado final.

Isto contrasta com um resolutor iterativo, que apenas devolve uma referência aos próximos servidores DNS que podem ter a resposta.

Por exemplo, quando resolve o nome google.com., o resolvedor recursivo tem de determinar quem é autoritário para . (a zona raiz do DNS). Em seguida, pergunta a esses servidores de nomes quem é o servidor oficial para .com.. Por fim, pergunta a esses servidores de nomes quem é o servidor oficial para google.com. e os dados de recursos do registo A são devolvidos ao cliente.

Segue-se um exemplo de um resolvedor recursivo em ação. Se executar dig +trace google.com, o resolvedor recursivo realiza a seguinte ação (8.8.8.8/DNS público da Google é um desses resolvedores):

 dig +trace google.com
; <<>> DiG 9.11.5-P4-5.1-Debian <<>> +trace google.com
;; global options: +cmd
.           168383  IN  NS  a.root-servers.net.
.           168383  IN  NS  b.root-servers.net.
.           168383  IN  NS  c.root-servers.net.
.           168383  IN  NS  d.root-servers.net.
.           168383  IN  NS  e.root-servers.net.
.           168383  IN  NS  f.root-servers.net.
.           168383  IN  NS  g.root-servers.net.
.           168383  IN  NS  h.root-servers.net.
.           168383  IN  NS  i.root-servers.net.
.           168383  IN  NS  j.root-servers.net.
.           168383  IN  NS  k.root-servers.net.
.           168383  IN  NS  l.root-servers.net.
.           168383  IN  NS  m.root-servers.net.
.           168383  IN  RRSIG   NS 8 0 518400 20190810170000 20190728160000 59944 .
    ITqCp5bSKwoG1P76GpNfDanh4fXxOtHuld5SJzEm9ez0U/K7kpmBm4TE
    cw82zuqtZlqiGOuq+90KHJEhD1fdX3FujgDqe3kaY/41LgFIo76RBeMP
    CorYg29lKQOBf7pLPiJWewFmnLsRXsvENzxNXl9mynX80EQSS2YlCWpr
    47i2j5SFpGDzmxls7LinB4VvwVLhy0FPwBaVc5NVqQoFS5ZkfKXCUz8x
    urExPT2OtPJeDiGzrQGmT6vDbYZtJRWWGK5tPIKZQyF/08YSJlrjebNa
    1nKZVN8SsO8s7elz6JGmdoM6D/1ByLNFQmKvU55ikaVSnXylqixLbJQI 7LyQoA==
;; Received 525 bytes from 127.0.0.1#53(127.0.0.1) in 22 ms

com.            172800  IN  NS  a.gtld-servers.net.
com.            172800  IN  NS  b.gtld-servers.net.
com.            172800  IN  NS  c.gtld-servers.net.
com.            172800  IN  NS  d.gtld-servers.net.
com.            172800  IN  NS  e.gtld-servers.net.
com.            172800  IN  NS  f.gtld-servers.net.
com.            172800  IN  NS  g.gtld-servers.net.
com.            172800  IN  NS  h.gtld-servers.net.
com.            172800  IN  NS  i.gtld-servers.net.
com.            172800  IN  NS  j.gtld-servers.net.
com.            172800  IN  NS  k.gtld-servers.net.
com.            172800  IN  NS  l.gtld-servers.net.
com.            172800  IN  NS  m.gtld-servers.net.
com.            86400   IN  DS  30909 8 2
    E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.            86400   IN  RRSIG   DS 8 1 86400 20190811170000 20190729160000 59944 .
    KXPRdZspxd6hZYRFx3cj7Yp3d6HDzOG5CmoK46ZrrlKnZkCYMPKzyFQ2
    15pA+jZ37MbQbhe6+S+C4AHWqv95DDsue85ha3ZmWGhnJxcLnDaL5Twp
    Z/W/a+1cTHhhbMZua1riw74mqvzRAF1kVerj7jrvWnOAOZCh69Dr4AFJ
    gRN4MAn+wCZDmPQCtkcGVJ9vyNV7Xra45B4ISqEo0xi8CXewp9cc+aW5
    TSjFRhj1RM9d3k+3Mrq6AAV8dVgWofYTg6Ihph/SfoIx4TrTrEbgfdsv
    MvuLPXvK6Y7oSh5WknbFduw7HQdo1jH3/QR54FORswBJT8VmYD7Zii88 tAjbRQ==
;; Received 1170 bytes from 192.58.128.30#53(j.root-servers.net) in 2 ms

google.com.     172800  IN  NS  ns2.google.com.
google.com.     172800  IN  NS  ns1.google.com.
google.com.     172800  IN  NS  ns3.google.com.
google.com.     172800  IN  NS  ns4.google.com.
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 -
    CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2
    86400 20190803044434 20190727033434 17708 com.
    rMmiNL7bYvJpB3Bc+WnqS2iiczm2PwxBvJcl7SL/vcTj88GsxM1ycTSV
    PsHZHxfrv1dv2C5BCSZ+mzeVBu8upLoeraQy+UVf3VXyt3i3rNGzcXYV
    8HSrHcXrRoAJopFim3Ge1xdZ+uERg3cTIcN2tJxxkCeqt/EcUTqtQl8t EAc=
    S84BDVKNH5AGDSI7F5J0O3NPRHU0G7JQ.com. 86400 IN NSEC3 1 1 0 -
    S84CFH3A62N0FJPC5D9IJ2VJR71OGLV5 NS DS RRSIG
    S84BDVKNH5AGDSI7F5J0O3NPRHU0G7JQ.com. 86400 IN RRSIG NSEC3
    8 2 86400 20190804045723 20190728034723 17708 com.
    jypPsaWVop9rzuf70CFYyiK0hliiJ+YYtkjgb3HVj9ICc57kLmv9DkvG
    DddF5GBQpqNEakzyJtya179MAdDT7RhJB4XfmY6fu5I5QTeIjchfP5wt
    7gU1AL7cqTmBAo2RWu62vtUytV09+O3KGFq5O+Cwr11dSTfq1yYyw6YW cMI=
;; Received 772 bytes from 192.41.162.30#53(l.gtld-servers.net) in 2 ms

google.com.     300 IN  A   172.217.7.14
;; Received 55 bytes from 216.239.32.10#53(ns1.google.com) in 13 ms

Cada cliente DNS consulta um servidor de nomes. Um resolvedor recursivo consulta outros servidores de nomes, até um servidor de nomes de nível superior, se necessário. O registo NS de uma zona num servidor de nomes de nível superior direciona o resolvedor para baixo para outro servidor de nomes, alcançando eventualmente um servidor de nomes que tenha colocado a zona em cache ou o servidor oficial da zona.

Zonas

Zona pública

Uma zona pública é visível para a Internet. Pode criar registos DNS numa zona pública para publicar o seu serviço na Internet. Por exemplo, pode criar um registo A numa zona pública denominada example.com. (tenha em atenção o ponto final) para o seu Website público www.example.com..

Zona privada

Uma zona privada é qualquer zona que não pode ser consultada através da Internet pública.

Subzona delegada

O DNS permite que o proprietário de uma zona use registos NS para delegar um subdomínio a um servidor de nomes diferente. Os resolvedores seguem estes registos e enviam consultas para o subdomínio para o servidor de nomes de destino especificado na delegação.

Por exemplo, pode criar zonas separadas para example.com e subdomain.example.com, cada uma com o seu próprio servidor de nomes autoritativo. Uma vez que subdomain.example.com é um domínio secundário de example.com, o método para ativar o servidor de nomes oficial para o subdomínio a localizar a partir da zona do domínio principal denomina-se delegação. A delegação é essencialmente um ponteiro para o servidor de nomes autorizado de um subdomínio. Para ativar a delegação no Cloud DNS, pode adicionar registos NS para os subdomínios na zona do domínio principal.

DNS de horizonte dividido

O horizonte dividido é um termo usado para descrever uma instância quando são criadas duas zonas para o mesmo domínio, uma para ser usada pela rede interna e a outra para ser usada pela rede externa (normalmente, a Internet). O DNS de horizonte dividido permite-lhe publicar respostas diferentes (conjuntos de registos de recursos diferentes) para o mesmo nome, consoante quem está a perguntar.

Por exemplo, pode fornecer a versão de desenvolvimento ou de preparação da sua aplicação se a consulta for proveniente da rede de desenvolvimento e a versão de produção ou pública da sua app se a consulta for proveniente da Internet pública.

Registos

Um registo A é um mapeamento entre um recurso DNS e um nome de domínio. Cada registo DNS individual tem um tipo (nome e número), um tempo de expiração (tempo de vida) e dados específicos do tipo.

Alguns dos tipos de registos usados frequentemente são:

  • A: registo de endereço, que mapeia nomes de anfitriões para o respetivo endereço IPv4.
  • AAAA: registo de endereço IPv6, que mapeia nomes de anfitriões para o respetivo endereço IPv6.
  • CNAME: registo de nome canónico, que especifica nomes de alias.
  • MX: registo de troca de correio, que é usado em pedidos de encaminhamento para servidores de correio.
  • NS: registo do servidor de nomes, que delega uma zona DNS a um servidor oficial.
  • PTR: registo Pointer, que define um nome associado a um endereço IP.
  • SOA: início da autoridade, usado para designar o servidor de nomes principal e o administrador responsável por uma zona. Cada zona alojada num servidor DNS tem de ter um registo SOA (Start of Authority). Pode modificar o registo conforme necessário (por exemplo, pode alterar o número de série para um número arbitrário para suportar o controlo de versões baseado na data).

Conjuntos de registos

Os registos com o mesmo nome e do mesmo tipo, mas com diferentes valores de dados, são denominados conjuntos de registos. Quando cria um registo, se existir um conjunto com o mesmo nome e tipo, o registo é adicionado a este conjunto correspondente. Se não existir um conjunto correspondente, é criado um novo conjunto que é anexado à lista de conjuntos de registos.

Este é um exemplo de um conjunto de registos com mais do que um registo com o mesmo nome e tipo:

Nome de DNS Tipo TTL (segundos) Dados
db-01.dev.gcp.example.com A 50 10.128.1.35
db-01.dev.gcp.example.com A 50 10.128.1.10

Para ver uma lista dos tipos de registos suportados no Cloud DNS, consulte o artigo Tipos de registos de DNS suportados.

Delegação de subdomínios

Quando criar registos, certifique-se de que os registos NS e SOA correspondem entre si. Os registos NS e SOA em conflito podem fazer com que alguns resolvedores rejeitem a delegação como inválida e se recusem a colocar em cache as respostas NO DATA às consultas. Isto pode resultar num número inesperado de consultas contra as suas zonas geridas públicas por resolvedores recursivos de terceiros quando os resolvedores consultam as suas zonas geridas públicas para registos que não existem.

Por exemplo, suponha que existem dois subdomínios, example.com e subdomain.example.com no Cloud DNS. Os registos NS e SOA para subdomain.example.com não correspondem. Nenhuma das zonas contém registos AAAA. Quando alguns resolvedores recursivos de terceiros consultam subdomain.example.com um registo AAAA e recebem uma resposta NO DATA, se os resolvedores detetarem a delegação inválida de subdomain.example.com, recusam-se a colocar em cache a inexistência de registos AAAA nessa zona. Isto resulta na repetição das consultas. Por sua vez, consultam todos os servidores de nomes do Cloud DNS para obter estas informações.

Entidade de registo

Uma entidade de registo de nomes de domínios é uma organização que gere a reserva de nomes de domínios da Internet para zonas públicas. Uma entidade de registo tem de ser acreditada por uma base de dados de registo de domínio de nível superior genérico (gTLD) ou uma base de dados de registo de domínio de nível superior de código de país (ccTLD). É assim que os servidores de nomes de nível superior concordam com o SOA e atualizam os registos NS para a zona de modo a direcionar os pedidos para servidores de nomes de cache ou autorizados.

Número de série do SOA

O número de série SOA é um número de versão para uma zona DNS. Para que todos os servidores de nomes estejam atualizados com a versão de uma zona, têm de ter o mesmo número de série SOA. Os números de série dos registos SOA criados em zonas geridas de DNS aumentam monotonicamente com cada alteração transacional aos conjuntos de registos de uma zona.

No entanto, pode alterar o número de série de um registo SOA para um número arbitrário, incluindo uma data no formato ISO 8601, conforme recomendado na RFC 1912.

DNSSEC

A Extensão de Segurança do Sistema de Nomes de Domínio (DNSSEC) resolve vulnerabilidades dos dados DNS. As DNSSEC são um conjunto de especificações da IETF que fornecem autenticação de dados DNS, negação de existência autenticada e integridade de dados a clientes DNS (resolvedores). Em resumo, as DNSSEC oferecem uma forma de o software verificar a origem dos dados DNS e validar se não foram modificados durante a transmissão.

Para mais detalhes sobre as DNSSEC, consulte o RFC 4033.

Para ver uma lista de terminologia geral de DNS, consulte o RFC 7719.

O que se segue?