DNS (Sistema dei nomi di dominio)

Ogni computer direttamente connesso a internet possiede almeno un proprio indirizzo IP. Tuttavia, gli utenti non vogliono lavorare con degli indirizzi numerici tipo 194.153.205.26 ma con un nome di dominio o degli indirizzi più espliciti (detti indirizzi FQDN) del tipo [www.ccm.net].

Che cosa è un DNS

È possibile associare dei nomi in linguaggio corrente agli indirizzi numerici grazie ad un sistema chiamato DNS (Domain Name System). Viene detta risoluzione dei nomi di domini (o risoluzione di indirizzi) la correlazione tra gli indirizzi IP e il nome del dominio associato.

Nomi di host

Alle origini del TCP/IP, dato che le reti erano poco estese o nominate in un altro modo, il numero di computer connessi ad una stessa rete era basso, gli amministratori di rete crearono dei file detti tabelle di conversione manuale. Queste tabelle di conversione manuale erano dei file sequenziali, generalmente chiamati host o hosts.txt, che associavano ad ogni linea l'indirizzo IP del terminale e il nome letterale associato, detto nome del host.

Introduzione al Domain Name System

Il precedente sistema delle tabelle di conversione necessitava tuttavia dell'aggiornamento manuale delle tabelle di tutti i computer in caso di aggiunta o modifica di un nome di terminale. Così, con l'esplosione della dimensione delle reti, e della loro interconnessione, si è dovuto realizzare un sistema di gestione dei nomi gerarchizzato e più facilmente amministrabile. Il sistema detto Domain Name System (DNS), tradotto Sistema di nome di dominio, è stato elaborato nel novembre del 1983 da Paul Mockapetris (RFC 882 e RFC 883), poi rivisto nel 1987 negli RFCs 1034 e 1035. Il DNS è stato oggetto di più RFC.

Questo sistema propone:

Uno spazio dei nomi (namespace) gerarchico che permette di garantire l'unicità di un nome in una struttura ad arborescenza, allo stesso modo dei sistemi di file di Unix;

Un sistema di server distribuiti permette di rendere disponibile lo spazio dei nomi;

Un sistema di client permette di «risolvere» i nomi dei domini, cioè di interrogare i server per conoscere l'indirizzo IP corrispondente ad un nome.

Lo spazio dei nomi

La strutturazione del sistema DNS si basa su una struttura ad arborescenza in cui sono definiti dei domini di livello superiore (detti TLD per Top Level Domains), collegati ad un nodo radice rappresentato da un punto:

Arborescenza del Domain Name System

Viene detto nome del dominio ogni nodo dell'albero. Ogni nodo possiede un'etichetta (in inglese «label») con una lunghezza massima di 63 caratteri. L'insieme dei nomi di dominio costituisce quindi un albero inverso dove ogni nodo è separato dal seguente da un punto («.»).

L'estremità di un ramo è detta host e corrisponde ad un terminale o un'entità di rete. Il nome del host che gli è attribuito deve essere unico nel dominio considerato o se esiste nel sotto-dominio. Ad esempio il server web di un dominio ha quindi generalmente il nome www.

La parola «dominio» corrisponde formalmente al suffisso di un nome di dominio, cioè l'insieme delle etichette dei nodi di un arborescenza, ad eccezione del host. Il nome assoluto corrispondente all'insieme delle etichette dei nodi di un'arborescenza, separate da punti, e terminato da un punto finale, è detto indirizzo FQDN (Fully Qualified Domain Name, cioè Nome del Dominio Totalmente Qualificato). La profondità massima dell'arborescenza è di 127 livelli e la lunghezza massima di un nome FQDN è di 255 caratteri. L'indirizzo FQDN permette di individuare inequivocabilmente un terminale sulla rete di reti. Quindi www.ccm.net. rappresenta un indirizzo FQDN.

I server dei nomi

I terminali detti server di nome di dominio permettono di stabilire la corrispondenza tra il nome del dominio e l'indirizzo IP dei terminali di una rete. Ogni dominio possiede un server di nomi di domini, detto «server di nomi primario» (primary domain name server), nonché un server di nomi secondario (secondary domaine name server), che permette di sostituirsi al server di nomi primario in caso di indisponibilità.

Ogni server di nomi è dichiarato in un server di nomi di dominio di livello immediatamente superiore, cosa che permette implicitamente una delega di autorità sui domini. Il sistema di nomi è un'architettura distribuita, dove ogni entità è responsabile della gestione del proprio nome di dominio. Non esiste quindi un organismo che abbia il compito di gestire l'insieme dei nomi di domini.

