# Internet: architettura e protocolli/Domain Name System

Internet: architettura e protocolli
Copertina Tutti i moduli · Sviluppo
    CopertinaInternet: architettura e protocolli/Copertina
* Protocollo IPv4Internet: architettura e protocolli/Protocollo IPv4
* Protocollo ARPInternet: architettura e protocolli/Protocollo ARP
* Protocollo ICMPInternet: architettura e protocolli/Protocollo ICMP
* Domain Name SystemInternet: architettura e protocolli/Domain Name System
* Protocollo DHCPInternet: architettura e protocolli/Protocollo DHCP
* Livello Trasporto: Protocolli TCP-UDPInternet: architettura e protocolli/Livello Trasporto: Protocolli TCP-UDP
* Application LayerInternet: architettura e protocolli/Application Layer
* NATInternet: architettura e protocolli/NAT
Modifica il sommario
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

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
### 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.
* Query iterativa
* Query ricorsiva
I record del database (RR) hanno il seguente formato:
    (name, value, type, ttl)

### Tipo A

* name = nome dell'host
* value = indirizzo IP (tipo AAAA se IPv6)

### Tipo CNAME

* name = alias
* value = nome canonico

### Tipo NS

È la entry di livello superiore che gestisce il puntatore al server autoritativo.
* name = dominio
* value = 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

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

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.