Domain Name System (acronimo DNS, in italiano sistema dei nomi di dominio),[1] in informatica e telecomunicazioni, indica un sistema utilizzato per assegnare nomi ai nodi della rete (in inglese host).

Indica anche il protocollo che regola il funzionamento del servizio, i programmi che lo implementano, i server su cui questi vengono elaborati, l'insieme di questi server che cooperano per fornire il servizio più intelligente.

Storia

[modifica | modifica wikitesto]

Il DNS fu ideato il 23 giugno 1983 da Paul Mockapetris, Jon Postel e Craig Partridge[2][3]; le specifiche originali sono descritte nello standard RFC 882. Nel 1987 vennero pubblicati commenti allo standard RFC del DNS, con i nomi RFC 1034 e RFC 1035 rendendo obsolete le specifiche precedenti.

Descrizione

[modifica | modifica wikitesto]

I nomi DNS, o "nomi di dominio" o "indirizzi mnemonici"[N 1], sono una delle caratteristiche più visibili di Internet. L'operazione di conversione da nome a indirizzo IP è detta "risoluzione DNS"; la conversione da indirizzo IP a nome è detta "risoluzione inversa". Questi nomi sono utilizzabili, mediante una traduzione, di solito chiamata "risoluzione", al posto degli indirizzi IP originali. Il servizio è realizzato tramite un database distribuito, costituito dai server DNS. Il DNS ha una struttura gerarchica ad albero rovesciato ed è diviso in domini (com, org, it, ecc.). Ad ogni dominio o nodo corrisponde un nameserver, che conserva un database con le informazioni di alcuni domini di cui è responsabile e si rivolge ai nodi successivi quando deve trovare informazioni che appartengono ad altri domini.

Ogni nome di dominio termina con un "." (punto). Ad esempio l'indirizzo wikipedia.org termina con il punto. La stringa che segue il punto finale è chiamata "dominio radice" (DNS root zone). I server responsabili del dominio radice sono i cosiddetti root nameservers. Essi possiedono l'elenco dei server autoritativi di tutti i domini di primo livello (TLD) riconosciuti e lo forniscono in risposta a ciascuna richiesta. I root nameserver sono 13 in tutto il mondo, di cui 10 negli Stati Uniti, due in Europa (Inghilterra e Svezia) e uno in Giappone.

In pratica, il DNS è un registro universale cioè un database distribuito, con una struttura gerarchica, che archivia i nomi mnemonici di dominio e la loro associazione ai relativi indirizzi IP specifici.

Motivazioni ed utilizzi

[modifica | modifica wikitesto]

Nomi di dominio

[modifica | modifica wikitesto]

Un nome di dominio è costituito da una serie di stringhe separate da punti, ad esempio it.wikipedia.org. e sono organizzati a livelli. A differenza degli indirizzi IP, dove la parte più importante del numero è la prima cifra partendo da sinistra, in un nome DNS la parte più importante è la prima partendo da destra.

La parte più a destra è detta dominio di primo livello (o TLD, Top Level Domain), e ce ne sono centinaia che possono essere scelti, per esempio .org o .it.

Un dominio di secondo livello, a differenza del dominio di primo livello che è formato da parole "fisse" e limitate, è formato da una parola scelta a piacimento. Questa parola deve il più possibile essere legata a quello che ci identifica e a quello che vogliamo comunicare. Il dominio di secondo livello è quindi formato da due parti, per esempio wikipedia.org, e così via.

Il dominio di terzo livello è il figlio del dominio di secondo livello, infatti, prendendo come esempio wikipedia.org, un dominio di terzo livello sarà: stuff.wikipedia.org. Ogni ulteriore elemento specifica quindi un'ulteriore suddivisione. Quando un dominio di secondo livello viene registrato all'assegnatario, questo è autorizzato a usare i nomi di dominio relativi ai successivi livelli, come some.other.stuff.wikipedia.org (dominio di quinto livello) e così via.

Utilizzo dei nomi DNS

[modifica | modifica wikitesto]

Un nome di dominio, come per esempio it.wikipedia.org, può essere parte di un URL, come http://it.wikipedia.org/wiki/Treno, o di un indirizzo e-mail, come per esempio apache@it.wikipedia.org. È anche possibile connettersi a un sito con il protocollo telnet oppure usare una connessione FTP usando il suo nome a dominio.