I server corrispondenti ai domini di più alto livello (TLD) sono detti «server di nomi radice». Ne esistono tredici, ripartiti in tutto il mondo, sotto i nomi «a.root-servers.net» a «m.root-servers.net».

Un server di nomi definisce una zona, cioè un insieme di domini sui quali il server ha autorità. Il sistema di nomi di dominio è trasparente per l'utente, tuttavia non bisogna dimenticare i punti seguenti:

Ogni computer deve essere configurato con l'indirizzo di un terminale capace di trasformare qualunque nome in un indirizzo IP. Questo terminale è detto Domain Name Server. Quando vi connettete ad internet, l'ISP modifica automaticamente i vostri parametri di rete per mettervi a disposizione questi server di nomi;

L'indirizzo IP di un secondo Domain Name Server (secondary Domain Name Server) deve essere ugualmente definito. Il server di nomi secondario può sostituire il server di nomi primario in caso di malfunzionamento del primo;

Il server più conosciuto si chiama BIND (Berkeley Internet Name Domain). Si tratta di un software libero disponibili sui sistemi UNIX, sviluppato inizialmente dall'università di Berkeley in California e ormai mantenuto dall'ISC (Internet Systems Consortium).

Risoluzione dei nomi di dominio

Il meccanismo che consiste nel trovare l'indirizzo IP corrispondente al nome di un host è detto «risoluzione di nome di dominio». L'applicazione che permette di realizzare questa operazione (generalmente integrata al sistema operativo) è detta «resolver».

Quando un'applicazione vuole connettersi ad un host conosciuto con il suo nome di dominio (ad esempio «www.ccm.net»), questa interroga un server di nomi definito nella sua configurazione di rete. Ogni terminale connesso alla rete ha in effetti nella sua configurazione gli indirizzi IP dei due server di nomi del suo provider internet.

Una richiesta è quindi inviata al primo server di nomi (detto «server di nome primario»). Se questo ha la registrazione nella sua cache, la invia all'applicazione, in caso contrario interroga il server radice (nel nostro caso un server radice che corrisponda al TLD «.net»). Il server del nome radice rinvia un elenco di server di nomi che rappresentano un'autorità sul dominio (in questo caso gli indirizzi IP dei server di nomi primari e secondari di ccm.net).

Il server di nomi primario che ha autorità sul dominio sarà interrogato e manderà la registrazione corrispondente al host sul dominio (nel nostro caso www):

Processo di risoluzione dei nomi di dominio

Tipi di registrazioni

Un DNS è un database ripartito contenente delle registrazioni, dette RR (Resource Records), che riguardano i nomi dei domini. I soli ad essere interessati alla lettura delle informazioni riportate in seguito sono le persone responsabili dell'amministrazione di un dominio, dato che il funzionamento dei server di nomi è totalmente trasparente per gli utenti.

A causa del sistema di cache che permette al sistema DNS di essere ripartito, le registrazioni di ogni dominio possiedono una durata di vita, detta TTL (Time To Live, tradotto speranza di vita), che permette ai server intermedi di conoscere la data di scadenza delle informazioni e così di sapere se una verifica è più o meno necessaria. In maniera generale, una registrazione DNS comporta le seguenti informazioni:

Nome del dominio (FQDN) TTL Tipo Classe RData
www.ccm.net. 3600 A IN 163.5.255.85

Nome del dominio, il nome del dominio deve essere un nome FQDN, cioè terminare con un punto. Se il punto è omesso, il nome del dominio è relativo, cioè il nome del dominio principale suffisserà il dominio inserito;

Tipo, un valore su 16 bit che specifica il tipo di risorsa descritta dalla registrazione. Il tipo di risorsa può essere una delle seguenti:

A, si tratta del tipo di base che stabilisce la corrispondenza tra un nome canonico e un indirizzo IP. D'altronde, possono esistere più registrazioni A, corrispondenti ai differenti terminali di rete (server);

CNAME (Canonical Name), permette di far corrispondere un alias al nome canonico. È particolarmente utile per fornire dei nomi alternativi corrispondenti ai diversi servizi di uno stesso terminale;

HINFO, si tratta di un campo descrittivo che permette di descrivere soprattutto l'hardware (CPU) e il sistema operativo (OS) di un host. Generalmente si consiglia di non indicarlo per non fornire degli elementi di informazione che possano rivelarsi utili per dei pirati informatici;

MX (Mail eXchange), corrisponde al server di gestione della posta. Quando un utente invia un messaggio elettronico ad un indirizzo (utente@dominio), il server della posta in uscita interroga il server di nome che ha autorità sul dominio per ottenere la registrazione MX.

