Internet: architettura e protocolli/Domain Name System

Indice del libro

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 distribuitoModifica

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.

QueryModifica

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'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 pacchettiModifica

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 dominiModifica

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.