DNS viene inventato da Jon Postel nel 1982 per poter "chiamare" i computer per nome anziché per numero.
Si pensi ad un elenco telefonico o alla rubrica del telefonino. Non siamo costretti a ricordarci a memoria
i numeri di telefono dei nostri conoscenti perché abbiamo una rubrica che è una mappa 1:1 di
numeri verso nomi.
Allo stesso modo un DNS è in sostanza una mappa tra numeri IP e nomi di computer.
Tuttavia, il DNS è stato pensato in un modo un po' più complesso dell'elenco telefonico. Il DNS è innanzitutto un database distribuito. Ciò significa che è come se esistesse un elenco "telefonico" mondiale che è formato dall'unione di tutti le copie "locali" e in cui ogni copia viene continuamente aggiornata ogni volta che in una determinata regione viene invocato un determinato numero che non esiste in quell'elenco. Quindi non esiste un unico elenco centralizzato ma molti (moltissimi) elenchi locali che si possono alimentare tra di loro.
Ad esempio, supponiamo che l'host www.betaingegneria.it abbia come IP number la quaterna 217.64.198.227.
Esiste un elenco "telefonico" ufficiale detto .it in cui vi sono tutti gli utenti .it tra cui betaingegneria.
Ogni fornitore di accesso ad Internet ne possiede una copia che può essere più o meno aggiornata. Supponiamo che io
insomma ho bisogno di riferirmi ad una macchina, od un gruppo di servizi, che fanno capo ad un determinato dominio e supponiamo che io lo faccia dopo essermi connesso ad Internet tramite un provider come Tiscali o WIND.
Si danno due casi:
Il DNS del dominio .it viene gestito in modo autoritativo da una (appunto) authority detto NIC qui in Italia, che è un'emanazione dell'IIT-CNR (Istituto di Informatica e Telematica del CNR) ed ha sede a Pisa.
Ma il DNS, come detto, è un sistema mondiale per cui esistono molti elenchi "telefonici". E non solo per ogni nazione, perché i domini non soltanto rispecchiano una suddivisione geografica, ma anche per argomento, per settore di attività. Quindi, oltre ai domini geografici:
esistono i domini
Mentre per i domini geografici la gestione dell'elenco "telefonico" è demandata ad appositi organi nazionali (come il CNR in Italia) la gestione dei domini .com, .biz etc. è sotto la giurisdizione diretta dello IANA (Internet Assigned Numbers Authority) e, più recentemente dell'ICANN (Internet Corporation for Assigned Names and Numbers).
I DNS sono database interrogabili da chiunque (chiunque può eseguire una interrogazione, o query, nei database dei vari gestori di dominio).
Ad esempio, per quanto riguarda l'ICANN, esiste un'autorità di registrazione, l'InterNIC (http://www.internic.com) al quale si può sottoporre l'interrogazione per stabilire, ad esempio, se il dominio google.com esiste e se sì, chi ne sono le persone di riferimento.
Per quanto riguarda l'italia ed il TLD .it, si può accedere al sito della Registration Authority Itliana che è il NIC (http://www.nic.it) e interrogare il database.
Lo strumento per interrogare i DNS si chiama WHOIS ed è un programma che in genere viene messo a disposizione come applicazione web: una form HTML permette di scrivere il nome del dominio, e WHOIS ritorna i dati del dominio in questo formato (si è interrogato il WHOIS di InterNIC chiedendogli chi è aol.com):
America Online AOL-DOM 12100 Sunrise Valley Drive Reston, VA 20191 Domain Name: AOL.COM Administrative Contact: O'Donnell, David B DBO3 *******@AOL.COM 703/265-5666 (FAX) 703/265-4003 Technical Contact, Zone Contact: America Online AOL-NOC *****@AOL.NET 703-265-4670 Billing Contact: Barrett, Joe JB4302 *****@AOL.COM 703-453-4160 (FAX) 703-453-4001 Record last updated on 29-Apr-98. Record created on 22-Jun-95. Database last updated on 9-May-98 03:38:53 EDT. Domain servers in listed order: DNS-01.NS.AOL.COM 152.163.200.52 DNS-02.NS.AOL.COM 152.163.200.116
Nella risposta vi sono diversi dati:
I DNS possono essere interrogati anche dal proprio PC (ottenendo meno informazioni) utilizzando una utility normalmente presente nei vari sistemi operativi (intendo UNIX/Linux o MS-Windows): nslookup.
Generalmente se da linea di comando si lancia nslookup esso si connetterà ad un DNS di default, ma potremo interrogare anche dei name server diversi, ad esempio ns.libero.it, lanciando il comando server [name-sever].
Se nel server esiste l'host che stiamo cercando, verrà ritornato l'IP (e se l'IP è afferente ad un dominio su cui il DNS interrogato non ha autorità, verrà specificato che la risposta proviene da un server DNS non di fiducia), altrimenti verrà detto che l'IP non esiste. In tal caso può essere necessario cambiare il nameserver chiamandone un altro, oppure (se si hanno i provilegi di amministrazione) riavviare il DNS locale che si è interrogato, in modo tale che richieda ai DNS autoritativi informazioni sui domini che ha nella sua coda di richieste.