Dns
Il DNS è un sistema utilizzato per la risoluzione di nomi dei nodi della rete (in inglese: host) in indirizzi IP. Il servizio è realizzato tramite un database distribuito, costituito dai server DNS. Il DNS ha una struttura gerarchica ad albero rovesciato ed è diviso in domini (com, org, it, ecc.). I TLD possono essere nomi riservati o nomi generici (.com, .edu, .net, .gov, .info, .biz, .name), possono essere per nazione ccTLD (.it, .de, .uk) ed infine ci sono nuovi TLD. Nota sui SLD (Second Level Domain): esistono dei limiti e alcuni sono riservati (ad esempio: .bs.it, .it.it).
Dns server
Il Dns Server, chiamato anche Name Server, risponde alle query inviate dai client (resolver) utilizzando la porta 53, usa TCP per le operazioni di “zone transfer” mentre usa UDP per le query. Ad ogni dominio o nodo corrisponde un nameserver, che conserva un database con le informazioni di alcuni domini di cui è responsabile e si rivolge ai nodi successivi quando deve trovare informazioni che appartengono ad altri domini.
Tipi di DNS server
- Caching-only
- Forwarder
- Ricorsivo / non ricorsivo
- Authoritative / nonauthoritative
- Primary / Secondary (Master / Slave)
Authoritative / nonauthoritative
Nell’ambito del DNS si distingue tra server DNS autoritativi e non autoritativi.
Server DNS autoritativi: per una o più zone, ovvero il server su cui sono configurati i dati di una zona, e che è delegato a gestirla tramite record NS inseriti nella zona superiore. Normalmente sono presenti più server autorevoli per una zona. Molte implementazioni permettono di modificare i dati di una zona solo su un server.
Server DNS non autoritativi: se le informazioni DNS di un name server non provengono dal proprio file di zona, ma sono di seconda o terza mano, questo server per le informazioni richieste svolge la funzione di name server non autoritativo. Una situazione simile si verifica quando un name server non può rispondere ad una richiesta basandosi sul suo database e raccoglie quindi le informazioni da un altro name server (ricorsione). I dati DNS vengono immagazzinati temporaneamente nella memoria locale (fenomeno di caching) e forniti se la richiesta viene effettuata nuovamente. Le informazioni DNS dei name server non autoritativi risultano poco affidabili perché le voci del file di zona vero e proprio possono essere nel frattempo modificate.
Caching only name server
Alcuni server si prestano ad effettuare query ricorsive per conto di alcuni client. Una volta che hanno ottenuto una risposta, memorizzano in una cache tutte le informazioni che hanno imparato, fino alla loro scadenza. Alcune implementazioni del servizio DNS permettono di realizzare i cosiddetti servers caching only, ovvero privi di database proprio, ma utili per reindirizzare ad un server autorevole le query di risoluzione. Tale caratteristica è utile soprattutto quando la risoluzione deve essere effettuata attraverso collegamenti lenti.
Considerazioni
Un caching name server è in grado di risolvere i nomi contattando i root server. In una rete di grosse dimensioni è possibile organizzare i server in una struttura gerarchica.
Master / Slave
- Primary – gestisce almeno una zona, dispone dei file di configurazione delle zone gestite. Ad ogni zona deve corrispondere un server primario.
- Secondary – effettua il mirror di una zona, i dati sono copiati e aggiornati automaticamente dal server primario. Ad ogni zona possono corrispondere più server secondari.
- Il tipo di server è riferito ad una particolare zona, un server può essere primary per una zona e secondary per altre.
Servono almeno 2 server per ogni zona. Come allineano i file di zona? Le modifiche vanno fatte solo sul server master e ogni volta che faccio una modifica devo metterci un numero di versione. Dopo poco (tempo di refresh), gli slave parlano con il master, gli richiedono il seriale e se è maggiore gli chiedono la copia aggiornata. Se il refresh fallisce, si riprova con una frequenza maggiore, dettata dal tempo di retry, che dovrà quindi essere minore rispetto al tempo di refresh. Se ancora fallisce per tanto tempo quanto indicato nel tempo di expire, il server slave non si considera più autoritativo per quella zona.
Primary name server
- Gestisce una zona, svolge anche le funzioni del caching name server
Reverse lookup
- Il file (diretto) di una zona permette la conversione di nomi in indirizzi, mentre un file (inverso) che converta gli indirizzi IP in nomi.
Secondary name server
- Duplica una zona – svolge le funzioni di backup name server – aggiorna automaticamente i dati di zona
- Si basa sul numero seriale!
// named.conf (parziale) per un server secondario
zone "prova.it" {
type slave;
file "prova.it";
masters {127.0.0.1;};
};
Name server “particolari”
- Name server “lite” -> Server DNS con un insieme ridotto di funzioni
- Solo resolver: tmdns
- Proxy DNS: DNRD
- DNS “dinamici”: Il termine DNS dinamico, o DDNS, indica un insieme di tecnologie che permettono di inserire automaticamente in una zona DNS gli indirizzi di calcolatori che ottengono dinamicamente un indirizzo IP.