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.26ma con un nome di dominio o degli indirizzi più espliciti (detti indirizzi FQDN) del tipo it.kioskea.net.
Così, è 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.
Alle origini del TCP/IP, dato che le reti erano poco estese o detto in un altro modo il numero di computer connessi ad una stessa rete era basso, gli amministratori di rete crearono dei fili 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 dell'host.
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 messo a punto nel novembre del 1983 da Paul Mockapetris (RFC 882 et RFC 883), poi rivisto nel 1987 negli RFCs 1034 e 1035. Il DNS è stato oggetto di più RFC.
Questo sistema propone :
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.
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 dell'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 dell'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 it.kioskea.net. rappresenta un indirizzo FQDN.
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 :
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).
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 « it.kioskea.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 fornitore di accesso.
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 dikioskea.net).
Il server di nomi primario che ha autorità sul dominio sarà interrogato e girerà la registrazione corrispondente all'host sul dominio (nel nostro casowww).
Un DNS è un database ripartito contente delle registrazioni, detteRR (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, dettaTTL (Time To Live, tradottosperanza 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 |
|---|---|---|---|---|
| it.kioskea.net. | 3600 | A | IN | 163.5.255.85 |
it.kioskea.net. IN MX 10 mail.kioskea.net.
Esistono due categorie diTLD (Top Level Domain, ossiadomini di più alto livello) :
| 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 |