Record DNS

[modifica | modifica wikitesto]

Tipi di record

[modifica | modifica wikitesto]
Un esempio di risoluzione iterativa di un indirizzo IP da parte del DNS

Ad un nome DNS possono corrispondere diversi tipi di informazioni. Per questo motivo, esistono diversi tipi di record DNS. Ogni voce del database DNS[4] deve essere caratterizzata da un tipo. I principali tipi sono:

Vi sono anche tipi di record "di servizio", necessari al funzionamento del database distribuito:

Nel DNS possono essere immessi altri tipi di record, alcuni folcloristici, come "LOC", usato (poco) per riportare le coordinate geografiche di un sito, altri aggiungono funzioni di sicurezza per evitare manomissioni. Per avere riferimenti su tutti questi record vedi Tipi di record DNS.

Record multipli

[modifica | modifica wikitesto]

Ad uno stesso nome di dominio, possono essere associati contemporaneamente record di tipo diverso, o più record dello stesso tipo. Questo generalmente viene fatto per suddividere il carico di un server molto frequentato su più computer che offrono lo stesso servizio.

Time to live

[modifica | modifica wikitesto]
Sequenza di risoluzione del DNS

I record associati ad un nome di dominio possono cambiare nel tempo, permettendo ad esempio di assegnare un nuovo indirizzo IP a un server, facendo in modo che questo continui a rispondere al nome già noto agli utenti.

A ciascun record DNS è associato un parametro detto time to live o TTL (tempo di vita), che indica per quanto tempo questo record può venire memorizzato in un sistema di cache DNS prima che venga considerato scaduto. Quando un server risponde a una richiesta con un record preso dalla propria cache, assegna alla risposta il time to live residuo del record. Quindi se il record originariamente ha un TTL di 12 ore, e un server risponde ad una richiesta con un dato che ha ottenuto due ore prima, nella risposta metterà un TTL di 10 ore.

Realizzazione

[modifica | modifica wikitesto]

I DNS implementano uno spazio gerarchico dei nomi, per permettere che parti di uno spazio dei nomi, conosciute come "zone", possano essere delegate da un name server ad un altro name server che si trova più in basso nella gerarchia.

I nomi di dominio sono soggetti a determinate restrizioni: per esempio ogni parte del nome (quella cioè limitata dai punti nel nome) non può superare i 63 caratteri e il nome complessivo non può superare i 255 caratteri.

I nomi di dominio sono anche limitati a un sottoinsieme di caratteri ASCII; in questo modo si impedisce di scrivere nomi e parole con caratteri che non tutti hanno sulla propria tastiera. Per superare questa limitazione, il sistema di IDNA si basa sul modello Punycode, rileva stringhe Unicode in un insieme di caratteri DNS validi, venne approvato dall'ICANN e adottato da alcuni registri.

Zone, deleghe e repliche

[modifica | modifica wikitesto]
Diagramma del DNS

Una "zona" DNS è una parte dello spazio dei nomi, costituita da un dominio e i suoi sottodomini che non sono a loro volta delegati, che è sotto una stessa gestione amministrativa e quindi è gestita da uno o più server.

La gestione di una zona è "delegata" dalla zona superiore tramite dei record di tipo NS. Ad esempio, nella zona .org ci sarà una delega per la zona wikipedia.org ai server DNS che la gestiscono. Per ragioni di ridondanza, ciascuna zona è "replicata" su più server, e di conseguenza la delega è costituita da più record NS, che indicano che ciascuno dei server indicati contiene le informazioni per quella zona (ovvero è "autoritativo" per la zona). All'interno di una zona possono essere delegate delle zone di livello inferiore, ad esempio in wikipedia.org potrebbero esistere deleghe per devel.wikipedia.org o per accounting.admin.wikipedia.org.

Ogni dominio, quindi, possiede un server DNS autoritativo.[5]

I diversi server che sono delegati per una zona dovrebbero contenere le stesse informazioni, in modo che uno qualsiasi di questi possa rispondere ad una query per un record della zona.

