Internet: architettura e protocolli/Domain Name System
Il DNS serve per risolvere (convertire) i nomi in indirizzi IP e viceversa:
- database distribuito: contengono tutte le coppie nomi-indirizzi;
- protocollo di livello applicazione: per la gestione delle interrogazioni al database.
- Funzionalità
- risoluzione di nomi in indirizzi;
- host aliasing: oltre al nome canonico, a un indirizzo IP possono venire associati altri nomi chiamati alias (soprannomi) (ad esempio mail.polito.it è associato a polito.it);
- mail server aliasing: riguarda gli alias di posta elettronica;
- load distribution: allo stesso nome possono essere associati più indirizzi IP per il load balancing tra vari server.
Gerarchia del database distribuito
[modifica | modifica sorgente]Non esiste un unico server centralizzato, ma vari server organizzati in modo gerarchico:
- Root server
Vari root server gemelli sono distribuiti geograficamente nel mondo. La ricerca di un sito parte sempre dal root server e percorre un ramo dell'albero.
- Top-level domain (TLD) server
I TLD server sono responsabili per i domini .com, .org, .net, ecc. Per registrare un sito in un dominio .com, per esempio, bisogna contattare Network Solutions.
- Authoritative DNS server
Gli authoritative DNS server sono i server DNS veri e propri che individuano gli indirizzi IP dei vari siti.
- Local DNS name server
Un gateway domestico ha un nome associato al loro IP, a cui si può accedere dai PC collegati. Hanno funzioni di caching: memorizzano temporaneamente la risposta del server DNS, per migliorare le prestazioni se quel sito viene contattato dopo poco tempo.
Query
[modifica | modifica sorgente]- Tipi di query
- query iterativa: un server risponde dicendo qual è il prossimo server da contattare;
- query ricorsiva: il server si occupa di forwardare la richiesta agli altri server.
I record del database (RR) hanno il seguente formato:
(name, value, type, ttl)
- Tipo A
name
= nome dell'hostvalue
= indirizzo IP (tipo AAAA se IPv6)
- Tipo CNAME
name
= aliasvalue
= nome canonico
- Tipo NS
È la entry di livello superiore che gestisce il puntatore al server autoritativo.
name
= dominiovalue
= nome del server autoritativo per il dominio
- Tipo MX
value
= nome del mailserver associato a name
- Tipo PTR
Gestisce i mapping da un indirizzo IP al suo nome, ad esempio per il traceroute.
Il database deve essere dinamico perché i mapping possono essere cambiati → le entry della cache hanno TTL.
Formato dei pacchetti
[modifica | modifica sorgente]Nell'intestazione:
- identification: identifica se si tratta di una domanda o di una risposta;
- flag:
- ricorsione desiderata/disponibile: servono per sapere se si può fare la query ricorsiva;
- reply is authoritative: la query non è stata risolta da alcuna cache ma è arrivata fino al server autoritativo;
- altri campi: questions, answers, authority, additional info.
Registrazione dei domini
[modifica | modifica sorgente]I DNS registrar sono gli enti a cui ci si deve rivolgere per registrare nuovi domini. Un DNS registrar fornisce anche:
- due server autoritativi (primario e secondario), perché se il primario smette di funzionare subentra il secondario;
- due entry: una di tipo NS per arrivare al server autoritativo, l'altra di tipo A per l'indirizzo IP.