Panoramica generale del DNS

Questa pagina fornisce una panoramica del Domain Name System (DNS).

Per una panoramica di Cloud DNS, consulta la panoramica di Cloud DNS. Per i termini chiave correlati a Cloud DNS, consulta Termini chiave.

Il DNS è un database distribuito gerarchico che archivia indirizzi IP e altri dati e consente di eseguire query per nome.

In altre parole, il DNS è una directory di nomi di dominio leggibili che si traducono in indirizzi IP numerici utilizzati dai computer per comunicare tra loro. Ad esempio, quando digiti un URL in un browser, il DNS lo converte in un indirizzo IP di un server web associato a quel nome. Le directory DNS vengono memorizzate e distribuite in tutto il mondo su server dei nomi di dominio aggiornati regolarmente.

I seguenti concetti sono utili quando si lavora con il DNS.

Tipi di server DNS

Un server DNS memorizza un database di nomi di dominio ed elabora i nomi di dominio in base alle query DNS provenienti da un client di una rete.

Server autorevole

Un server autorevole è un server che contiene i record dei nomi DNS, tra cui A, AAAA e CNAME.

Un server non autorevole crea un file della cache in base alle query precedenti per i domini. Non contiene record dei nomi originali.

Resolver ricorsivo

Un resolver ricorsivo è il server che invia una query al server autorevole o non autorevole per la risoluzione. Un risolutore ricorsivo è così chiamato perché esegue ogni query per un determinato nome e restituisce il risultato finale.

Ciò è in contrasto con un resolver iterativo, che restituisce solo un referral ai server DNS successivi che potrebbero avere la risposta.

Ad esempio, durante la risoluzione del nome google.com., il resolver ricorsivo deve determinare chi è autorevole per . (la zona principale del DNS). Poi chiede ai server dei nomi autorevoli per .com.. Infine, chiede ai server dei nomi chi è autorevole per google.com. e i dati rdata per il record A vengono restituiti al client.

Di seguito è riportato un esempio di resolver ricorsivo in azione. Se esegui dig +trace google.com, il resolver ricorsivo esegue la seguente azione (8.8.8.8/Google Public DNS è uno di questi resolver):

 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

Ogni client DNS esegue una query su un server dei nomi. Un risolutore ricorsivo esegue query su altri server dei nomi, fino a un server dei nomi di primo livello, se necessario. Il record NS per una zona su un server dei nomi di livello superiore indirizza il resolver giù a un altro server dei nomi, raggiungendo infine un server dei nomi che ha memorizzato nella cache la zona o il server autorevole per la zona.

Zone

Zona pubblica

Una zona pubblica è visibile su Internet. Puoi creare record DNS in una zona pubblica per pubblicare il tuo servizio su internet. Ad esempio, potresti creare un record A in una zona pubblica denominata example.com. (nota il punto finale) per il tuo sito web pubblico www.example.com..

Zona privata

Una zona privata è una zona su cui non è possibile eseguire query tramite la rete internet pubblica.

Sottozona delegata

Il DNS consente al proprietario di una zona di utilizzare i record NS per delegare un sottodominio a un altro server dei nomi. I resolver seguono questi record e inviano query per il sottodominio al server dei nomi di destinazione specificato nella delega.

Ad esempio, puoi creare zone separate sia per example.com che per subdomain.example.com, ciascuna con il proprio server DNS autorevole. Poiché subdomain.example.com è un dominio figlio di example.com, il metodo per consentire al server dei nomi autorevole del sottodominio di essere individuato dalla zona del dominio principale è chiamato delega. La delega è essenzialmente un puntatore al server dei nomi autorevole per un sottodominio. Per attivare la delega in Cloud DNS, puoi aggiungere record NS per i sottodomini nella zona del dominio principale.

DNS a livello di orizzonte diviso

Orizzonte diviso è un termine utilizzato per descrivere un'istanza quando vengono create due zone per lo stesso dominio, una da utilizzare dalla rete interna e l'altra dalla rete esterna (di solito internet). Il DNS a orizzonte diviso consente di fornire risposte diverse (insiemi di record di risorse diversi) per lo stesso nome a seconda di chi effettua la richiesta.

Ad esempio, puoi fornire la versione di sviluppo o di staging dell'applicazione se la query proviene dalla rete di sviluppo e la versione di produzione o pubblica dell'app se la query proviene dalla rete internet pubblica.

Record

Un record è una mappatura tra una risorsa DNS e un nome di dominio. Ogni singolo record DNS ha un tipo (nome e numero), una data di scadenza (TTL) e dati specifici per tipo.