Lo schema di replica tipicamente prevede che ci sia un server master (primario), che è quello sul quale vengono aggiornate le informazioni, e uno o più server slave (secondari), che copiano le informazioni dal master quando necessario. Per tener traccia delle diverse "versioni" di una zona che possono esserci in circolazione, e in particolare per permettere a un secondario di decidere se deve trasferire la zona dal primario, ogni zona ha un numero di serie, che deve essere aumentato ogni volta che vengono fatte modifiche sul primario. Per ottenere il numero di serie di una zona presente su un server, si effettua una interrogazione di tipo SOA. Il secondario confronta il proprio numero di serie con quello del primario, e se quello del primario è superiore trasferisce la zona.

L'operazione di copia di tutti i record di una zona dal master a uno slave è detta zone transfer, e può essere completo (tutto il contenuto della zona viene copiato) o incrementale (vengono copiati solo i record modificati rispetto alla versione già presente).

Alcune implementazioni di DNS permettono di modificare le zone da qualsiasi server autorevole, propagando le modifiche sugli altri server.

La radice (root) dell'albero dei nomi DNS è la zona. (punto), che è gestita da un insieme di server chiamati appunto root servers.

Iterazione e ricorsione

[modifica | modifica wikitesto]

In generale, per ottenere la risoluzione di un nome è necessario partire dalla radice, interrogare uno dei root server nel dominio di primo livello, ottenere il server che lo gestisce, interrogarlo nel dominio di secondo livello, fino a raggiungere il server autorevole per il nome desiderato. Questa tecnica è detta "iterazione".

La ricorsione invece delega ai server stessi le varie interrogazioni: si fa una richiesta al root server, il quale la inoltra esso stesso al TLD server, il quale la inoltra al server autoritativo e così via fino a raggiungere il server desiderato. La risposta DNS procede in senso inverso fino a giungere al client che aveva fatto la richiesta.

Caching

[modifica | modifica wikitesto]

Alcuni server si prestano ad effettuare query ricorsive per conto di alcuni client. Una volta che hanno ottenuto una risposta, memorizzano in una cache tutte le informazioni che hanno imparato, fino alla loro scadenza. Alcune implementazioni del servizio DNS permettono di realizzare i cosiddetti servers caching only, ovvero privi di database proprio, ma utili per reindirizzare ad un server autorevole le query di risoluzione. Tale caratteristica è utile soprattutto quando la risoluzione deve essere effettuata attraverso collegamenti lenti (con velocità inferiore a 500 kbps) o firewall.

Funzioni dei server

[modifica | modifica wikitesto]

Un server DNS può essere configurato per assolvere ad una o più delle seguenti funzioni:

Origine dei dati

[modifica | modifica wikitesto]

I dati contenuti in una zona possono essere configurati da uno o più operatori, oppure possono essere alimentati da meccanismi automatici:

DNS dinamico

[modifica | modifica wikitesto]

Il termine DNS dinamico, o DDNS, indica un insieme di tecnologie che permettono di inserire automaticamente in una zona DNS gli indirizzi di calcolatori che ottengono un indirizzo non predefinito, tipicamente attraverso il protocollo DHCP o PPP. A questo scopo, sono definite query DNS di "UPDATE".

In una rete locale, questa funzionalità può essere utilizzata direttamente dai client, è presente nei servizi Active Directory di Windows, o può essere configurata usando BIND e il server DHCP di Internet Systems Consortium (ISC).

Il DDNS viene inoltre utilizzato da servizi commerciali per permettere agli utenti dial-up (modem, ADSL) di registrare un nome corrispondente all'indirizzo che viene loro assegnato di volta in volta dal loro provider. In questo modo, un host con indirizzo IP dinamico è sempre raggiungibile. Esistono client DDNS sia sotto forma di applicazioni che all'interno di router destinati al mercato domestico.

Blocco dei contenuti

[modifica | modifica wikitesto]

Governi e ISP, tramite filtraggio DNS, possono bloccare l'accesso a specifici contenuti non conformi alle leggi locali e/o alla minore età del fruitore, il blocco dei contenuti tramite DNS può venire implementato anche da singoli utenti per finalità di parental control.

Sulla effettiva efficacia di tali blocchi vi sono pareri discordanti in quanto la semplice sostituzione del dns operatore con quello di fornitori terzi ovvero, la configurazione e l'utilizzo del protocollo dns over https, ormai presente su tutti i maggiori browser, gli smartphone con sistema operativo Android ed iOS ed il sistema operativo Windows 11 ovvero l'installazione di specifiche app rinvenibili sugli store, limitano l'efficacia di tali blocchi.