Possono esistere più MX per dominio, per fornire una ridondanza in caso di guasto del server di messaggeria principale. Così la registrazione permette di definire una priorità con un valore che può andare da 0 a 65 535:

www.ccm.net. IN MX 10 mail.ccm.net.

NS, corrisponde al server di nomi con autorità sul dominio;

PTR, un puntatore verso un'altra parte dello spazio di nomi dei domini;

SOA (Start Of Authority), il campo SOA permette di descrivere il server di nome con autorità sulla zona, nonché l'indirizzo elettronico del contatto tecnico (da cui il carattere «@» è sostituito da un punto);

Classe, la classe può essere sia IN (corrispondente ai protocolli d'internet, si tratta quindi del sistema usato nel nostro caso,) sia CH (per i sistemi caotici);

RDATA, si tratta dei dati corrispondenti alla registrazione. Ecco le informazioni attese secondo il tipo di registrazione:

A, un indirizzo IP a 32 bit;

CNAME, un nome di dominio;

MX, un valore di priorità a 16 bit, seguito da un nome del host;

NS, un nome dell'host;

PTR, un nome di dominio;

SOA, più campi.

Domini di alto livello

Esistono due categorie di TLD (Top Level Domain, ossia domini di più alto livello):

I domini detti «generici», chiamati gTLD (generic TLD). I gTLD sono dei nomi di domini generici di livello superiore che propongono una classificazione secondo il settore di attività. Così ogni gTLD ha le proprie regole di accesso:

gTLD storici;

.arpa corrisponde ai terminali derivanti dalla rete originale;

.com corrispondevano inizialmente alle aziende a vocazione commerciale. Ormai questo TLD è diventato il « TLD di default » e l'acquisizione del dominio con questa estensione è possibile anche per i privati.

.edu corrisponde agli enti educativi;

.gov corrisponde agli enti governativi;

.int corrisponde alle organizzazioni internazionali;

.mil corrisponde agli organismi militari;

.net corrispondeva inizialmente agli enti con tratti di rete. Questo TLD è diventato da qualche anno un TLD corrente. L'acquisizione di domini con questa estensione è possibile anche per i privati.

.org corrisponde solitamente alle aziende senza scopo di lucro.

Nuovi gTLD introdotti nel novembre 2000 dall'ICANN:

.aero corrisponde all'industria aeronautica;

.biz( business) corrisponde alle aziende commerciali;

.museum corrisponde ai musei;

.name corrisponde a nomi di persone o a nomi di personaggi immaginari;

.info corrisponde agli enti con tratti di informazione;

.coop corrispondente alle cooperative;

.pro corrispondente alle professioni liberali.

gTLD speciali:

.arpa corrisponde alle infrastrutture di gestione di rete. L'gTLD arpa serve quindi alla risoluzione inversa dei terminali di rete, permettendo di trovare il nome corrispondente ad un indirizzo IP.

I domini detti «nazionali», chiamati ccTLD(country code TLD). I ccTLD corrispondono ai differenti paesi e i loro nomi corrispondono alle abbreviazioni dei nomi dei paesi definite dalla norma ISO 3166. La tabella sottostante riassume l'elenco dei ccTLD:

Codice Paese
AC Isola dell'Ascensione
AD Andorra
AE Emirati Arabi Uniti
AF Afganistan
AG Antigua e Barbuda
AI Anguilla
AL Albania
AM Armenia
AN Antille Olandesi
AO Angola
AQ Antartica
AR Argentina
AS Samoa Americane
AT Austria
AU Australia
AW Aruba
AZ Azerbaigian
BA Bosnia-Erzegovina
BB Barbados
BD Bangladesh
BE Belgio
BF Burkina Faso
BG Bulgaria
BH Bahreïn
BI Burundi
BJ Benin
BM Bermuda
BN Brunei
BO Bolivia
BR Brasile
BS Bahamas
BT Bhutan
BV Isola Bouvet
BW Botswana
BY Bielorussia
BZ Belize
CA Canada
CC Isole del Coco
CD Repubblica democratica del Congo
CF Republica Centrafricana
CG Congo
CH Svizzera
CI Costa d'Avorio
CK Isole Cook
CL Cile
CM Camerun
CN Cina
CO Colombia
COM Organismi a scopo commerciale
CR Costa Rica
CU Cuba
CV Capo Verde
CX Isola Christmas
CY Cipro
CZ Republica Ceca
DE Germania
DJ Gibuti
DK Danimarca
DM Dominica
DO Republica Dominicana
DZ Algeria
EC Equatore
EDU Organismo con un rapporto con l'educazione
EE Estonia
EG Egitto
EH Sahara Occidentale
ER Eritrea
ES Spagna
ET Etiopia
EU Europa
FI Finlandia
FJ Fiji
FK Isole Falkland (Malvine)
FM Micronesia
FO Isole Faroer
FR Francia
FX France (Territorio Europeo)
GA Gabon
GB Gran Bretagna
GD Grenada
GE Georgia
GF Guyana Francese
GG Guernesey
GH Ghana
GI Gibilterra
GL Groenlandia
GM Gambia
GN Guinea
GOV Organismo governativo
GP Guadalupe
GQ Guinea Equatoriale
GR Grecia
GS Georgia del Sud
GT Guatemala
GU Guam (USA)
GW Guinea-Bissau
GY Guyana
HK Hong Kong
HM Isole Heard and McDonald
HN Honduras
HR Croazia
HT Haïti
HU Ungheria
ID Indonesia
IE Irlanda
IL Israele
IM Isola de Man
IN India
IO Territori Britannici dell'oceano Indiano
IQ Irak
IR Iran
IS Islanda
IT Italia
JM Giamaica
JO Giordania
JP Giappone
KE Kenia
KG Kirghizistan
KH Cambogia
KI Kiribati
KM Comore
KN Saint Kitts and Nevis
KP Corea del Nord
KR Corea del Sud
KW Kuwait
KY Isole Cayman
KZ Kazakhistan
LA Laos
LB Libano
LC Santa Lucia
LI Liechtenstein
LK Sri Lanka
LR Liberia
LS Lesotho
LT Lituania
LU Lussemburgo
LV Lettonia
LY Libia
MA Marocco
MC Monaco
MD Moldavia
MG Madagascar
MH Isole Marshall
MK Macedonia
ML Mali
MIL Organismo militare
MM Myanmar
MN Mongolia
MO Macao
MP Isole Marianne del Nord
MQ Martinica
MR Mauritania
MS Montserrat
MU Isole Mauritius
MV Maldive
MW Malawi
MX Messico
MY Malesia
MZ Mozambico
NA Namibia
NC Nuova Caledonia
NE Niger
NET Organismo con un rapporto con Internet
NF Isole Norfolk
NG Nigeria
NI Nicaragua
NL Paesi Bassi
NO Norvegia
NP Népal
NR Nauru
NT Zona Neutra
NU Niue
NZ Nuova Zelanda
OM Oman
ORG Organismo non referenziato
PA Panama
PE Perù
PF Polinesia Francese
PG Papuasia Nuova Guinea
PH Filippine
PK Pakistan
PL Polonia
PM Saint-Pierre e Miquelon
PN Pitcairn
PR Porto Rico (USA)
PS Territori Palestinesi
PT Portogallo
PY Paraguay
PW Palau
QA Qatar
RE Réunion
RO Romania
RU Federazione Russa
RW Rwanda
SA Arabia Saudita
SB Isole Salomone
SC Seychelles
SD Sudan
SE Svezia
SG Singapore
SH Sant'Elena
SI Slovenia
SJ Isole Svalbard e Jan Mayen
SK Repubblica Slovacca
SL Sierra Leone
SM San Marino
SN Senegal
SO Somalia
SR Suriname
ST Sao Tomé e Principe
SU Unione Sovietica
SV Salvador
SY Siria
SZ Swaziland
TC Isole Turks e Caicos
TD Ciad
TF Territori Australi Francesi
TG Togo
TH Tailandia
TJ Tadjikistan
TK Tokelau
TM Turkmenistan
TN Tunisia
TO Tonga
TP Timor Est
TR Turchia
TT Trinidad e Tobago
TV Tuvalu
TW Taiwan
TZ Tanzania
UA Ucraina
UG Uganda
UK Regno Unito
UM US Minor Outlying Islands
US Stati Uniti
UY Uruguay
UZ Uzbekistan
VA Città del Vaticano
VC Saint-Vincent e Grenadines
VE Venezuela
VG Isole Vergini Britanniche
VI Isole Vergini Americane
VN Vietnam
VU Vanuatu
WF Wallis e Futuna
WS Samoa Occidentali
YE Yemen
YT Mayotte
YU Iugoslavia
ZA Sud Africa
ZM Zambia
ZR Zaire
ZW Zimbabwe

Vedere anche

I nomi di dominio.

Foto: © Pixabay.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Il documento intitolato « DNS (Sistema dei nomi di dominio) » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.
Unisciti ALLA COMMUNITY