Prof. Roberto De Prisco Domain Name System (DNS) Riferimento: Comer, Cap. 24 Università degli studi di Salerno Laurea e Diploma in Informatica Indirizzi IP e nomi 2 Indirizzo IP identifica un host su Internet È una sequenza di 32 bit 11000000.00101001.11011010.00000001 192.41.218.1 Facile da manipolare per un computer Difficile da ricordare per una persona Nomi mnemonici Es. Server web dell Università di Salerno Facili da ricordare In relazione 1-a-1 con gli indirizzi IP 1
Nomi 3 Occorre un nome per ogni indirizzo IP Compromesso fra Facilità di utilizzo da parte degli utenti Facilità di gestione dello spazio dei nomi Spazio dei nomi È l insieme di tutti i nomi possibili Es. tutte le possibili stringhe alfabetiche Due possibilità Flat (piatto), cioè senza una struttura Gerarchico, cioè strutturato in qualche modo Spazio dei nomi flat 4 Non esiste una struttura Quindi l insieme dei nomi è semplicemente una lista Per ogni occorre memorizzare l indirizzo IP corrispondente Una funzione che associa ogni nome univocamente ad un indirizzo IP serverweb macchina2 Server che sta a New York router 192.41.218.137 192.41.218.209 18.12.222.37 164.1.215.18 Problemi Gestione centralizzata La tabella di conversione deve essere nota a tutti i computer della rete Difficile da gestire e da consultare quando la rete è grande 2
Spazio dei nomi flat 5 Inizialmente funzionava proprio così Autorità centrale NIC Network Information Center Gestiva la tabella Accoglieva richieste di modifiche Distribuiva periodicamente un file con la tabella hosts.txt Ogni host doveva avere una copia di tale file Spazio dei nomi gerarchico 6 La soluzione flat non è scalabile Al crescere di Internet non ha funzionato più Decentralizzazione della gestione della tabella Delega di autorità per sottospazi del dominio dei nomi Distribuzione della responsabilità di traduzione fra nome e inidirizzo IP e viceversa Analogia: azienda Direttore generale Vari reparti, ognuno con un capo reparto Il direttore generale ha piena responsabilità, garantisce ad ogni reparto autonomia Ogni capo reparto ha responsibilità del suo reparto e può prendere decisioni 3
Nomi gerarchici (DNS) 7 udsab.dia.unisa.it. I livelli gerarchici sono contrassegnati con un. L ultimo punto di solito viene omesso Non c è differenza fra maiuscole e minuscole La gerarchia va letta da destra verso sinistra Il. rappresenta il livello più alto, dal quale si parte Esiste una autorità centrale responsabile it è il primo livello nel nome Rappresenta tutti i domini in Italia L autorità centrale delega dei responsabili per i nomi sotto il dominio it unisa è il secondo livello nel nome Rappresenta i nomi per l università di Salerno dia è il terzo livello Rappresenta i nomi per il dipartimento di Informatica ed Applicazioni udsab è il nome di una macchina Tipi di nomi 8 Il DNS è abbastanza generale Più gerarchie di nomi possono essere incorporate nello stesso sistema È più preciso dire che il DNS mette in corrisponenza nomi e valori Nella maggior parte dei casi questi valori sono indirizzi IP Quindi occorre specificare a cosa si riferisce il nome che stiamo usando Host Casella postale Un name server (vedremo fra poco cosa è) 4
Name server 9 È un server capace di tradurre un nome DNS in un indirizzo IP robdep@dia.unisa.it Programma di posta Connessione TCP con 192.41.218.1 dia.unisa.it 192.41.218.1 NAME SERVER Alberi, gerarchia e zone 10 com edu org mit it fr uk unisa virgilio dia dmi www 5
Zone e autorità responsabili 11 Autorità centrale responsabile per i nomi top-level (NIC) com edu org mit it Autorità italiana per i nomi sotto fr il dominio uk.it Autorità locale responsabile per i nomi sotto il dominio unisa.it unisa virgilio Autorità locale per il dominio dia.unisa.it dia dmi www Name server 12 Ogni autorità (zona) ha dei name server Hanno informazioni relative alla propria zona Il sistema DNS memorizza informazioni <Nome,Valore,Tipo,Classe,TTL> Nome è il nome DNS Valore è la sua traduzione data dal DNS Tipo specifica come interpretare il valore A NS MX il valore dà un indirizzo (Address) il valore dà il nome DNS di un name server il valore dà il nome DNS di un mail server CNAME il valore dà il nome DNS canonico (usato per gli alias) Class specifica la classe Al momento Class=IN, Internet TTL, è un tempo di scadenza dell informazione 6
Risoluzione di un nome 13 Occorre contattare i name server opportuni In assenza di altre informazioni Si parte dalla radice Si procede verso i name server che conoscono l indirizzo IP Ogni name server contattato può dare informazioni per la propria zona Root name server 14 Ci sono 13 root name server Sanno tutto o meglio sanno chi sa robdep@zaffiro:~> dig ns. [.];; ANSWER SECTION:. 4d18h27m25s IN NS I.ROOT-SERVERS.NET.. 4d18h27m25s IN NS E.ROOT-SERVERS.NET.. 4d18h27m25s IN NS D.ROOT-SERVERS.NET.. 4d18h27m25s IN NS A.ROOT-SERVERS.NET.. 4d18h27m25s IN NS H.ROOT-SERVERS.NET.. 4d18h27m25s IN NS C.ROOT-SERVERS.NET.. 4d18h27m25s IN NS G.ROOT-SERVERS.NET.. 4d18h27m25s IN NS F.ROOT-SERVERS.NET.. 4d18h27m25s IN NS B.ROOT-SERVERS.NET.. 4d18h27m25s IN NS J.ROOT-SERVERS.NET.. 4d18h27m25s IN NS K.ROOT-SERVERS.NET.. 4d18h27m25s IN NS L.ROOT-SERVERS.NET.. 4d18h27m25s IN NS M.ROOT-SERVERS.NET. 7
Name server per.it 15 I name server per l Italia sanno tutto per i domini italiani robdep@zaffiro:~> dig ns it ; <<>> DiG 8.3 <<>> ns it [..] ;; ANSWER SECTION: it. 1D IN NS nameserver.cnr.it. it. 1D IN NS server2.infn.it. it. 1D IN NS ns2.psi.net. it. 1D IN NS dns2.iunet.it. it. 1D IN NS dns2.it.net. it. 1D IN NS ns.ripe.net. it. 1D IN NS dns.nic.it. it. 1D IN NS ns.eu.net. Name server per unisa.it 16 I name server di unisa.it sanno tutto dei domini nell Università di Salerno robdep@zaffiro:~> dig ns unisa.it ; <<>> DiG 8.3 <<>> ns it [..] ;; QUERY SECTION: ;; unisa.it, type = NS, class = IN ;; ANSWER SECTION: unisa.it. 2D IN NS capri.dia.unisa.it. unisa.it. 2D IN NS server2.garr.net. unisa.it. 2D IN NS ns.unisa.it. ;; ADDITIONAL SECTION: capri.dia.unisa.it. 2D IN A 192.41.218.10 server2.garr.net. 1h30m26s IN A 131.154.1.11 ns.unisa.it. 2D IN A 193.205.160.3 8
Name server per dia.unisa.it Infine ci sono i name server di dia.unisa.it 3 sono gli stessi di unisa.it robdep@zaffiro:~> dig ns dia.unisa.it ; <<>> DiG 8.3 <<>> ns it [..] ;; QUERY SECTION: ;; dia.unisa.it, type = NS, class = IN ;; ANSWER SECTION: dia.unisa.it. 2D IN NS ns.unisa.it. dia.unisa.it. 2D IN NS capri.dia.unisa.it. dia.unisa.it. 2D IN NS odissea.dia.unisa.it. dia.unisa.it. 2D IN NS server2.garr.net. ;; ADDITIONAL SECTION: odissea.dia.unisa.it. 20M IN A 193.205.162.6 server2.garr.net. 1h28m6s IN A 131.154.1.11 ns.unisa.it. 2D IN A 193.205.160.3 capri.dia.unisa.it. 2D IN A 192.41.218.10 17 Esempio di risoluzione 18 Name server per.. Name server locale Name server per it fr it Name server per unisa.it unisa libero Name server per dia.unisa.it dia dmi Resolver www.dia.unisa.it 9
Da dove si comincia? 19 Il resolver conosce l IP di un name server Linux: /etc/resolv.conf robdep@zaffiro:~> cat /etc/resolv.conf nameserver 192.41.218.10 nameserver 193.205.160.3 Il local name server conosce l IP dei root Linux: /domain/named.root fornito da Internic (ftp.rs.internic.net). 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ;. 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 Caching 20 Quando un name server risolve un nome memorizza la risoluzione Una query successiva per lo stesso nome potrà essere risolta immediatamente Nell esempio precedente il name server locale ha imparato I name server per.it I name server per unisa.it I name server per dia.unisa.it L indirizzo IP di www.dia.unisa.it Una query per www.dmi.unisa.it potrà partire dai name server di unisa.it anziché dai root name server 10
Richieste ricorsive ed iterative 21 Il name server locale è ricorsivo In pratica deve preoccuparsi di fare tutte le richieste necessarie per arrivare ad una risposta da dare al client Gli altri name server sono iterativi In pratica possono rispondere indirizzando il richiedente ad un altro name server Ricorsivo: garantisce la risposta o un errore Iterativo: può rispondere con un reindirizzamento Un name server è ricorsivo o iterativo in base alla richiesta Cioè la richiesta può specificare il tipo di comportamento che il name server deve avere Il resolver solitamente è un applicazione e richiede risoluzioni ricorsive Risoluzione inversa 22 Sappiamo come tradurre un nome in un indirizzo IP www.dia.unisa.it 192.41.218.10 Come si traduce un indirizzo IP nel corrispondente nome? La soluzione adottata dal DNS è quella di utilizzare lo stesso sistema anche per la risoluzione inversa! Un dominio speciale contiene come sottodomini tutti i possibili indirizzi IP L indirizzo IP 192.41.218.10 corrisponde al nome 10.218.41.192.in-addr.arpa Problema: mantenere coerenti la risoluzione e la risoluzione inversa 11
Risoluzione inversa 23 Esempio 24 poseidon:~ >dig 218.41.192.in-addr.arpa ; <<>> DiG 9.2.2 <<>> 218.41.192.in-addr.arpa ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36235 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;218.41.192.in-addr.arpa. IN A ;; AUTHORITY SECTION: 218.41.192.in-addr.arpa. 172800 IN SOA ns.unisa.it. cattaneo.dia.unisa.it. 2004122001 86400 3600 2592000 172800 ;; Query time: 1 msec ;; SERVER: 192.41.218.10#53(192.41.218.10) ;; WHEN: Sun Jan 16 22:52:45 2005 ;; MSG SIZE rcvd: 101 12