Utilizzo

[modifica | modifica wikitesto]

Per utilizzare il servizio, è necessario configurare su ciascun client uno o più server DNS di riferimento. Questi sono predisposti a effettuare query ricorsive e che effettuano servizi di caching.

Quando un sistema ha la necessità di comunicare con un altro sistema, chiede al server DNS di riferimento di effettuare il processo detto di "risoluzione" del nome in un indirizzo IP. Il server effettua una ricerca all'interno del suo database per ottenere l'indirizzo IP corrispondente al sistema ricercato.

Se il server interrogato possiede l'informazione richiesta, il processo di ricerca termina con l'invio dell'indirizzo IP al richiedente. Se la ricerca ha esito negativo il server effettua una richiesta "ricorsiva".[6][7]

Implementazione

[modifica | modifica wikitesto]

Il protocollo DNS è implementato da diversi software. Di seguito alcuni dei più diffusi:

Il DNS utilizza il protocollo di trasporto UDP e la porta 53 per soddisfare le richieste di risoluzione provenienti dagli host.

I server DNS effettuano gli zone transfer usando il protocollo di trasporto TCP e la porta 53. Questa porta viene usata anche quando una query ha una risposta molto lunga.

Il lato client del servizio DNS è normalmente implementato tramite librerie di sistema, che spesso lo integrano con altri servizi di risoluzione, come ad esempio WINS, NIS, o con la consultazione di file locali, in modo che un utente possa utilizzare un nome simbolico in un'applicazione ed ottenere la sua risoluzione in un indirizzo IP senza preoccuparsi di quale strumento è stato utilizzato per ottenere la risoluzione.

Sistema DNS in Internet

[modifica | modifica wikitesto]

Qualsiasi rete IP può usare il DNS per implementare un suo sistema di nomi privato. Tuttavia, il termine "nome di dominio" è più comunemente utilizzato quando esso si riferisce al sistema pubblico dei DNS su Internet. Questo è basato su 13 root server universali, i cui indirizzi IP sono distribuiti indipendentemente dal DNS tramite un file detto root hint (letteralmente: indizi per la radice). Da questi server principali, il DNS viene poi delegato ad altri server DNS che si occupano dei nomi all'interno di parti specifiche dello spazio dei nomi DNS.

Dieci dei tredici root server sono, almeno nominalmente, situati negli USA. Tuttavia, dato che l'accesso a molti di essi è realizzato tramite indirizzamento anycast, che permette di assegnare a più computer lo stesso indirizzo IP per fornire un servizio uniforme su vaste aree geografiche, la maggior parte dei server sono in effetti localizzati al di fuori degli Stati Uniti.

Il proprietario di un nome di dominio è rintracciabile in un database chiamato Whois: per molti domini di primo livello un Whois base è gestito dalla IANA, con il Whois dettagliato mantenuto dall'autorità di registrazione che controlla quel dominio. Per i più di 240 domini nazionali l'autorità di registrazione gestisce in esclusiva il Whois per il dominio di competenza.

