Swappa : Uni / Sistemi - DNS
Creative Commons License

Torna alla pagina di Sistemi per l'elaborazione delle informazioni


:: Sistemi - DNS ::

Un po' di teoria sui DNS

Il DNS è Domain Name System, ed è un sistema per associare a nomi di dominio delle informazioni (non solo l'IP).

Domain Name Space

E' lo spazio dei nomi di dominio. Si tratta di un albero in cui ogni nodo ha associato dei Resource Records, detti anche RR.

Questo albero è diviso in zone, ognuna capeggiata da un DNS server detto authoritative DNS server, il quale ha la responsabilità per il suo dominio.

Il nome di dominio è composto da etichette unite da punti. Un esempio è www.babaoglu.com. La parte più a destra del nome di dominio è detta top level, mentre tutto il resto è detto sub domain. Ogni etichetta può avere al massimo 63 caratteri. Ci possono essere al massimo 127 livelli. In totale un nome di dominio può essere lungo 255 caratteri.

Il nome di host è un nome di dominio al quale è stato associato 1 o più IP.

I server autoritativi hanno le info per tutti i server che stanno nel loro dominio. In cima alla gerarchia invece ci sono i root nameservers, che sono quelli che gestiscono lo smistamento del top-level, ovvero i .com, .it e così via.

Il resolver è colui (programma o chi per esso) che cerca info associate ad un nodo. Sa come comunicare ad un DNS server facendogli delle query:

La risoluzione è diretta quando a partire da un nome voglio l'IP, inversa se faccio il contrario. Il meccanismo di risoluzione è semplice, in teoria:

Ci possono essere problemi di ricorsività in questa ricerca, perché un DNS mi dà il NOME dell'altro DNS presso cui cercare. Ma quindi devo trovare l'IP anche di questo secondo DNS, e se sono messi male, un DNS chiede all'altro, che chiede al primo etc. e non ne esco più. Pertanto a volte viene passato direttamente l'IP di un DNS.

In pratica

In pratica sta storia di chiedere tutto al root e di farsi reindirizzare da questi non funziona, perché i root nameserver sarebbero sommersi da mgliaia di miliardi di richieste al giorno. Quindi ogni DNS mantiene una cache delle query, ovvero delle richieste già fatte, e ogni voce della query ha un suo TTL, cioè Time To Live. Se una seconda richiesta alla stessa voce viene fatta entro il TTL, allora il DNS risponde con la voce che ha in cache, senza andare a scomodare qualcun altro. Questo è il motivo per cui spesso un aggiornamento ad un nome di dominio non viene rispecchiato subito da tutti i DNS server: infatti questi aspettano che le cache finiscano il TTL prima di aggiornarle. Il TTL va da 0 a 68 anni (!!).

Inoltre, un singolo nome di dominio può essere associato allo stesso IP. Ciò accade quando:

Il DNS serve anche ai programmi di posta per trovare i server di posta. Questo è il famigerato record MX, che sta per Mail eXchange, e se lo interpello riguardo ad un nome come babaoglu.com mi dice dove è il server di posta di quel dominio.

Dettagli del protocollo

La porta usata è la 53. Si usa UDP, in genere fino a risposte inferiori ai 512 byte. Per dimensioni superiori si usa TCP. Cmq diverse implementazioni usano TCP per tutto.

Ecco qui i record principali:

Ogni record è salvato secondo la struttura specificata dalla RFC 1035: NAME - TYPE - CLASS - TTL - RDLENGTH - RDATA

Il set dei caratteri è una versione ridotta della tabella ASCII, quindi non ci sono caratteri strani etc.

Problemi di sicurezza

DNS cache poisoning: sputtano la cache del DNS, dandogli delle info false che magari reindirizzano tutte le richieste a www.paypal.it al mio server, con un TTL di 68 anni, così che non cambieranno mai.

Inoltre ci sono problemi perché non c'è niente di crittografato, quindi la sicurezza non c'è.


Torna alla pagina di Sistemi per l'elaborazione delle informazioni

(Printable View of http://www.swappa.it/wiki/Uni/SistemiDNS)