Ecco alcuni dei tipi di record più utilizzati:

  • R: record indirizzo, che mappa i nomi host al relativo indirizzo IPv4.
  • AAAA: record indirizzo IPv6, che mappa i nomi host al relativo indirizzo IPv6.
  • CNAME:record con nome canonico che specifica i nomi degli alias.
  • MX: record Mail Exchange, utilizzato per il routing delle richieste ai server di posta.
  • NS: record del server dei nomi, che delega una zona DNS a un server autorevole.
  • PTR: record PTR, che definisce un nome associato a un indirizzo IP.
  • SOA: Start of authority, utilizzato per designare il server dei nomi principale e l'amministratore responsabile di una zona. Ogni zona ospitata su un server DNS deve avere un record SOA (start of authority). Puoi modificare il record in base alle esigenze (ad esempio, puoi cambiare il numero di serie con un numero arbitrario per supportare la gestione delle versioni in base alla data).

Set di record

I record con lo stesso nome e dello stesso tipo, ma con valori di dati diversi, sono chiamati set di record. Quando crei un record, se esiste un insieme con lo stesso nome e tipo, il record viene aggiunto a questo insieme corrispondente. Se non esiste un set corrispondente, viene creato un nuovo set e aggiunto all'elenco dei set di record.

Questo è un esempio di set di record con più record che hanno lo stesso nome e tipo:

Nome DNS Tipo TTL (secondi) Dati
db-01.dev.gcp.example.com A 50 10.128.1.35
db-01.dev.gcp.example.com A 50 10.128.1.10

Per un elenco dei tipi di record supportati in Cloud DNS, consulta Tipi di record DNS supportati.

Delega dei sottodomini

Quando crei i record, assicurati che i record NS e SOA corrispondano tra loro. I record NS e SOA in conflitto possono causare il rifiuto da parte di alcuni resolver della delega come non valida e il rifiuto di memorizzare nella cache le risposte NO DATA alle query. Ciò può comportare un numero elevato e imprevisto di query sulle tue zone gestite pubbliche da parte di resolver ricorsivi di terze parti quando i resolver eseguono query sulle tue zone gestite pubbliche per cercare record inesistenti.

Ad esempio, supponiamo che in Cloud DNS siano presenti due sottodomini, example.com e subdomain.example.com. I record NS e SOA per subdomain.example.com non corrispondono. Nessuna delle zone contiene record AAAA. Quando alcuni risolutori ricorsivi di terze parti eseguono una query su subdomain.example.com per un record AAAA e ricevono una risposta NO DATA, se rilevano la delega non valida di subdomain.example.com, rifiutano di memorizzare nella cache la non esistenza di record AAAA in quella zona. Ciò comporta il nuovo tentativo di eseguire le query. A loro volta, eseguono query su tutti i server dei nomi Cloud DNS per queste informazioni.

Registrar

Un registrar di nomi di dominio è un'organizzazione che gestisce la prenotazione di nomi di dominio internet per le zone pubbliche. Un registrar deve essere accreditato da un registry di domini di primo livello generici (gTLD) o da un registry di domini di primo livello con codice paese (ccTLD). In questo modo, i server dei nomi di livello superiore concordano sul SOA e aggiornano i record NS per la zona per indirizzare le richieste ai server dei nomi autorevoli o con cache.

Numero di serie SOA

Il numero di serie SOA è un numero di versione per una zona DNS. Affinché tutti i server dei nomi siano aggiornati con la versione di una zona, devono avere lo stesso numero di serie SOA. I numeri di serie dei record SOA creati nelle zone DNS gestite aumentano in modo monotonico con ogni modifica transazionale ai set di record di una zona.

Tuttavia, puoi modificare il numero di serie di un record SOA in un numero arbitrario, inclusa una data nel formato ISO 8601, come consigliato nel RFC 1912.

DNSSEC

L'estensione DNSSEC (Domain Name System Security Extensions) risolve le vulnerabilità ai dati DNS. DNSSEC è una suite di specifiche IETF che fornisce l'autenticazione dei dati DNS, la negazione autenticata dell'esistenza e l'integrità dei dati ai client DNS (resolver). In breve, DNSSEC consente al software di verificare l'origine dei dati DNS e di convalidare che non siano stati modificati in transito.

Per ulteriori dettagli su DNSSEC, consulta la RFC 4033.

Per un elenco della terminologia DNS generale, consulta RFC 7719.

Passaggi successivi