Un sito o applicazione web possono essere ospitati presso un provider (hosting provider) o anche essere archiviati presso la sede del proprietario o gestore, mentre il relativo dominio potrebbe essere stato acquistato da un altro provider comunemente detto registrar (che possiede quindi un'infrastruttura DNS). Il registrar permette, attraverso pannello di amministrazione, di configurare l'IP primario cui è associato il nome a dominio nonché creare dei sotto-domini.

DNS e navigazione

[modifica | modifica wikitesto]

Quando si utilizza Internet attraverso la connessione offerta da un provider telefonico di tipo ISP, il dispositivo impiega il DNS predefinito del fornitore (IP pubblico o IP esterno). In situazioni di tipo aziendale, invece, il DNS per la navigazione web o altri impieghi di Internet potrebbe essere quello impostato centralmente dall'amministratore di rete, servizio spesso a pagamento.

Volendo è sempre possibile usare DNS alternativi, pure gratuiti come, ad esempio il DNS pubblico di Google oppure quello di OpenDNS, sia agendo nelle impostazioni di sicurezza del browser (per la sola navigazione web, quindi un DNS pubblico usato dal router come gateway) sia nelle proprietà della scheda di rete del dispositivo o del router stesso (DNS privato del dispositivo nella rete locale).

Politica

[modifica | modifica wikitesto]

Allocazione delle zone di primo livello

[modifica | modifica wikitesto]

L'attuale modalità di controllo del sistema DNS offre spesso alcune criticità. Alcuni root server appartengono a società private (esempio Verisign), anche se la maggior parte sono controllati da università o altri enti (ad esempio la NASA)[8]. Non è possibile aggiungere altri root server, o almeno, non in maniera fisica: a causa di un problema di compatibilità con il protocollo UDP devono essere visibili solo 13 zone di root server, ma ogni zona può avere più server[9].

Utilizzi impropri

[modifica | modifica wikitesto]

Nel 2009, Paul Vixie, presidente dell'Internet Systems Consortium, ha pubblicato sul sito della Association for Computing Machinery un articolo riguardante pratiche che derivano da interpretazioni sbagliate del concetto di DNS o lo violano deliberatamente.[10]

Manipolazione delle risposte

[modifica | modifica wikitesto]

Quando un client inoltra una query DNS ad un server ricorsivo, si aspetta di ottenere la risposta "corretta", ovvero il valore del record DNS richiesto oppure un messaggio di errore se il nome richiesto non esiste. Questo messaggio è noto come "NXDOMAIN" o anche come "RCODE=3".

Tuttavia, alcuni gestori di server ricorsivi manipolano le risposte fornite ai propri clienti, eliminandone alcune selettivamente[senza fonte], oppure restituendo un indirizzo IP diverso da quello corretto.

Questa tecnica può essere usata con diversi scopi:

Queste tecniche possono essere adottate anche dai gestori di rete, redirigendo le query DNS dirette verso l'esterno su propri server mediante meccanismi di destination NAT (Network address translation).

Il DNS non è stato progettato per questi utilizzi, pertanto le implicazioni sulla sicurezza degli utenti possono essere negative, in quanto le informazioni personali condivise tra un utente e il sito che sta visitando vengono scambiate anche con siti di terzi, non autorizzati.[10]

Note

[modifica | modifica wikitesto]
Annotazioni
  1. ^ Indirizzo mnemonico (ad esempio www.wikipedia.org) perché è facile tenerlo a mente mentre gli indirizzi IP sono ben più complicati per essere memorizzati.
Fonti
  1. ^ (EN) domain name system - Translation in Italian — TechDico, su www.TechDico. URL consultato il 19 luglio 2019.
  2. ^ Why Does the Net Still Work on Christmas? Paul Mockapetris | Internet Hall of Fame, su www.internethalloffame.org. URL consultato il 13 luglio 2022.
  3. ^ Paul Mockapetris | Internet Hall of Fame, su internethalloffame.org. URL consultato il 13 luglio 2022.
  4. ^ John O., Hosting - Che cos'è, Significato, Definizione & Recensioni., su Infowebhosting. URL consultato il 27 ottobre 2017.
  5. ^ DNS (Domain Name System): come funziona - FortyZone, su fortyzone.it. URL consultato l'8 settembre 2015 (archiviato dall'url originale il 5 novembre 2015).
  6. ^ Ecco come usare 1.1.1.1, i DNS che rispettano la privacy, in LaStampa.it. URL consultato il 6 aprile 2018 (archiviato dall'url originale il 6 aprile 2018).
  7. ^ Nuovo DNS 1.1.1.1, velocissimo e sicuro: ecco i primi test (e come usarlo), in Hardware Upgrade. URL consultato il 6 aprile 2018.
  8. ^ Sito ufficiale dei root server - http://www.root-servers.org/
  9. ^ There are not 13 root servers
  10. ^ a b c Paul Vixie, What DNS is Not. DNS is many things to many people - perhaps too many things to too many people, su dl.acm.org, novembre 2009.
    Articolo disponibile anche sul sito della ACM.

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]

Profili legali

[modifica | modifica wikitesto]

ICANN

[modifica | modifica wikitesto]

RFC

[modifica | modifica wikitesto]
Controllo di autoritàGND (DE4348318-5 · NDL (ENJA001311891