modulo 8: applicativibrunengo/corsi/alet/lezione 16.pdf · modulo 8: applicativi parte 1: dhcp,...

32
1 Gennaio Gennaio – Marzo 2007 Marzo 2007 1 Modulo 8: Applicativi Modulo 8: Applicativi Parte 1: DHCP, Bootp Parte 1: DHCP, Bootp Gennaio Gennaio – Marzo 2007 Marzo 2007 Alessandro Brunengo Alessandro Brunengo – Mirko Corosu Mirko Corosu Reti di Calcolatori Reti di Calcolatori 2 Introduzione al DHCP Introduzione al DHCP Per comunicare via TCP/IP un host deve Per comunicare via TCP/IP un host deve conoscere il proprio indirizzo IP conoscere il proprio indirizzo IP conoscere la propria rete (netmask) conoscere la propria rete (netmask) conoscere l conoscere l’ indirizzo di un router sulla propria rete indirizzo di un router sulla propria rete quest quest’ ultima informazione e ultima informazione e’ necessaria solo per poter parlare con nodi esterni alla necessaria solo per poter parlare con nodi esterni alla propria rete propria rete Oltre a questo, il funzionamento completo dei protocolli TCP/IP Oltre a questo, il funzionamento completo dei protocolli TCP/IP richiedono richiedono altre informazioni altre informazioni l’ indirizzo di uno o piu indirizzo di uno o piu’ DNS server DNS server il proprio domain name il proprio domain name l’ indirizzo di uno o piu indirizzo di uno o piu’ NTP server NTP server l’ indirizzo di uno o piu indirizzo di uno o piu’ WINS server WINS server ... ... Queste informazioni possono essere inserite staticamente sull Queste informazioni possono essere inserite staticamente sull’ host host (tipicamente vengono salvate su file di configurazione e rilette (tipicamente vengono salvate su file di configurazione e rilette al bootstrap) al bootstrap) Spesso e Spesso e’ conveniente poter caricare queste informazioni al volo, durante conveniente poter caricare queste informazioni al volo, durante il il processo di bootstrap processo di bootstrap

Upload: others

Post on 20-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

1

Gennaio Gennaio –– Marzo 2007Marzo 2007 11

Modulo 8: ApplicativiModulo 8: Applicativi

Parte 1: DHCP, BootpParte 1: DHCP, Bootp

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 22

Introduzione al DHCPIntroduzione al DHCPPer comunicare via TCP/IP un host devePer comunicare via TCP/IP un host deve–– conoscere il proprio indirizzo IPconoscere il proprio indirizzo IP–– conoscere la propria rete (netmask)conoscere la propria rete (netmask)–– conoscere lconoscere l’’indirizzo di un router sulla propria reteindirizzo di un router sulla propria rete

questquest’’ultima informazione eultima informazione e’’ necessaria solo per poter parlare con nodi esterni alla necessaria solo per poter parlare con nodi esterni alla propria retepropria rete

Oltre a questo, il funzionamento completo dei protocolli TCP/IP Oltre a questo, il funzionamento completo dei protocolli TCP/IP richiedono richiedono altre informazionialtre informazioni–– ll’’indirizzo di uno o piuindirizzo di uno o piu’’ DNS serverDNS server–– il proprio domain nameil proprio domain name–– ll’’indirizzo di uno o piuindirizzo di uno o piu’’ NTP serverNTP server–– ll’’indirizzo di uno o piuindirizzo di uno o piu’’ WINS serverWINS server–– ......

Queste informazioni possono essere inserite staticamente sullQueste informazioni possono essere inserite staticamente sull’’host host (tipicamente vengono salvate su file di configurazione e rilette(tipicamente vengono salvate su file di configurazione e rilette al bootstrap)al bootstrap)Spesso eSpesso e’’ conveniente poter caricare queste informazioni al volo, duranteconveniente poter caricare queste informazioni al volo, durante il il processo di bootstrapprocesso di bootstrap

Page 2: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

2

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 33

Vantaggi della inizializzazione dinamicaVantaggi della inizializzazione dinamica

LL’’utente non deve conoscere i dettagli degli indirizzi, utente non deve conoscere i dettagli degli indirizzi, netmask, default route e delle configurazioni degli netmask, default route e delle configurazioni degli applicativi (resolver, time server, ...)applicativi (resolver, time server, ...)–– di particolare importanza per la gestione delle connessioni di particolare importanza per la gestione delle connessioni

occasionali, quali quelle dei portatili dei visitatori di un sitoccasionali, quali quelle dei portatili dei visitatori di un sitoo–– assolutamente essenziale per i service providerassolutamente essenziale per i service provider

LL’’amministratore di rete non deve recarsi di persona amministratore di rete non deve recarsi di persona davanti alldavanti all’’host da configurarehost da configurareModifiche ai parametri di configurazione non richiedono Modifiche ai parametri di configurazione non richiedono una riconfigurazione dei parametri statici di tutti gli hostuna riconfigurazione dei parametri statici di tutti gli host–– particolarmente faticoso per operazioni massiccie quali il particolarmente faticoso per operazioni massiccie quali il

completo renumbering di una retecompleto renumbering di una rete–– ci si dimentica sempre di qualcosa che poi non funzionaci si dimentica sempre di qualcosa che poi non funziona

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 44

DHCPDHCPIl Dynamic Host Configuration Protocol eIl Dynamic Host Configuration Protocol e’’ stato sviluppato per poter stato sviluppato per poter realizzare la configurazione dinamica degli hostrealizzare la configurazione dinamica degli hostQuesto protocollo eQuesto protocollo e’’ standardizzato tramite opportuni RFC, e rappresenta standardizzato tramite opportuni RFC, e rappresenta ll’’evoluzione del protocollo BOOTP (Bootstrap Protocol), da cui ereevoluzione del protocollo BOOTP (Bootstrap Protocol), da cui eredita il dita il formato del messaggio e le specifiche della comunicazioneformato del messaggio e le specifiche della comunicazioneIl protocollo funziona tramite una interazione clientIl protocollo funziona tramite una interazione client--serverserver–– il client eil client e’’ il nodo che esegue il bootstrap, e che deve interrogare un servil nodo che esegue il bootstrap, e che deve interrogare un server per er per

avere informazioniavere informazioni–– il server deve essere opportunamente configurato per rispondere il server deve essere opportunamente configurato per rispondere alle richieste, alle richieste,

fornendo i parametri necessarifornendo i parametri necessariDHCP eDHCP e’’ sostanzialmente un applicativo della suite TCP/IP che utilizza sostanzialmente un applicativo della suite TCP/IP che utilizza UDP UDP (e quindi IP a livello di rete) per trasmettere le informazioni(e quindi IP a livello di rete) per trasmettere le informazioni–– benchebenche’’ ll’’host non conosca ancora il proprio indirizzo IP e la propria rethost non conosca ancora il proprio indirizzo IP e la propria rete di e di

appartenenza, IP puoappartenenza, IP puo’’ essere utilizzato per trasmettere pacchetti allessere utilizzato per trasmettere pacchetti all’’indirizzo indirizzo broadcast locale (255.255.255.255), cosa che viene realizzata trbroadcast locale (255.255.255.255), cosa che viene realizzata trasmettendo un asmettendo un frame di livello 2 broadcastframe di livello 2 broadcast

–– il server ascolta sulla porta 67 (sia TCP che UDP), il client util server ascolta sulla porta 67 (sia TCP che UDP), il client utilizza la porta 68 ilizza la porta 68 (UDP)(UDP)

Page 3: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

3

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 55

Logica del funzionamentoLogica del funzionamentoIl DHCP gestisce le assegnazioni di indirizzo come una concessioIl DHCP gestisce le assegnazioni di indirizzo come una concessione in affittone in affittoQuando un client richiede un indirizzo, e questo viene concesso,Quando un client richiede un indirizzo, e questo viene concesso, ll’’indirizzo indirizzo assegnato viene considerato dal server non piuassegnato viene considerato dal server non piu’’ utilizzabile per altri client utilizzabile per altri client per un certo periodo di tempo (lease time)per un certo periodo di tempo (lease time)Allo scadere del periodo di affitto, il client deve rinnovare laAllo scadere del periodo di affitto, il client deve rinnovare la richiesta o richiesta o smettere di utilizzare lsmettere di utilizzare l’’indirizzo assegnatoindirizzo assegnato–– se rinnova la richiesta, viene concesso di utlizzare lo stesso ise rinnova la richiesta, viene concesso di utlizzare lo stesso indirizzo per un ndirizzo per un

nuovo periodo di lease timenuovo periodo di lease timeQuando il lease time scade ed il client non rinnova la richiestaQuando il lease time scade ed il client non rinnova la richiesta il server puoil server puo’’utilizzare lo stesso indirizzo per un altro clientutilizzare lo stesso indirizzo per un altro client–– non enon e’’ garantito (se non specificato in configurazione) che lo stesso garantito (se non specificato in configurazione) che lo stesso client riceva client riceva

lo stesso indirizzo in due periodi diversi e non consecutivilo stesso indirizzo in due periodi diversi e non consecutivi–– solo il rinnovo dellsolo il rinnovo dell’’affitto garantisce di mantenere lo stesso indirizzoaffitto garantisce di mantenere lo stesso indirizzo

La durata del lease time eLa durata del lease time e’’ un parametro che dipende dalla configurazioneun parametro che dipende dalla configurazione–– il server ha un valore di default ed un limite massimoil server ha un valore di default ed un limite massimo–– il client puoil client puo’’ richiedere una certa durata temporale, ma il server risponderarichiedere una certa durata temporale, ma il server rispondera’’

quello che ritiene opportuno (in funzione dei limiti di configurquello che ritiene opportuno (in funzione dei limiti di configurazione)azione)–– il client puoil client puo’’ (dovrebbe) notificare una interruzione anticipata al server qua(dovrebbe) notificare una interruzione anticipata al server quando ndo

non ha piunon ha piu’’ bisogno dellbisogno dell’’indirizzoindirizzo

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 66

Host multihomedHost multihomedUn host con piuUn host con piu’’ di una interfaccia di rete deve gestire le di una interfaccia di rete deve gestire le assegnazioni dinamiche per ciascuna interfaccia assegnazioni dinamiche per ciascuna interfaccia separatamenteseparatamenteOgni interfaccia, allo startup, faraOgni interfaccia, allo startup, fara’’ la sua richiesta la sua richiesta inviando il broadcast sulla rete fisica connessa a quella inviando il broadcast sulla rete fisica connessa a quella interfaccia, e le informazioni che riceve saranno interfaccia, e le informazioni che riceve saranno specifiche di quella interfacciaspecifiche di quella interfaccia–– questo richiede che ci sia un DHCP server su ciascuna delle retiquesto richiede che ci sia un DHCP server su ciascuna delle reti

connesse al clientconnesse al client–– possono verificarsi problemi legati ad informazioni che possono verificarsi problemi legati ad informazioni che

riguardano tutte le interfacce di rete, quali configurazioni di riguardano tutte le interfacce di rete, quali configurazioni di servizi e default routeservizi e default route

per gestire queste situazioni si deve fare una attenta pianificaper gestire queste situazioni si deve fare una attenta pianificazione zione delle informazioni fornite dai diversi DHCP serverdelle informazioni fornite dai diversi DHCP server

Page 4: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

4

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 77

Meccanismo di funzionamentoMeccanismo di funzionamentoIl client invia un messaggio broadcast di richiesta DHCPIl client invia un messaggio broadcast di richiesta DHCP–– non conoscendo lnon conoscendo l’’indirizzo del DHCP server non puoindirizzo del DHCP server non puo’’ indirizzare il indirizzare il

messaggio unicastmessaggio unicast–– la necessitala necessita’’ di utilizzare il broadcast impone ldi utilizzare il broadcast impone l’’utilizzo di UDPutilizzo di UDP

Il server per rispondere ha due alternative:Il server per rispondere ha due alternative:–– invia un messaggio broadcast in rispostainvia un messaggio broadcast in risposta–– utilizza le informazioni contenute nel messaggio di richiesta utilizza le informazioni contenute nel messaggio di richiesta

unitamente alle informazioni (che deve conoscere) relative unitamente alle informazioni (che deve conoscere) relative allall’’indirizzo IP che il client prenderaindirizzo IP che il client prendera’’ per aggiungere una entry per aggiungere una entry alla ARP cachealla ARP cache

in questo modo il server dhcp puoin questo modo il server dhcp puo’’ rispondere con un messaggio rispondere con un messaggio unicast, che in base alla entry ARP appena inserita verraunicast, che in base alla entry ARP appena inserita verra’’ recapitato recapitato al destinatario tramite frame di livello 2 correttamente destinaal destinatario tramite frame di livello 2 correttamente destinato to unicastunicast

–– si utilizza il messaggio broadcast su sistemi che non permettonosi utilizza il messaggio broadcast su sistemi che non permettonodi interagire con la ARP cachedi interagire con la ARP cache

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 88

Controllo degli errori e recoveryControllo degli errori e recoveryLL’’utilizzo di UDP comporta il problema di assicurarsi del utilizzo di UDP comporta il problema di assicurarsi del ricevimento e della correttezza della risposta, di cui si fa ricevimento e della correttezza della risposta, di cui si fa carico il clientcarico il client–– DHCP utilizza UDP con la DHCP utilizza UDP con la checksumchecksum per la verifica dei datiper la verifica dei dati–– viene imposto il bit viene imposto il bit dondon’’t fragmentt fragment per evitare sul client eventuali per evitare sul client eventuali

problemi di RAM nella ricostruzione del segmento UDPproblemi di RAM nella ricostruzione del segmento UDP–– DHCP prevede la possibilitaDHCP prevede la possibilita’’ di trasmettere risposte ripetute: il di trasmettere risposte ripetute: il

client accetta client accetta la prima che arrivala prima che arriva–– il client utilizza tecniche di il client utilizza tecniche di timertimer per per reiterare la richiestareiterare la richiesta se la se la

risposta non arriva oltre un certo temporisposta non arriva oltre un certo tempoil timeout eil timeout e’’ scelto in modo casuale entro qualche secondoscelto in modo casuale entro qualche secondoad ogni reiterazione, il timeout viene raddoppiato, fino a 60 sead ogni reiterazione, il timeout viene raddoppiato, fino a 60 secondicondidopo alcuni tentativi senza risposta il protocollo falliscedopo alcuni tentativi senza risposta il protocollo fallisce

Page 5: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

5

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 99

Messaggi DHCP di inizializzazioneMessaggi DHCP di inizializzazione

Alla inizializzazione il client invia in broadcast un messaggio Alla inizializzazione il client invia in broadcast un messaggio di di DHCPDISCOVERDHCPDISCOVER (richiesta di configurazione)(richiesta di configurazione)Il (o i) server rispondono alla richiesta con un messaggio Il (o i) server rispondono alla richiesta con un messaggio DHCPOFFERDHCPOFFER (offerta), contenente le informazioni di configurazione(offerta), contenente le informazioni di configurazioneIl client sceglie la prima risposta che arriva, e si configura nIl client sceglie la prima risposta che arriva, e si configura nel modo el modo definito, ma deve negoziare i parametri delldefinito, ma deve negoziare i parametri dell’’affitto: invia quindi un affitto: invia quindi un messaggio messaggio DHCPREQUESTDHCPREQUEST al server da cui ha accettato lal server da cui ha accettato l’’offertaofferta–– questo serve a questo serve a notificare al servernotificare al server che ha offerto lche ha offerto l’’indirizzo che il client indirizzo che il client

ha accettato la sua offerta (e non magari altre)ha accettato la sua offerta (e non magari altre)–– i server che i server che non ricevononon ricevono il messaggio DHCPREQUEST considerano il messaggio DHCPREQUEST considerano

ll’’offerta offerta rifiutatarifiutata, e mantengono l, e mantengono l’’indirizzo offerto tra quelli disponibiliindirizzo offerto tra quelli disponibiliIl server che riceve il messaggio di DHCPREQUEST invia una Il server che riceve il messaggio di DHCPREQUEST invia una conferma con un messaggio conferma con un messaggio DHCPACKDHCPACK–– da questo momento lda questo momento l’’indirizzo eindirizzo e’’ assegnato, per il lease time concordatoassegnato, per il lease time concordato

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 1010

Messaggi DHCP di mantenimentoMessaggi DHCP di mantenimento

Allo scadere di un timer della durata di Allo scadere di un timer della durata di metameta’’ del tempo di leasedel tempo di lease, il client , il client deve rinnovare ldeve rinnovare l’’affitto: invia al server un nuovo messaggio di affitto: invia al server un nuovo messaggio di DHCPREQUESTDHCPREQUESTIl server puoIl server puo’’::–– accettareaccettare il rinnovo, con un messaggio DHCPACKil rinnovo, con un messaggio DHCPACK

in questo caso il client in questo caso il client azzera i timerazzera i timer e continua ad usare la nuova configurazione e continua ad usare la nuova configurazione proposta (puoproposta (puo’’ avere parametri diversi)avere parametri diversi)

–– rifiutarerifiutare il rinnovo con un messaggio il rinnovo con un messaggio DHCPNACKDHCPNACKin questo caso il client azzera la propria configurazione e ricoin questo caso il client azzera la propria configurazione e ricomincia da capomincia da capo

Se non arriva risposta, dopo Se non arriva risposta, dopo ll’’87.5% del tempo di lease87.5% del tempo di lease, il client invia un , il client invia un DHCPREQUEST in broadcastDHCPREQUEST in broadcast–– un altro server puoun altro server puo’’ inviare un DHCPACK o un DHCPNACK: il client si comporta inviare un DHCPACK o un DHCPNACK: il client si comporta

come se avesse risposto il server originariocome se avesse risposto il server originarioSe non arriva risposta allo Se non arriva risposta allo scadere del lease timescadere del lease time, il client deve , il client deve abbandonare la configurazione e abbandonare la configurazione e ricominciarericominciare con un DHCPDISCOVERcon un DHCPDISCOVERSe il client non ha piuSe il client non ha piu’’ bisogno dellbisogno dell’’indirizzo (shutdown della interfaccia di indirizzo (shutdown della interfaccia di rete) invia al server un messaggio di rete) invia al server un messaggio di DHCPRELEASEDHCPRELEASE, dopo il quale (senza , dopo il quale (senza attendere riscontri) il client azzera la configurazioneattendere riscontri) il client azzera la configurazione

Page 6: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

6

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 1111

Ulteriori messaggi di controlloUlteriori messaggi di controlloIl client puoIl client puo’’ richiedere richiedere ulteriori informazioniulteriori informazioni al server, al server, tramite ltramite l’’invio di un messaggio invio di un messaggio DHCPINFORMDHCPINFORM–– il server risponderail server rispondera’’ un DHCPACK per fornire i parametri richiestiun DHCPACK per fornire i parametri richiesti

Il client puoIl client puo’’ rispondere rispondere negativamentenegativamente al messaggio al messaggio DHCPOFFER, utilizzando un messaggio DHCPOFFER, utilizzando un messaggio DHCPDECLINEDHCPDECLINE–– ad esempio quando il client ha accettato la configurazione da unad esempio quando il client ha accettato la configurazione da un

altro dhcp serveraltro dhcp server–– oppure quando il client ritiene che le informazioni offerte non oppure quando il client ritiene che le informazioni offerte non

siano soddisfacenti (ad esempio se per errore il server forniscesiano soddisfacenti (ad esempio se per errore il server fornisceun indirizzo IP un indirizzo IP giagia’’ utilizzatoutilizzato, ed il client se ne accorge, ed il client se ne accorge

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 1212

Formato del messaggio DHCPFormato del messaggio DHCP

OPOP: indica il tipo di messaggio: indica il tipo di messaggioHTYPEHTYPE ed ed HLENHLEN definiscono il tipo di data link layer e definiscono il tipo di data link layer e la lunghezza degli indirizzi hardwarela lunghezza degli indirizzi hardwareHOPSHOPS indica quanti hop di livello 3 il messaggio indica quanti hop di livello 3 il messaggio attraversa: eattraversa: e’’ possibile rimpallare la richiesta ad un possibile rimpallare la richiesta ad un server su unserver su un’’altra rete IPaltra rete IPTRANSACTION IDTRANSACTION ID: un intero utilizzato dal client per : un intero utilizzato dal client per associare le risposte alle richieste inviateassociare le risposte alle richieste inviateSECONDSSECONDS: indica il tempo trascorso dalla : indica il tempo trascorso dalla inizializzazione del clientinizializzazione del clientFLAGSFLAGS: il client pone ad 1 il primo bit se desidera una : il client pone ad 1 il primo bit se desidera una risposta inviata in broadcastrisposta inviata in broadcastGli altri campi contengono informazioni che sono Gli altri campi contengono informazioni che sono riempite se note, poste a 0 altrimentiriempite se note, poste a 0 altrimenti

–– YOUR IP ADDRESSYOUR IP ADDRESS viene riempito dal server nella risposta viene riempito dal server nella risposta se CLIENT IP ADDRESS della richiesta ese CLIENT IP ADDRESS della richiesta e’’ 00

–– La netmask viene specificata in un campo delle La netmask viene specificata in un campo delle OPTIONSOPTIONS

Il messaggio DHCP ha lo stesso formato del messaggio BOOTP. Come in ARP, esiste un solo formato per i diversi tipi di messaggio. Il messaggio deve stare tutto dentro un solo datagramma UDP (la cui dimensione dipende dalla MTU della rete sottostante)

Page 7: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

7

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 1313

OpzioniOpzioniNel campo OPTIONS possono essere inserite informazioni di vario Nel campo OPTIONS possono essere inserite informazioni di vario tipo:tipo:–– NTP time server nameNTP time server name–– host name e domain namehost name e domain name–– print serverprint server–– DNS server e search listDNS server e search list–– WINS serverWINS server–– TFTP server nameTFTP server name–– messaggi di temporizzazioni (DURATA DEL LEASE)messaggi di temporizzazioni (DURATA DEL LEASE)–– ……non tutte sono standard, e non tutte verranno utilizzate dal clinon tutte sono standard, e non tutte verranno utilizzate dal clientent

Informazioni di file di bootInformazioni di file di boot–– DHCP copre anche le funzioni di bootp: comunicare al client il nDHCP copre anche le funzioni di bootp: comunicare al client il nome di un ome di un file da file da

caricare come sistema operativocaricare come sistema operativoutilizzato principalmente per calcolatori disklessutilizzato principalmente per calcolatori diskless

–– Il campo Il campo BOOT FILE NAMEBOOT FILE NAME viene riempito con il nome di un file da scaricareviene riempito con il nome di un file da scaricareil file viene scaricato tramite protocollo il file viene scaricato tramite protocollo TFTPTFTP dal server dal server indicato in un campo delle indicato in un campo delle opzioniopzioni

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 1414

Gestione degli indirizziGestione degli indirizziIl DHCP server deve essere configurato per gestire in modo opporIl DHCP server deve essere configurato per gestire in modo opportuno gli tuno gli indirizzi che offre ai clientindirizzi che offre ai clientTipicamente questi indirizzi fanno parte di un pool tra gli indiTipicamente questi indirizzi fanno parte di un pool tra gli indirizzi della rete rizzi della rete di appartenenza del serverdi appartenenza del server–– ma ma non enon e’’ obbligatorioobbligatorio: un server puo: un server puo’’ fornire indirizzi di una fornire indirizzi di una rete remotarete remota

Il dhcp server sceglie tra gli indirizzi del pool un indirizzo dIl dhcp server sceglie tra gli indirizzi del pool un indirizzo disponibileisponibile–– ll’’indirizzo indirizzo non deve essere correntemente utilizzatonon deve essere correntemente utilizzato da un altro clientda un altro client–– ll’’assegnazione rende lassegnazione rende l’’indirizzo indirizzo indisponibileindisponibile fino alla scadenza dellfino alla scadenza dell’’affittoaffitto

EE’’ possibile definire politiche di controllo sulle assegnazionipossibile definire politiche di controllo sulle assegnazioni–– si puosi puo’’ richiedere che il server conceda indirizzi richiedere che il server conceda indirizzi solo a client con MAC address solo a client con MAC address

autorizzatoautorizzato–– si puosi puo’’ richiedere che ad richiedere che ad un dato MAC addressun dato MAC address venga assegnato venga assegnato sempre lo stesso sempre lo stesso

indirizzoindirizzo, che , che non devenon deve essere parte del pool di indirizzi dinamiciessere parte del pool di indirizzi dinamici–– si possono richiedere si possono richiedere entrambe le coseentrambe le cose: questa configurazione di fatto : questa configurazione di fatto

rappresenta una assegnazione rappresenta una assegnazione ““staticastatica”” degli indirizzi IP ai degli indirizzi IP ai soli client registratisoli client registrati, , ma operata in modo da non dover configurare appositamente i cliema operata in modo da non dover configurare appositamente i client nt

Page 8: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

8

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 1515

DHCP relayDHCP relayDHCP utilizza il broadcast, quindi il server deve essere DHCP utilizza il broadcast, quindi il server deve essere sulla stessa LAN del clientsulla stessa LAN del clientLe specifiche prevedono la possibilitaLe specifiche prevedono la possibilita’’ di centralizzare la di centralizzare la gestione del dhcp tra piugestione del dhcp tra piu’’ LANLAN–– su ogni LAN viene configurato un server che si limita a fare il su ogni LAN viene configurato un server che si limita a fare il

forwarding della richiesta DHCP verso un forwarding della richiesta DHCP verso un server opportunoserver opportuno(definito nella configurazione) che puo(definito nella configurazione) che puo’’ essere essere remotoremoto

–– il server cosiil server cosi’’ configurato configurato non dispone di indirizzinon dispone di indirizzi da assegnare, da assegnare, ma si limita a rimpallare la richiesta (ma si limita a rimpallare la richiesta (DHCP relayDHCP relay))

–– il server centrale risponderail server centrale rispondera’’ al messaggio con un messaggio al messaggio con un messaggio DHCP inviato al DHCP inviato al DHCP relayDHCP relay, che a sua volta lo inoltrera, che a sua volta lo inoltrera’’ sulla sulla rete locale secondo le modalitarete locale secondo le modalita’’ richieste (unicast o broadcast)richieste (unicast o broadcast)

–– la comunicazione tra i server puola comunicazione tra i server puo’’ avvenire utilizzando UDP o avvenire utilizzando UDP o TCP, sempre sulla porta 67 (server) e 68 (client)TCP, sempre sulla porta 67 (server) e 68 (client)

Gennaio Gennaio –– Marzo 2007Marzo 2007 1616

Modulo 8: ApplicativiModulo 8: Applicativi

Parte 2: DNSParte 2: DNS

Page 9: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

9

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 1717

Domain Name SystemDomain Name System

Lo scopo principale del Domain Name System eLo scopo principale del Domain Name System e’’quello di poter associare ad un quello di poter associare ad un nomenome un un indirizzo IPindirizzo IP e viceversae viceversa–– semplicitasemplicita’’ di di memorizzazionememorizzazione della destinazione per della destinazione per

gli utenti della retegli utenti della reteLe caratteristiche essenziali sonoLe caratteristiche essenziali sono–– univocitaunivocita’’ del nomedel nome–– possibilitapossibilita’’ di conversione di conversione direttadiretta ed ed inversainversa

Il DNS eIl DNS e’’ un database che associa ad un nome un database che associa ad un nome una proprietauna proprieta’’–– principalmente associa ad un nome un indirizzo IP, principalmente associa ad un nome un indirizzo IP,

ma gestisce anche ma gestisce anche altri tipi di associazionialtri tipi di associazioni

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 1818

Introduzione storicaIntroduzione storicaNegli anni 70 ARPAnet eNegli anni 70 ARPAnet e’’ una rete di piccole dimensioniuna rete di piccole dimensioniLa associazione La associazione nomenome--indirizzoindirizzo viene realizzata tramite viene realizzata tramite un un singolo file di testosingolo file di testo (HOSTS.TXT)(HOSTS.TXT)Il file originale era mantenuto da una unica Il file originale era mantenuto da una unica organizzazione (NIC: Network Information Center)organizzazione (NIC: Network Information Center)–– ogni nuova registrazione veniva ogni nuova registrazione veniva propostaproposta via mail al NICvia mail al NIC–– il NIC inseriva la registrazione (con verifica di il NIC inseriva la registrazione (con verifica di univocitaunivocita’’ del del

nomenome, e non solo), e non solo)–– il file aggiornato veniva reso disponibile il file aggiornato veniva reso disponibile ogni una/due settimaneogni una/due settimane

La disponibilitaLa disponibilita’’ della nuova registrazione richiedeva della nuova registrazione richiedeva quindiquindi–– accettazione della propostaaccettazione della proposta da parte del NICda parte del NIC–– pubblicazione del nuovo filepubblicazione del nuovo file HOSTS.TXT aggiornatoHOSTS.TXT aggiornato–– update del file su update del file su tutti i clienttutti i client della retedella rete

Page 10: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

10

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 1919

Limiti della soluzione a singolo fileLimiti della soluzione a singolo file

LL’’aumento esplosivo di dimensioni di ARPAnet ha generato i aumento esplosivo di dimensioni di ARPAnet ha generato i seguenti problemiseguenti problemi–– eccesso di traffico e di caricoeccesso di traffico e di carico sul server: lsul server: l’’aumento dei client che aumento dei client che

necessitano di scaricare le versioni aggiornate provoca un caricnecessitano di scaricare le versioni aggiornate provoca un carico o eccessivo sul server della master copy del file HOSTS.TXTeccessivo sul server della master copy del file HOSTS.TXT

–– collisione di nomicollisione di nomi: con l: con l’’aumento dei nodi in rete aumenta in modo aumento dei nodi in rete aumenta in modo insostenibile la richiesta di nomi uguali per host differentiinsostenibile la richiesta di nomi uguali per host differenti

–– consistenzaconsistenza: al crescere della rete le modifiche ai nodi diventano troppo : al crescere della rete le modifiche ai nodi diventano troppo frequenti (frequenti (nuovi nodi, indirizzi cambiati, nodi dismessinuovi nodi, indirizzi cambiati, nodi dismessi) ed il file non e) ed il file non e’’mai aggiornato alla reale situazione della retemai aggiornato alla reale situazione della rete

La soluzione a singolo file come master copy La soluzione a singolo file come master copy non scalanon scala con le con le dimensioni della retedimensioni della reteSi pensa ad una soluzione diversa:Si pensa ad una soluzione diversa:–– database distribuitodatabase distribuito, in modo da permettere l, in modo da permettere l’’amministrazione amministrazione

decentratadecentrata per le modifiche localiper le modifiche locali–– sistema di nomi (namespace) sistema di nomi (namespace) gerarchicogerarchico, in modo da prevenire la , in modo da prevenire la

duplicazione di nomi duplicazione di nomi

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 2020

Architettura del DNSArchitettura del DNS

Il sistema eIl sistema e’’ costituito da un database distribuito costituito da un database distribuito in cui la gestione dei nomi di un certo insieme di in cui la gestione dei nomi di un certo insieme di nodi viene demandata allnodi viene demandata all’’amministratore di quei amministratore di quei nodinodiIl sistema di accesso allIl sistema di accesso all’’informazione viene informazione viene realizzato secondo una architettura realizzato secondo una architettura clientclient--serverserver–– il il ““name servername server”” ee’’ un processo che dispone delle un processo che dispone delle

informazioni relative ad una porzione dellinformazioni relative ad una porzione dell’’intero intero database e le rende disponibili ai clientdatabase e le rende disponibili ai client

–– il il ““resolverresolver”” ee’’ il client che interroga il name server il client che interroga il name server attraverso la rete per ottenere le risoluzioni, secondo attraverso la rete per ottenere le risoluzioni, secondo un protocollo codificatoun protocollo codificato

Page 11: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

11

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 2121

Struttura del database DNSStruttura del database DNSLa struttura del database (quindi dei nomi) eLa struttura del database (quindi dei nomi) e’’ gerarchica, gerarchica, ed eed e’’ rappresentabile da un rappresentabile da un albero rovesciatoalbero rovesciato, in cui i , in cui i nomi sono i nomi sono i ““nodinodi”” e le relazioni gerarchiche sono e le relazioni gerarchiche sono rappresentate da linee che connettono due nodirappresentate da linee che connettono due nodi–– in cima cin cima c’’ee’’ il nodo il nodo ““rootroot”” (radice), il cui nome e(radice), il cui nome e’’ la stringa vuota la stringa vuota

((“”“”))–– sotto la root ci sono i nodi che rappresentano i sotto la root ci sono i nodi che rappresentano i nomi di primo nomi di primo

livellolivello (es: edu, com, gov, it, ...)(es: edu, com, gov, it, ...)ciascuno di tali nomi eciascuno di tali nomi e’’ a sua voltaa sua volta radice di un radice di un sottoalberosottoalbero del del namespace, che si chiama dominio (topnamespace, che si chiama dominio (top--level domain)level domain)

–– sotto ciascun nome di primo livello ci sono nomi di secondo sotto ciascun nome di primo livello ci sono nomi di secondo livello, e cosilivello, e cosi’’ viavia

qualunque nome sotto il primo livello equalunque nome sotto il primo livello e’’ anchanch’’esso radice di una esso radice di una porzione dello spazio dei nomiporzione dello spazio dei nomi, che prende il nome di dominio, che prende il nome di dominio

–– si utilizza il termine si utilizza il termine sottodominiosottodominio per indicare una porzione per indicare una porzione (sottoalbero) qualunque di un dominio(sottoalbero) qualunque di un dominio

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 2222

Struttura del database DNS (2)Struttura del database DNS (2)

Ogni dominio deve avere un Ogni dominio deve avere un nome uniconome unicoOgni Ogni sottodominio di uno stesso dominiosottodominio di uno stesso dominio deve deve avere un nome avere un nome unico entro il dominiounico entro il dominio–– ma domini diversi possono avere sottodomini con lo ma domini diversi possono avere sottodomini con lo

stesso nomestesso nome

Page 12: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

12

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 2323

Rappresentazione dei nomi del DNSRappresentazione dei nomi del DNS

I nomi dei domini e sottodomini vengono rappresentati indicando I nomi dei domini e sottodomini vengono rappresentati indicando ll’’elenco elenco dei nomi a dei nomi a partire dal dominio in questionepartire dal dominio in questione, , risalendo lrisalendo l’’albero fino alla albero fino alla radiceradice, e separandoli da , e separandoli da ““..””–– es: stanford.edu., fnal.gov, ge.infn.it., ...es: stanford.edu., fnal.gov, ge.infn.it., ...

il il ““..”” finale separa il nome del dominio di primo livello dal nome delfinale separa il nome del dominio di primo livello dal nome della radice, che ela radice, che e’’ “”“”I nomi degli host sono i I nomi degli host sono i punti terminalipunti terminali di questo albero, e sono di questo albero, e sono rappresentati nello stesso modorappresentati nello stesso modo–– es: mailhub.ge.infn.it., server1.fisica.unige.it.es: mailhub.ge.infn.it., server1.fisica.unige.it.

La parte terminale del nome di un host eLa parte terminale del nome di un host e’’ detta detta ““simple namesimple name””, il resto e, il resto e’’detta detta ““domain namedomain name”” delldell’’hosthost–– es: per les: per l’’host server1.fisica.unige.it. il simple name ehost server1.fisica.unige.it. il simple name e’’ ““server1server1””, il suo domain , il suo domain

name ename e’’ ““fisica.unige.it.fisica.unige.it.””Il nome completo (di un host o di un dominio) eIl nome completo (di un host o di un dominio) e’’ detto FQDN (detto FQDN (Fully Fully Qualified Domain NameQualified Domain Name))Qualunque nome si dice appartenente a tutti i domini che lo compQualunque nome si dice appartenente a tutti i domini che lo comprendonorendono–– server1.fisica.unige.it. appartiene al dominio server1.fisica.unige.it. appartiene al dominio fisica.unige.it.fisica.unige.it. ma anche ai domini ma anche ai domini

unige.it.unige.it. e e it.it.

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 2424

Delega della autoritaDelega della autorita’’ (zone)(zone)Utilizzando questa struttura gerarchica eUtilizzando questa struttura gerarchica e’’ possibile delegare la gestione dei possibile delegare la gestione dei nomi di un sottodominio ad una organizzazione diversanomi di un sottodominio ad una organizzazione diversaLL’’insieme dei nomi gestiti dalla stessa organizzazione si chiama insieme dei nomi gestiti dalla stessa organizzazione si chiama ““zonazona””Una zona puoUna zona puo’’ contenere sottodomini, nomi di host o entrambicontenere sottodomini, nomi di host o entrambi–– la zona la zona ““infn.itinfn.it”” contienecontiene

host: mail.infn.it., radius.infn.it., ...host: mail.infn.it., radius.infn.it., ...sottodomini: ge.infn.it., roma1.infn.it., ...sottodomini: ge.infn.it., roma1.infn.it., ...

–– il sottodominio ge.infn.it. costituisce in realtail sottodominio ge.infn.it. costituisce in realta’’ una diversa zona (ha una delega una diversa zona (ha una delega delldell’’amministrazione), e contiene:amministrazione), e contiene:

host: mail.ge.infn.it., server.ge.infn.it.host: mail.ge.infn.it., server.ge.infn.it.sottodomini: nt.ge.infn.it., ...sottodomini: nt.ge.infn.it., ...

In questo modo si distribuisce il carico di gestione agli amminiIn questo modo si distribuisce il carico di gestione agli amministratori delle stratori delle diverse zonediverse zone–– ll’’univocitaunivocita’’ dei nomi deve essere osservata solo alldei nomi deve essere osservata solo all’’interno dello stesso dominio: interno dello stesso dominio:

diversi domini hanno sempre nomi completi differentidiversi domini hanno sempre nomi completi differenti–– questo permette una completa autonomia al gestore della zona perquesto permette una completa autonomia al gestore della zona per quanto quanto

riguarda lriguarda l’’assegnazione dei nomiassegnazione dei nomi

Page 13: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

13

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 2525

Zone file e name serverZone file e name serverOgni zona gestisce le informazioni relative ad i nomi di un domiOgni zona gestisce le informazioni relative ad i nomi di un dominionio

–– eventualmente anche per i nomi di sottodominieventualmente anche per i nomi di sottodominiIl database di una zona eIl database di una zona e’’ contenuto in un file (lo contenuto in un file (lo zone filezone file))I record di ogni zona vengono serviti da uno o piuI record di ogni zona vengono serviti da uno o piu’’ name server, che dispongono di name server, che dispongono di una copia del file della zona e si dicono una copia del file della zona e si dicono ““autorevoliautorevoli”” per quella zonaper quella zonaGeneralmente una sola copia dei file di zona eGeneralmente una sola copia dei file di zona e’’ ““mastermaster””, ed il server che usa la copia , ed il server che usa la copia master si dice name server primariomaster si dice name server primarioSi possono configurare name server secondari per una zona:Si possono configurare name server secondari per una zona:

–– i secondari ricevono una copia dello zone file dal name server pi secondari ricevono una copia dello zone file dal name server primario allo startup e ad ogni rimario allo startup e ad ogni modifica del file (cioemodifica del file (cioe’’ del database della zona)del database della zona)

questo garantisce la sincronizzazione tra le informazioni possedquesto garantisce la sincronizzazione tra le informazioni possedute dal server primario e dai server ute dal server primario e dai server secondarisecondarill’’operazione di sincronizzazione si chiama zone transferoperazione di sincronizzazione si chiama zone transfer

–– i server secondari sono in grado di rispondere a query relative i server secondari sono in grado di rispondere a query relative ad un nome nello stesso ad un nome nello stesso modo dei server primarimodo dei server primari

Un server puoUn server puo’’ operare come server primario per alcune zone, e come server operare come server primario per alcune zone, e come server secondario per altresecondario per altreEE’’ possibile definire piupossibile definire piu’’ server come server come ““primariprimari””, ma bisogna gestire in qualche modo la , ma bisogna gestire in qualche modo la sincronizzazione dei file delle zonesincronizzazione dei file delle zone

–– Windows Server utilizza questo meccanismo sui diversi controllerWindows Server utilizza questo meccanismo sui diversi controller di dominio, e garantisce la di dominio, e garantisce la sincronia del database tramite Active Directorysincronia del database tramite Active Directory

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 2626

Root name serverRoot name serverI root name server sono i server che gestiscono le informazioni I root name server sono i server che gestiscono le informazioni relative al relative al dominio dominio “”“”–– sono i server autorevoli per la zona detta sono i server autorevoli per la zona detta root zoneroot zone

Questi server gestiscono le informazioni su quali server sono auQuesti server gestiscono le informazioni su quali server sono autorevoli per i torevoli per i domini di primo livellodomini di primo livello–– essenzialmente le uniche informazioni contenute nella root zone essenzialmente le uniche informazioni contenute nella root zone sono quelle sono quelle

relative ai server che gestiscono i domini di primo livellorelative ai server che gestiscono i domini di primo livelloSono critici per il funzionamento globale del DNS, percheSono critici per il funzionamento globale del DNS, perche’’ devono essere devono essere conosciuti da tutti i serverconosciuti da tutti i serverAttualmente ce ne sono undici, sparsi in tutto il mondo per garaAttualmente ce ne sono undici, sparsi in tutto il mondo per garantire ntire accessibilitaaccessibilita’’ alle informazioni sui domini di primo livelloalle informazioni sui domini di primo livelloLL’’elenco dei root name server eelenco dei root name server e’’ gestito e distribuito dalla organizzazione gestito e distribuito dalla organizzazione InterNIC, ed il file relativo (named.root) si puoInterNIC, ed il file relativo (named.root) si puo’’ scaricare dal sito scaricare dal sito ftp://ftp.rs.internic.netftp://ftp.rs.internic.net–– tutte le implementazioni di DNS server vengono distribuite con ututte le implementazioni di DNS server vengono distribuite con una copia di na copia di

questo file, ma equesto file, ma e’’ opportuno verificarne ciclicamente la consistenzaopportuno verificarne ciclicamente la consistenza

Page 14: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

14

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 2727

Osservazioni sui nomiOsservazioni sui nomiUna zona eUna zona e’’ una porzione di name space gestita dallo stesso serveruna porzione di name space gestita dallo stesso serverUna zona puoUna zona puo’’ contenere nomi di un dominio e nomi di suoi contenere nomi di un dominio e nomi di suoi sottodominisottodomini–– ad esempio, la zona ge.infn.it puoad esempio, la zona ge.infn.it puo’’ avere due host di nome avere due host di nome serverserver ed ed

eth1.desketh1.desk–– i nomi completi saranno i nomi completi saranno server.ge.infn.it.server.ge.infn.it. ed ed eth1.desk.ge.infn.it.eth1.desk.ge.infn.it.–– non esiste una zona per il dominio non esiste una zona per il dominio ““desk.ge.infn.it.desk.ge.infn.it.””, che e, che e’’ gestito nella gestito nella

stessa zona a cui appartiene stessa zona a cui appartiene server.ge.infn.it.server.ge.infn.it.LL’’utilizzo di nomi contenenti il utilizzo di nomi contenenti il ““..”” (cioe(cioe’’ ll’’utilizzo di sottodomini) ha lo utilizzo di sottodomini) ha lo scopo di suddividere logicamente i nomi di un dominioscopo di suddividere logicamente i nomi di un dominio–– ad esempio nel dominio ad esempio nel dominio unige.it. unige.it. si puosi puo’’ utilizzare uno schema di nomi:utilizzare uno schema di nomi:

xxx.xxx.unige.it. per i nodi centraliunige.it. per i nodi centralixxx.chimicaxxx.chimica.unige.it. per i nodi della facolta.unige.it. per i nodi della facolta’’ di chimicadi chimicaxxx.disixxx.disi.unige.it. per i nomi della facolta.unige.it. per i nomi della facolta’’ di informaticadi informatica

–– quando la complessitaquando la complessita’’ lo richiedesse, si potralo richiedesse, si potra’’ spezzare la zona in spezzare la zona in diverse zone, ciascuna per i domini diverse zone, ciascuna per i domini unige.it.unige.it., , chimica.unige.it.chimica.unige.it., , disi.unige.it.disi.unige.it. delegandone la amministrazionedelegandone la amministrazione

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 2828

Nomi come indici del databaseNomi come indici del databaseIl DNS eIl DNS e’’ un database che fa corrispondere ad un nome una certa un database che fa corrispondere ad un nome una certa informazioneinformazione–– non necessariamente lnon necessariamente l’’informazione einformazione e’’ ll’’indirizzo IP dellindirizzo IP dell’’host in questionehost in questione

I nomi costituiscono un indice per accedere alla informazione I nomi costituiscono un indice per accedere alla informazione corrispondentecorrispondenteLe associazioni Le associazioni ““nomenome””--””informazioneinformazione”” si chiamano si chiamano ““recordrecord”” del DNSdel DNS–– ogni record ha un campo ogni record ha un campo tipotipo, che definisce il tipo di informazione associata ad , che definisce il tipo di informazione associata ad

un nomeun nomeIn sostanza la differenza tra il nome di un dominio ed il nome dIn sostanza la differenza tra il nome di un dominio ed il nome di un host ei un host e’’data dal fatto che al nome delldata dal fatto che al nome dell’’host corrisponde una informazione specifica host corrisponde una informazione specifica delldell’’host (come ad esempio un indirizzo IP)host (come ad esempio un indirizzo IP)LL’’esistenza dalla caratteristica esistenza dalla caratteristica tipotipo permette di avere nello spazio dei nomi permette di avere nello spazio dei nomi due record che hanno lo stesso nome ma contengono informazioni ddue record che hanno lo stesso nome ma contengono informazioni di tipo i tipo differentedifferente–– es: ge.infn.it esiste come record di tipo (NS) (indica quale ees: ge.infn.it esiste come record di tipo (NS) (indica quale e’’ il server che il server che

gestisce la zona associata al dominio ge.infn.it) ma esiste anchgestisce la zona associata al dominio ge.infn.it) ma esiste anche come record di e come record di tipo MX (indica quale etipo MX (indica quale e’’ il mail server a cui recapitare i messaggi indirizzati a il mail server a cui recapitare i messaggi indirizzati a <user>@ge.infn.it)<user>@ge.infn.it)

Page 15: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

15

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 2929

Tipi di recordTipi di recordI tipi principali sono:I tipi principali sono:–– record di tipo record di tipo AA: al nome (che rappresenta un host) viene associato l: al nome (che rappresenta un host) viene associato l’’indirizo IP indirizo IP

delldell’’hosthost–– record di tipo record di tipo CNAMECNAME: utilizzato per definire un sinonimo di un host name: utilizzato per definire un sinonimo di un host name–– record di tipo record di tipo HINFOHINFO: utilizzato per definire una descrizione testuale dell: utilizzato per definire una descrizione testuale dell’’hosthost–– record di tipo record di tipo MXMX: utilizzato per definire l: utilizzato per definire l’’host che deve essere utilizzato come host che deve essere utilizzato come

mail relay per inviare mail al dominio specificatomail relay per inviare mail al dominio specificato–– record di tipo record di tipo NSNS: utilizzato per specificare l: utilizzato per specificare l’’host che svolge funzioni di DNS host che svolge funzioni di DNS

server per il dominio (zona) specificatoserver per il dominio (zona) specificato–– record di tipo record di tipo PTRPTR: utilizzato per le risoluzioni inverse: utilizzato per le risoluzioni inverse–– record di tipo record di tipo SOASOA: utilizzato per definire le informazioni di authority relative : utilizzato per definire le informazioni di authority relative ad ad

un dominioun dominio–– ……

Quando un client interroga il DNS, chiede le informazioni relatiQuando un client interroga il DNS, chiede le informazioni relative ad un ve ad un nome nome per uno specifico tipo di recordper uno specifico tipo di record, in funzione di quello che vuole , in funzione di quello che vuole sapere (lsapere (l’’indirizzo di un host, il nome del DNS server di un dominio, il nindirizzo di un host, il nome del DNS server di un dominio, il nome ome di un mail server, ...)di un mail server, ...)

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 3030

Record di tipo ARecord di tipo AI record di tipo A (I record di tipo A (addressaddress) sono utilizzati per definire nel ) sono utilizzati per definire nel DNS DNS ll’’indirizzo IPv4 corrispondente al nomeindirizzo IPv4 corrispondente al nome (che deve (che deve essere il nome di un host)essere il nome di un host)Il formato del record eIl formato del record e’’<nome> [<TTL>] <class> A <address><nome> [<TTL>] <class> A <address>dovedove–– <nome>: e<nome>: e’’ il il FQDNFQDN–– <TTL>: <TTL>: Time To LiveTime To Live, e, e’’ un intero che definisce il tempo oltre il un intero che definisce il tempo oltre il

quale la risposta fornita dal server deve essere considerata nonquale la risposta fornita dal server deve essere considerata nonpiupiu’’ valida (opzionale) valida (opzionale)

–– <class>: <class>: deve essere INdeve essere IN (Internet)(Internet)–– <address>: e<address>: e’’ la la rappresentazione decimalerappresentazione decimale delldell’’indirizzo IPv4indirizzo IPv4

Esempio:Esempio:–– server1.fisica.unige.it. 3600 IN A 130.251.168.1server1.fisica.unige.it. 3600 IN A 130.251.168.1

Page 16: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

16

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 3131

Record di tipo A multipliRecord di tipo A multipliEE’’ possibile associare ad un nome possibile associare ad un nome piupiu’’ di un recorddi un record di di tipo Atipo A–– questa tecnica viene utilizzata per suddividere il carico di un questa tecnica viene utilizzata per suddividere il carico di un

servizio, accessibile specificando un unico host name, servizio, accessibile specificando un unico host name, tra piutra piu’’ di di un serverun server (esempio tipico i server web dei grossi siti)(esempio tipico i server web dei grossi siti)

In questo caso il DNS server risponderaIn questo caso il DNS server rispondera’’ alle query con alle query con uno solo degli indirizzi specificatiuno solo degli indirizzi specificatiAd Ad interrogazioni successiveinterrogazioni successive, il server puo, il server puo’’ essere essere configurato per comportarsi in modo diverso:configurato per comportarsi in modo diverso:–– il server puoil server puo’’ rispondere a turno tutti gli indirizzi che sono rispondere a turno tutti gli indirizzi che sono

associati ad un nome (associati ad un nome (round robinround robin))–– il server puoil server puo’’ essere configurato per rispondere uno degli essere configurato per rispondere uno degli

indirizzi indirizzi in modo casualein modo casuale–– si puosi puo’’ configurare il server in modo che risponda con lconfigurare il server in modo che risponda con l’’indirizzo indirizzo

che abbia il che abbia il migliore matchmigliore match con lcon l’’indirizzo di chi fa la richiestaindirizzo di chi fa la richiesta

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 3232

Record di tipo CNAME (Canonical Name)Record di tipo CNAME (Canonical Name)

I record di tipo CNAME (Canonical Name) sono utilizzati per defiI record di tipo CNAME (Canonical Name) sono utilizzati per definire nire ““sinonimisinonimi”” di un nome nel DNSdi un nome nel DNSLa sintassi eLa sintassi e’’::<nome> [<ttl>] <class> CNAME <canonical name><nome> [<ttl>] <class> CNAME <canonical name>dovedove–– <nome>: e<nome>: e’’ il nome DNSil nome DNS–– <ttl>: time to live (opzionale)<ttl>: time to live (opzionale)–– <class>: indica la classe del record (IN)<class>: indica la classe del record (IN)–– <canonical name>: indica il <canonical name>: indica il FQDN a cui il <nome> corrispondeFQDN a cui il <nome> corrisponde

Esempio:Esempio:–– mailbox1.ge.infn.it. IN A 193.206.144.20mailbox1.ge.infn.it. IN A 193.206.144.20–– mbox.ge.infn.it. IN CNAME mailbox1.ge.infn.it.mbox.ge.infn.it. IN CNAME mailbox1.ge.infn.it.

in questo caso una query per il record di tipo A del nome mbox.gin questo caso una query per il record di tipo A del nome mbox.ge.infn.it. e.infn.it. verraverra’’ risolta con lrisolta con l’’indirizzo 193.206.144.20indirizzo 193.206.144.20EE’’ possibile definire record di tipo CNAME che puntano a record dipossibile definire record di tipo CNAME che puntano a record di tipo tipo CNAME ma si deve fare attenzione ai loop:CNAME ma si deve fare attenzione ai loop:–– name1.domain.com IN CNAME name2.domain.comname1.domain.com IN CNAME name2.domain.com–– name2.domain.com IN CNAME name1.domain.com !!!!name2.domain.com IN CNAME name1.domain.com !!!!

Page 17: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

17

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 3333

Record CNAME multipliRecord CNAME multipliIn alcune versioni del DNS server eIn alcune versioni del DNS server e’’ possibile utilizzare possibile utilizzare definizioni definizioni multiple di CNAMEmultiple di CNAME per ottenere una per ottenere una risoluzione verso diversi indirizzi in modalitarisoluzione verso diversi indirizzi in modalita’’ round round robin:robin:

–– name.domain.com IN CNAME srv1.domain.comname.domain.com IN CNAME srv1.domain.com–– name.domain.com IN CNAME srv2.domain.comname.domain.com IN CNAME srv2.domain.com–– name.domain.com IN CNAME srv3.domain.comname.domain.com IN CNAME srv3.domain.com

Questa configurazione non viene accettata da tutte le Questa configurazione non viene accettata da tutte le implementazioni del DNS server, e implementazioni del DNS server, e non osserva le non osserva le definizioni dello standarddefinizioni dello standardPer ottenere lo scopo desiderato si devono definire Per ottenere lo scopo desiderato si devono definire record multipli di tipo Arecord multipli di tipo A

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 3434

Record di tipo HINFORecord di tipo HINFOI record di tipo HINFO (I record di tipo HINFO (host informationhost information) sono utilizzati per definire le ) sono utilizzati per definire le caratteristiche di cpu e sistema operativo di un hostcaratteristiche di cpu e sistema operativo di un hostIl formato del record eIl formato del record e’’<nome> [<TTL>] <class> HINFO <cpu> <os><nome> [<TTL>] <class> HINFO <cpu> <os>dovedove–– <nome>: e<nome>: e’’ il FQDNil FQDN–– <TTL>: time to live (opzionale)<TTL>: time to live (opzionale)–– <class>: deve essere IN<class>: deve essere IN–– <cpu>: stringa descrittiva del <cpu>: stringa descrittiva del tipo di cputipo di cpu–– <os>: stringa descrittiva del <os>: stringa descrittiva del tipo di sistema operativotipo di sistema operativo

Esempio:Esempio:–– teo09.ge.infn.it. IN HINFO teo09.ge.infn.it. IN HINFO ““AMD opteron 285AMD opteron 285”” linuxlinux

nota: se la stringa contiene nota: se la stringa contiene spazispazi, va inserita tra , va inserita tra doppi apicidoppi apiciQuesto tipo di record Questo tipo di record non ha effetti di funzionalitanon ha effetti di funzionalita’’, ed e, ed e’’ attualmente poco attualmente poco utilizzatoutilizzato–– puopuo’’ servire come informazione interna per statistiche, ma eservire come informazione interna per statistiche, ma e’’ difficile tenerla difficile tenerla

aggiornataaggiornata

Page 18: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

18

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 3535

Record di tipo MXRecord di tipo MXI record di tipo MX (I record di tipo MX (mail exchangermail exchanger) sono utilizzati per definire ) sono utilizzati per definire quale sia il server di posta elettronica a cui inoltrare i messaquale sia il server di posta elettronica a cui inoltrare i messaggi per ggi per un certo dominio di postaun certo dominio di postaIl formato del record eIl formato del record e’’<nome> [<TTL>] <class> MX <preference> <server FQDN><nome> [<TTL>] <class> MX <preference> <server FQDN>dovedove–– <nome>: e<nome>: e’’ il FQDNil FQDN–– <TTL>: (opzionale) time to live<TTL>: (opzionale) time to live–– <class>: deve essere IN<class>: deve essere IN–– <preference>: numero intero che indica il <preference>: numero intero che indica il livello di preferenzalivello di preferenza–– <server FQDN>: stringa con il FQDN del mail server<server FQDN>: stringa con il FQDN del mail server

Esempio:Esempio:–– ge.infn.it. IN MX 10 smtp1.ge.infn.it.ge.infn.it. IN MX 10 smtp1.ge.infn.it.–– ge.infn.it. IN MX 20 smtp2.ge.infn.itge.infn.it. IN MX 20 smtp2.ge.infn.it

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 3636

Osservazioni sui record MXOsservazioni sui record MXPer motivi di affidabilitaPer motivi di affidabilita’’ spesso un sito dispone di spesso un sito dispone di piupiu’’ di di un server di posta elettronicaun server di posta elettronicaPerchePerche’’ il sistema funzioni si possono definire il sistema funzioni si possono definire piupiu’’ record record di tipo MXdi tipo MX, che puntano a mail server , che puntano a mail server differentidifferentiIl valore <preference> indica la prioritaIl valore <preference> indica la priorita’’ dei mail serverdei mail server–– un un numero inferiorenumero inferiore indica un mail server a indica un mail server a maggiore prioritamaggiore priorita’’–– si possono definire piusi possono definire piu’’ record con lo stesso livello di prioritarecord con lo stesso livello di priorita’’: in : in

questo caso i mail server saranno utilizzati con questo caso i mail server saranno utilizzati con scelta casualescelta casuale, , allo scopo di ridistribuire il caricoallo scopo di ridistribuire il carico

Si deve fare attenzione ad un requisito Si deve fare attenzione ad un requisito stringentestringente dello dello standard: il FQDN deve essere un standard: il FQDN deve essere un nome associato ad un nome associato ad un record di tipo Arecord di tipo A–– non enon e’’ ammesso associare ad un record MX un CNAME: possono ammesso associare ad un record MX un CNAME: possono

insorgere problemi di funzionalitainsorgere problemi di funzionalita’’ difficili da identificaredifficili da identificare

Page 19: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

19

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 3737

Record di tipo SOARecord di tipo SOAI record di tipo SOA (I record di tipo SOA (Start Of AuthorityStart Of Authority) hanno la funzione di definire quale sia il ) hanno la funzione di definire quale sia il server primarioserver primario per la zona definita da nome, ed altri parametriper la zona definita da nome, ed altri parametriIl formato del record eIl formato del record e’’<nome> [<TTL>] <class> SOA <server FQDN> <admin mail address> (<<nome> [<TTL>] <class> SOA <server FQDN> <admin mail address> (<serial> serial> <refresh> <retry> <expire> <negative TTL>)<refresh> <retry> <expire> <negative TTL>)dovedove

–– <nome>: e<nome>: e’’ il il FQDN del dominioFQDN del dominio che identifica la zonache identifica la zona–– <TTL>: time to live (opzionale)<TTL>: time to live (opzionale)–– <class>: deve essere IN<class>: deve essere IN–– <server FQDN>: stringa con il <server FQDN>: stringa con il FQDN del DNS server primarioFQDN del DNS server primario per la zonaper la zona–– <admin mail address>: indirizzo di mail dell<admin mail address>: indirizzo di mail dell’’amministratore (amministratore (con @ sostituito da .con @ sostituito da .))–– serialserial: : numero serialenumero seriale–– refreshrefresh: numero di secondi oltre il quale la zona : numero di secondi oltre il quale la zona deve essere ricaricata dai secondarideve essere ricaricata dai secondari–– retryretry: tempo oltre il quale il secondario deve : tempo oltre il quale il secondario deve ritentare il refreshritentare il refresh in caso di errorein caso di errore–– expireexpire: intervallo di tempo oltre il quale il secondario : intervallo di tempo oltre il quale il secondario non risponde piunon risponde piu’’ a querya query su quella su quella

zona in caso di refresh fallitozona in caso di refresh fallito–– negative TTLnegative TTL: tempo di durata della cache per : tempo di durata della cache per risposte negativerisposte negative relative a quella zonarelative a quella zona

Esempio:Esempio:–– ge.infn.it. IN SOA dns1.ge.infn.it. ge.infn.it. IN SOA dns1.ge.infn.it. dnsadmin.ge.infn.itdnsadmin.ge.infn.it (1234 3600 1200 604800 86400)(1234 3600 1200 604800 86400)

in questo caso va fatto refresh ogni ora, ritentato ogni 20 minuin questo caso va fatto refresh ogni ora, ritentato ogni 20 minuti, con expiration dopo ti, con expiration dopo una settimana, e TTL negativo pari ad un giornouna settimana, e TTL negativo pari ad un giorno

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 3838

Osservazioni sul record SOAOsservazioni sul record SOAOgni zona deve avere nella sua configurazione uno ed Ogni zona deve avere nella sua configurazione uno ed un soloun solo record di tipo SOArecord di tipo SOAQuesto definisce non solo il DNS server primario per tale Questo definisce non solo il DNS server primario per tale zona, ma anchezona, ma anche–– serial: ogni modifica al database della zona deve essere serial: ogni modifica al database della zona deve essere

accompagnata da un accompagnata da un incremento del serial numberincremento del serial number–– parametri temporali per il comportamento dei DNS server slave:parametri temporali per il comportamento dei DNS server slave:

ogni quanto tempo il secondario deve richiedere un refresh al ogni quanto tempo il secondario deve richiedere un refresh al primarioprimariodopo quanto tempo ritentare il refresh in caso di erroredopo quanto tempo ritentare il refresh in caso di erroredopo quanto tempo il secondario che non riceve un refresh deve dopo quanto tempo il secondario che non riceve un refresh deve considerare invalide le informazioni che possiede sulla zonaconsiderare invalide le informazioni che possiede sulla zonaquale debba essere il valore del TTL per le risposte negativequale debba essere il valore del TTL per le risposte negative

–– nelle vecchie versioni indicava il valore di default del TTLnelle vecchie versioni indicava il valore di default del TTL

Page 20: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

20

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 3939

Record di tipo NSRecord di tipo NSI record di tipo NS (Name Server) hanno la funzione di associareI record di tipo NS (Name Server) hanno la funzione di associare ad un domain name ad un domain name il nome dei server che hanno lil nome dei server che hanno l’’autoritaautorita’’ per quel dominioper quel dominioIl formato del record eIl formato del record e’’<nome> [<TTL>] <class> NS <server FQDN><nome> [<TTL>] <class> NS <server FQDN>

dovedove–– <nome>: e<nome>: e’’ il FQDN del dominioil FQDN del dominio–– <TTL>: time to live (opzionale)<TTL>: time to live (opzionale)–– <class>: deve essere IN<class>: deve essere IN–– <server FQDN>: stringa con il FQDN del DNS server per il dominio<server FQDN>: stringa con il FQDN del DNS server per il dominio

Deve essere definito un record di tipo NS per ogni server autoreDeve essere definito un record di tipo NS per ogni server autorevole per quel dominiovole per quel dominioI record di tipo NS sono nomi che fanno parte del dominio stessoI record di tipo NS sono nomi che fanno parte del dominio stesso

–– ge.infn.it. ege.infn.it. e’’ il nome di un dominioil nome di un dominio–– il record NS che definisce il server del dominio eil record NS che definisce il server del dominio e’’ un nome che fa parte dello stesso dominio un nome che fa parte dello stesso dominio

ge.infn.it.ge.infn.it.–– per realizzare la delega di autoritaper realizzare la delega di autorita’’ i record NS devono essere registrati anche nella zona del i record NS devono essere registrati anche nella zona del

dominio di livello superioredominio di livello superioreEsempio:Esempio:

–– ge.infn.it. IN NS dns1.ge.infn.it.ge.infn.it. IN NS dns1.ge.infn.it.–– ge.infn.it. IN NS dns2.ge.infn.it.ge.infn.it. IN NS dns2.ge.infn.it.

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 4040

Delega della amministrazioneDelega della amministrazioneI record di tipo NS sono necessari per la I record di tipo NS sono necessari per la delegadelega della della amministrazione di sottodominiamministrazione di sottodominiEs: il dominio movie.edu. vuole creare il subdomain Es: il dominio movie.edu. vuole creare il subdomain fx.movie.edu.fx.movie.edu. e e delegare la sua amministrazionedelegare la sua amministrazione–– fx.movie.edu. diventerafx.movie.edu. diventera’’ una una nuova zonanuova zona–– bladerunner.fx.movie.edu. sarabladerunner.fx.movie.edu. sara’’ il server primarioil server primario–– outland.fx.movie.edu. saraoutland.fx.movie.edu. sara’’ il server secondarioil server secondario–– sul database del primario di movie.edu. si sul database del primario di movie.edu. si devono inseriredevono inserire i record per i record per

indicare i name server del dominio fx.movie.edu.indicare i name server del dominio fx.movie.edu.fx.movie.edu. 86400 IN NS bladerunner.fx.movie.edu.fx.movie.edu. 86400 IN NS bladerunner.fx.movie.edu.fx.movie.edu. 86400 IN NS outland.fx.movie.edu.fx.movie.edu. 86400 IN NS outland.fx.movie.edu.

ed i ed i glue recordglue record::bladerunner.fx.movie.edu.bladerunner.fx.movie.edu. 84600 IN A 192.253.254.284600 IN A 192.253.254.2outland.fx.movie.edu.outland.fx.movie.edu. 86400 IN A 192.253.254.386400 IN A 192.253.254.3

in questo modo il server del livello superiore in questo modo il server del livello superiore sasa dove trovare dove trovare informazioni per il sottodominioinformazioni per il sottodominio

Page 21: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

21

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 4141

I glue recordI glue recordI glue record sono record di tipo A relativi ai nomi dei DNS serI glue record sono record di tipo A relativi ai nomi dei DNS server autorevoli ver autorevoli per il sottodominio (nellper il sottodominio (nell’’esempio fx.movie.edu.)esempio fx.movie.edu.)Senza i glue record il server del dominio (movie.edu.) Senza i glue record il server del dominio (movie.edu.) non puonon puo’’ conoscereconoscerell’’indirizzo dei server per il sottodominio (fx.movie.edu.)indirizzo dei server per il sottodominio (fx.movie.edu.)–– i record di tipo NS contengono il i record di tipo NS contengono il FQDN dei serverFQDN dei server, , non il loro indirizzonon il loro indirizzo–– questi server hanno nomi che appartengono al questi server hanno nomi che appartengono al sottodominio stessosottodominio stesso–– per conoscerne lper conoscerne l’’indirizzo si dovrebbe quindi interrogare proprio uno di loro, indirizzo si dovrebbe quindi interrogare proprio uno di loro,

creando un problema di uovo e gallinacreando un problema di uovo e gallinaNOTA: una zona puoNOTA: una zona puo’’ contenere contenere esclusivamenteesclusivamente informazioni relative a nomi informazioni relative a nomi che appartengono al dominio che la definisceche appartengono al dominio che la definisce–– qualunque nome che termina in movie.edu. appartiene al dominio mqualunque nome che termina in movie.edu. appartiene al dominio movie.edu. ovie.edu.

(es: host.movie.edu., xxx.fx.movie.edu., a.b.c.movie.edu.)(es: host.movie.edu., xxx.fx.movie.edu., a.b.c.movie.edu.)–– quando si delega lquando si delega l’’amministrazione di un sottodominio, la zona del dominio amministrazione di un sottodominio, la zona del dominio non non

dovrebbe piudovrebbe piu’’ avere nomi appartenenti a quel sottodominio, ma nulla lo vietaavere nomi appartenenti a quel sottodominio, ma nulla lo vieta–– questa possibilitaquesta possibilita’’ permette di utilizzare i glue recordpermette di utilizzare i glue record–– poichepoiche’’ i glue record sono record di tipo A che stanno in due zone divei glue record sono record di tipo A che stanno in due zone diverse, si rse, si

deve fare attenzione:deve fare attenzione:si devono utilizzare si devono utilizzare solo i glue record necessarisolo i glue record necessarisi deve garantire che i glue record siano si deve garantire che i glue record siano sempre sincronizzatisempre sincronizzati

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 4242

Risoluzione dei nomiRisoluzione dei nomiI client che interrogano i DNS server sono detti I client che interrogano i DNS server sono detti resolverresolverUn resolver deve sapere Un resolver deve sapere quale DNS server interrogarequale DNS server interrogare per avere le informazioni per avere le informazioni necessarienecessarie

–– usualmente il resolver viene configurato specificando uno o piuusualmente il resolver viene configurato specificando uno o piu’’ DNS server a cui inviare le DNS server a cui inviare le richiesterichieste

La struttura gerarchica permette di ottenere lLa struttura gerarchica permette di ottenere l’’informazione su un nome a partire dai informazione su un nome a partire dai server che gestiscono la rootserver che gestiscono la root

–– Ad esempio: risoluzione di Ad esempio: risoluzione di eth.vaio.ge.infn.it.eth.vaio.ge.infn.it.–– Si interroga un Si interroga un root name serverroot name server, che risponde con il nome del server che gestisce il dominio , che risponde con il nome del server che gestisce il dominio

it.it.–– Si interroga questo server, che risponde con il nome del server Si interroga questo server, che risponde con il nome del server che gestisce il dominio che gestisce il dominio

infn.it.infn.it.–– Si interroga questSi interroga quest’’ultimo, che risponde con il nome del server che gestisce il domiultimo, che risponde con il nome del server che gestisce il dominio nio

ge.infn.it.ge.infn.it.–– Infine si interroga lInfine si interroga l’’ultimo server, che eultimo server, che e’’ autorevole per lautorevole per l’’informazione richiesta e la informazione richiesta e la

comunicacomunicaLe richieste ricevute dai DNS server possono essereLe richieste ricevute dai DNS server possono essere

–– recursiverecursive: il server deve trovare la risposta alla query, e comunicare la: il server deve trovare la risposta alla query, e comunicare la risposta risposta (eventualmente negativa)(eventualmente negativa)

–– iterativeiterative: il server comunica la risposta, se la conosce, o l: il server comunica la risposta, se la conosce, o l’’indirizzo di un server che puoindirizzo di un server che puo’’conoscere la rispostaconoscere la risposta

Page 22: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

22

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 4343

Interrogazioni recursive e iterativeInterrogazioni recursive e iterative

Il client esegue Il client esegue sempre interrogazioni ricorsivesempre interrogazioni ricorsive::–– il server interrogato si deve occupare di trovare la risposta e il server interrogato si deve occupare di trovare la risposta e

comunicarla al clientcomunicarla al client

I server usualmente effettuano interrogazioni I server usualmente effettuano interrogazioni iterativeiterative–– se il server interrogato dal client se il server interrogato dal client non enon e’’ autorevoleautorevole per quella per quella

informazione, il server esegue interrogazioni iterative informazione, il server esegue interrogazioni iterative partendo partendo da un root name serverda un root name server, e segue la catena fino a trovare , e segue la catena fino a trovare ll’’informazione richiestainformazione richiesta

Questo meccanismo richiede che:Questo meccanismo richiede che:–– qualunque DNS server qualunque DNS server conosca lconosca l’’indirizzo dei root name serverindirizzo dei root name server–– qualunque server autorevole di un dominio qualunque server autorevole di un dominio conosca lconosca l’’indirizzo dei indirizzo dei

server autorevoli dei suoi sottodomini di primo livelloserver autorevoli dei suoi sottodomini di primo livello, in modo , in modo da poter discendere lda poter discendere l’’albero (quindi la delega deve essere fatta albero (quindi la delega deve essere fatta correttamente, attraverso i record di tipo NS ed i glue record)correttamente, attraverso i record di tipo NS ed i glue record)

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 4444

CachingCachingLL’’architettura del DNS prevede quindi chearchitettura del DNS prevede quindi che–– un client interroga sempre e solo il suo DNS server (con una queun client interroga sempre e solo il suo DNS server (con una query ricorsiva)ry ricorsiva)–– il server:il server:

se ese e’’ autorevole per lautorevole per l’’informazione, la fornisceinformazione, la forniscealtrimenti esegue interrogazioni iterative verso altri server, paltrimenti esegue interrogazioni iterative verso altri server, partendo dai root name artendo dai root name server, fino ad ottenere lserver, fino ad ottenere l’’informazione cercatainformazione cercata

Per migliorare lPer migliorare l’’efficienza del processo di risoluzione e alleggerire il carico efficienza del processo di risoluzione e alleggerire il carico sui root server si utilizza una tecnica di caching:sui root server si utilizza una tecnica di caching:–– il server il server memorizza le risposte che ottiene dagli altri servermemorizza le risposte che ottiene dagli altri server durante le sue durante le sue

interrogazioni iterativeinterrogazioni iterative–– quando il server riceve una interrogazione per cui non equando il server riceve una interrogazione per cui non e’’ autorevole, autorevole, prima prima

guarda nella cacheguarda nella cachese lse l’’informazione esiste in cache, utilizza quella (e specifica che linformazione esiste in cache, utilizza quella (e specifica che la risposta a risposta non enon e’’autorevoleautorevole))

–– altrimenti esegue la procedura usualealtrimenti esegue la procedura usualeLe entry nella cache hanno un tempo di validitaLe entry nella cache hanno un tempo di validita’’ definito dal campo definito dal campo TTLTTL(quindi e(quindi e’’ definibile sul server primario autorevole per ldefinibile sul server primario autorevole per l’’informazione stessa)informazione stessa)

Page 23: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

23

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 4545

Cache name serverCache name serverEE’’ possibile definire un DNS server in modo che possibile definire un DNS server in modo che non non abbia autoritaabbia autorita’’ su alcuna zonasu alcuna zonaQuesto server, ad ogni query, interrogheraQuesto server, ad ogni query, interroghera’’ i root name i root name server per ridiscendere lserver per ridiscendere l’’albero, come gli altrialbero, come gli altriDi fatto, in condizioni di regime il server risponderaDi fatto, in condizioni di regime il server rispondera’’ con con le informazioni di cache, o ridiscenderale informazioni di cache, o ridiscendera’’ ll’’alberoalberoQuesti server si chiamano Questi server si chiamano cache name servercache name server–– utilizzano solo le informazioni di cacheutilizzano solo le informazioni di cache–– non avendo deleghe di autoritanon avendo deleghe di autorita’’, non devono essere registrati , non devono essere registrati

come name server (tramite record NS) come name server (tramite record NS) su alcun altro serversu alcun altro server

LL’’utilizzo dei cache name server eutilizzo dei cache name server e’’ finalizzato ad finalizzato ad alleggerire il carico di lavoro dei name server autorevoli alleggerire il carico di lavoro dei name server autorevoli in caso di sovraccaricoin caso di sovraccarico

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 4646

Configurazione del clientConfigurazione del clientIl resolver eIl resolver e’’ il client del database DNSil client del database DNSUsualmente costituito da Usualmente costituito da librerie di sistemalibrerie di sistema, ha una , ha una configurazione unica per ogni hostconfigurazione unica per ogni host–– tutti gli applicativi fanno utilizzo dello tutti gli applicativi fanno utilizzo dello stesso resolverstesso resolver

Svolge funzioni molto sempliciSvolge funzioni molto semplici–– si limita ad interrogare un server per avere la risposta alle qusi limita ad interrogare un server per avere la risposta alle queryery

La configurazione eLa configurazione e’’ semplice:semplice:–– local domain namelocal domain name: e: e’’ il dominio a cui appartiene il clientil dominio a cui appartiene il client

se non definito, si ottiene dal nome dellse non definito, si ottiene dal nome dell’’host (dal primo host (dal primo ““..”” in poi)in poi)–– search listsearch list: e: e’’ un elenco di un elenco di nomi di dominionomi di dominio utilizzati (assieme al utilizzati (assieme al

local domain name) per risolvere nomi specificati in modo local domain name) per risolvere nomi specificati in modo non non completamente definitocompletamente definito (vedi slide successiva)(vedi slide successiva)

–– nameservernameserver: e: e’’ un elenco di indirizzi IP corrispondenti ai DNS un elenco di indirizzi IP corrispondenti ai DNS server che il client puoserver che il client puo’’ contattare per interrogare il DNScontattare per interrogare il DNS

Page 24: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

24

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 4747

Nomi semplici e FQDNNomi semplici e FQDNOgni nome nel DNS eOgni nome nel DNS e’’ costituito da una sequenza di nomi semplici costituito da una sequenza di nomi semplici separati da separati da ““..””, e termina con un , e termina con un ““..”” (es: alet.it., smtp.ge.infn.it.)(es: alet.it., smtp.ge.infn.it.)–– questo si chiama FQDNquesto si chiama FQDN

Il resolver puoIl resolver puo’’ accettare accettare nomi semplicinomi semplici ((non terminati da un non terminati da un ““..””), ), completando automaticamente la loro forma secondo le seguenti completando automaticamente la loro forma secondo le seguenti regole:regole:–– si appende al nome un si appende al nome un ““..”” e si tenta la risoluzionee si tenta la risoluzione–– si appende il si appende il local domain namelocal domain name (con punto finale) e si tenta questa (con punto finale) e si tenta questa

risoluzionerisoluzione–– si appende si appende uno dei domini definiti nella search listuno dei domini definiti nella search list (in ordine) e si tenta (in ordine) e si tenta

la risoluzionela risoluzioneIn questo modo si puoIn questo modo si puo’’ semplificare agli utenti la scrittura dei nomi semplificare agli utenti la scrittura dei nomi nellnell’’utilizzo delle applicazioniutilizzo delle applicazioni–– www.google.itwww.google.it viene tradotto in viene tradotto in www.google.itwww.google.it..–– ““telnet linuxgetelnet linuxge”” eseguito su un calcolatore nel dominio ge.infn.it. viene eseguito su un calcolatore nel dominio ge.infn.it. viene

tradotto in tradotto in ““telnet linuxge.ge.infn.it.telnet linuxge.ge.infn.it.””

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 4848

Configurazione del resolverConfigurazione del resolverlinux:linux:–– il resolver si configura attraverso il file /etc/resolv.confil resolver si configura attraverso il file /etc/resolv.conf–– le direttive sonole direttive sono

domain ge.infn.itdomain ge.infn.itnameserver 193.206.144.10nameserver 193.206.144.10nameserver 193.206.144.11nameserver 193.206.144.11search ge.infn.it nt.ge.infn.itsearch ge.infn.it nt.ge.infn.it

–– le direttive domain e search sono le direttive domain e search sono mutualmente esclusivemutualmente esclusive: : ll’’ultima che appare eultima che appare e’’ quella che verraquella che verra’’ utilizzatautilizzata

questo significa che lquesto significa che l’’utilizzo della direttiva search richiede di utilizzo della direttiva search richiede di inserire il local domain tra i domini della listainserire il local domain tra i domini della lista

–– ee’’ possibile possibile sovrascriveresovrascrivere la configurazione del resolver tramite le la configurazione del resolver tramite le informazioni fornite dal informazioni fornite dal dhcp serverdhcp server se opportunamente se opportunamente configuratoconfigurato

Page 25: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

25

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 4949

Configurazione del resolver (2)Configurazione del resolver (2)Windows 2000/XP:Windows 2000/XP:–– il domain name si configura tramite la finestra di dialogo il domain name si configura tramite la finestra di dialogo

StartStart-->Settings>Settings-->Control Panel>Control Panel-->System>Systemsi seleziona il tab si seleziona il tab Computer NameComputer Name e si definisce come nome del e si definisce come nome del computer il suo FQDNcomputer il suo FQDNla parte che segue il primo la parte che segue il primo ““..”” rappresenta il domain namerappresenta il domain name

–– il resolver si configura tramite la finestra di dialogo il resolver si configura tramite la finestra di dialogo StartStart-->Settings>Settings-->Network Connections>Network Connections-->[Interfaccia di rete]>[Interfaccia di rete]

si seleziona si seleziona Internet ProtocolInternet Protocol, quindi click sul bottone , quindi click sul bottone ““PropertiesProperties””qui si possono definire i DNS server, o accettare quelli fornitiqui si possono definire i DNS server, o accettare quelli forniti dal dal DHCP serverDHCP serverfare click sul bottone fare click sul bottone ““AdvancedAdvanced”” per lper l’’ulteriore configurazione, e ulteriore configurazione, e selezionare il tab selezionare il tab ““DNSDNS””si possono aggiungere si possono aggiungere ulteriori DNS serverulteriori DNS serversi puosi puo’’ decidere di aggiungere il suffisso del domain name primariodecidere di aggiungere il suffisso del domain name primariosi possono aggiungere si possono aggiungere altri domain namealtri domain name per il searchper il search

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 5050

Caching del clientCaching del client

Per motivi di ulteriore efficienza anche i client Per motivi di ulteriore efficienza anche i client possono utilizzare meccanismi di cachingpossono utilizzare meccanismi di caching–– i client unix normalmente non lo fannoi client unix normalmente non lo fanno–– per i client Windows (2000/XP) possono essere per i client Windows (2000/XP) possono essere

utilizzati i comandiutilizzati i comandiipconfig /displaydnsipconfig /displaydns per visualizzare la cacheper visualizzare la cacheipconfig /flushdnsipconfig /flushdns per azzerare la cacheper azzerare la cache

LL’’utilizzo del caching spesso puoutilizzo del caching spesso puo’’ creare creare difficoltadifficolta’’ nella analisi di problemi sul sistema di nella analisi di problemi sul sistema di risoluzione dei nomirisoluzione dei nomi–– ci si deve sempre affidare a tecniche di analisi che ci si deve sempre affidare a tecniche di analisi che

non dipendano da fattori ignoti, quali ad esempio la non dipendano da fattori ignoti, quali ad esempio la cache dei clientcache dei client

Page 26: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

26

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 5151

Risoluzione inversaRisoluzione inversaSpesso si ha la necessitaSpesso si ha la necessita’’ di sapere di sapere quale nomequale nome sia associato ad un sia associato ad un indirizzo IPindirizzo IPIl DNS contiene giaIl DNS contiene gia’’ questa informazione come valore (del record di questa informazione come valore (del record di tipo A) associato ad una chiave (il nome)tipo A) associato ad una chiave (il nome)PoichePoiche’’ non cnon c’’ee’’ relazione tra un dominio e gli indirizzi utilizzati dalle relazione tra un dominio e gli indirizzi utilizzati dalle macchine appartenenti a questo dominio, trovare macchine appartenenti a questo dominio, trovare quale sia la chiavequale sia la chiave(il nome) associata ad un valore (l(il nome) associata ad un valore (l’’indirizzo) richiederebbe lindirizzo) richiederebbe l’’analisi di analisi di tutti i recordtutti i record del DNSdel DNSPer risolvere questo problema si ePer risolvere questo problema si e’’ introdotto nel DNS uno spazio di introdotto nel DNS uno spazio di nominomi che che mappano gli indirizzi IPmappano gli indirizzi IP–– a questi nomi sono associati valori che corrispondono al nome dea questi nomi sono associati valori che corrispondono al nome della lla

macchinamacchina–– i record che associano alla chiave (i record che associano alla chiave (nome che rappresenta lnome che rappresenta l’’indirizzo IPindirizzo IP) )

il nome (FQDN) della macchina sono di tipo il nome (FQDN) della macchina sono di tipo PTRPTR–– questi nomi appartengono tutti al dominio questi nomi appartengono tutti al dominio inin--addr.arpa.addr.arpa.

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 5252

Formato dei nomi del dominio inFormato dei nomi del dominio in--addr.arpaaddr.arpa

LL’’architettura del DNS funziona perchearchitettura del DNS funziona perche’’ i nomi sono i nomi sono gerarchicigerarchiciGli indirizzi IP hanno una Gli indirizzi IP hanno una gerarchia intrinsecagerarchia intrinseca: a.b.c.d: a.b.c.d–– a differenza dei nomi, negli indirizzi la parte a differenza dei nomi, negli indirizzi la parte piupiu’’ specifica especifica e’’ a destraa destra

Per gestire le risoluzioni inverse si associa ad ogni indirizzo Per gestire le risoluzioni inverse si associa ad ogni indirizzo IP del tipo IP del tipo a.b.c.da.b.c.d un nome del tipo un nome del tipo d.c.b.a.ind.c.b.a.in--addr.arpa.addr.arpa.–– il dominio inil dominio in--addr.arpa. contiene al massimo 256 sottodomini: addr.arpa. contiene al massimo 256 sottodomini: 0.in0.in--addr.arpa., addr.arpa.,

..., 255.in..., 255.in--addr.arpa.addr.arpa.–– ogni sottodominio (ad esempio 193.inogni sottodominio (ad esempio 193.in--addr.arpa.) contiene 256 sottodomini: addr.arpa.) contiene 256 sottodomini:

0.193.in0.193.in--addr.arpa., ..., 255.193.inaddr.arpa., ..., 255.193.in--addr.arpa.addr.arpa.–– ciascuno di questi (ad esempio 206.193.inciascuno di questi (ad esempio 206.193.in--addr.arpa.) contiene a sua volta 256 addr.arpa.) contiene a sua volta 256

sottodomini: 0.206.193.insottodomini: 0.206.193.in--addr.arpa., ..., 255.206.193.inaddr.arpa., ..., 255.206.193.in--addr.arpa.addr.arpa.–– infine ciascuno di questi (ad esempio 144.206.193.ininfine ciascuno di questi (ad esempio 144.206.193.in--addr.arpa.) continene al addr.arpa.) continene al

massimo massimo 256 record di tipo PTR256 record di tipo PTR, ciascuno dei quali corrisponde ad un indirizzo IP , ciascuno dei quali corrisponde ad un indirizzo IP nella rete 193.206.144.0/24, a cui enella rete 193.206.144.0/24, a cui e’’ associato il nome della macchina che ha associato il nome della macchina che ha quellquell’’indirizzoindirizzo

Questo permette di realizzare una struttura gerarchica per gli iQuesto permette di realizzare una struttura gerarchica per gli indirizzi IPndirizzi IP–– ll’’ordine inverso eordine inverso e’’ determinato dal fatto che una organizzazione generalmente determinato dal fatto che una organizzazione generalmente

gestisce una rete di indirizzi IPgestisce una rete di indirizzi IP: invertendo l: invertendo l’’ordine si puoordine si puo’’ realizzare una delega realizzare una delega per tutta una rete IP per tutta una rete IP delegando la zona corrispondentedelegando la zona corrispondente secondo lsecondo l’’architettura del architettura del DNSDNS

Page 27: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

27

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 5353

Record di tipo PTRRecord di tipo PTRI record di tipo PTR (I record di tipo PTR (pointerpointer) hanno la funzione di ) hanno la funzione di associare ad un nome (che mappa un indirizzo IP) il associare ad un nome (che mappa un indirizzo IP) il nome dellnome dell’’host che ha quellhost che ha quell’’indirizzoindirizzoIl formato del record eIl formato del record e’’<nome> [<TTL>] <class> PTR <host FQDN><nome> [<TTL>] <class> PTR <host FQDN>

dovedove–– <nome>: e<nome>: e’’ il nome associato allil nome associato all’’indirizzo IPindirizzo IP–– <TTL>: time to live (opzionale)<TTL>: time to live (opzionale)–– <class>: deve essere IN<class>: deve essere IN–– <host FQDN>: stringa con il FQDN dell<host FQDN>: stringa con il FQDN dell’’host che ha host che ha

quellquell’’indirizzoindirizzoEsempio:Esempio:–– 10.144.206.193.in10.144.206.193.in--addr.arpa. IN PTR dns1.ge.infn.it.addr.arpa. IN PTR dns1.ge.infn.it.

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 5454

Delega dei sottodomini di inDelega dei sottodomini di in--addr.arpa.addr.arpa.

La struttura del dominio La struttura del dominio inin--addr.arpa.addr.arpa. permette la delega permette la delega di sottodomini come per i nomi ordinaridi sottodomini come per i nomi ordinariQuesto permette di poter delegare la gestione delle Questo permette di poter delegare la gestione delle risoluzioni inverserisoluzioni inverse di una rete di una rete x.y.0.0/16x.y.0.0/16 delegando la delegando la zona zona y.x.iny.x.in--addr.arpa.addr.arpa.Tuttavia la struttura permette la delega solo per sottoreti Tuttavia la struttura permette la delega solo per sottoreti ad ad ottetti interiottetti interi (maschere ad 8, 16 o 24 bit)(maschere ad 8, 16 o 24 bit)Per affrontare situazioni di delega della amministrazione Per affrontare situazioni di delega della amministrazione per sottoreti a per sottoreti a maschere differentimaschere differenti esistono diverse esistono diverse soluzioni soluzioni complessecomplesse, di cui la piu, di cui la piu’’ semplice esemplice e’’: non : non delegaredelegare

Page 28: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

28

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 5555

Advanced featuresAdvanced featuresLo standard per il servizio DNS eLo standard per il servizio DNS e’’ specificato in numerosi specificato in numerosi RFC (1034, 1035, 1101, ..., 2845)RFC (1034, 1035, 1101, ..., 2845)Oltre alle funzionalitaOltre alle funzionalita’’ descritte sono specificate descritte sono specificate funzionalitafunzionalita’’ avanzate, che modificano ed integrano avanzate, che modificano ed integrano quelle originariequelle originarie–– gestione di ACL per query, transfer delle zone, ...gestione di ACL per query, transfer delle zone, ...–– DNS notifyDNS notify–– incremental zone transferincremental zone transfer–– update dinamicoupdate dinamico–– forwardingforwarding–– criteri per la selezione della risposta relativa a record multipcriteri per la selezione della risposta relativa a record multipli li –– security per garantire lsecurity per garantire l’’identitaidentita’’ della sorgente delldella sorgente dell’’informazioneinformazione

Vedremo le principaliVedremo le principali

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 5656

DNS notifyDNS notifyQuesta funzionalitaQuesta funzionalita’’ permette al server primario di permette al server primario di notificare ai secondari che la zona enotificare ai secondari che la zona e’’ stata modificatastata modificataIn questo modo i secondari sono spinti a chiedere un In questo modo i secondari sono spinti a chiedere un update per la zonaupdate per la zonaQuesto permette di evitare di dover attendere un tempo Questo permette di evitare di dover attendere un tempo pari al tempo di refresh (definito nel record SOA della pari al tempo di refresh (definito nel record SOA della zona) prima di avere lzona) prima di avere l’’aggiornamento distribuito su tutti i aggiornamento distribuito su tutti i secondarisecondariQuesta modifica eQuesta modifica e’’ di particolare importanza per evitare di particolare importanza per evitare comportamenti differenti tra i server di una stessa zonacomportamenti differenti tra i server di una stessa zonaTutte le implementazioni moderne soddisfano questa Tutte le implementazioni moderne soddisfano questa funzionalitafunzionalita’’ per defaultper default

Page 29: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

29

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 5757

Incremental zone transferIncremental zone transfer

Questa funzionalitaQuesta funzionalita’’ definisce le specifiche per definisce le specifiche per trasferire ai secondari solo le informazioni che trasferire ai secondari solo le informazioni che sono cambiate nella zona rispetto allsono cambiate nella zona rispetto all’’ultimo ultimo refreshrefreshDi particolare importanza per i DNS server Di particolare importanza per i DNS server sottoposti ad elevato caricosottoposti ad elevato caricoAumenta lAumenta l’’efficienza riducendo il numero di efficienza riducendo il numero di informazioni che il primario deve trasmettere al informazioni che il primario deve trasmettere al secondariosecondarioFunzionalitaFunzionalita’’ non critica, ma utilizzata da tutte le non critica, ma utilizzata da tutte le implementazioni moderneimplementazioni moderne

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 5858

Update dinamicoUpdate dinamico

In base a determinati criteri eIn base a determinati criteri e’’ possibile possibile permettere ai client di effettuare lpermettere ai client di effettuare l’’update update dinamico del DNS server al momento del dinamico del DNS server al momento del bootstrap, in modo da registrare il proprio bootstrap, in modo da registrare il proprio indirizzo ed il proprio nome una volta notoindirizzo ed il proprio nome una volta noto–– tipicamente utilizzato quando il client prende tipicamente utilizzato quando il client prende

ll’’indirizzo via DHCP (potenzialmente diverso ad ogni indirizzo via DHCP (potenzialmente diverso ad ogni bootstrap)bootstrap)

Il DNS server integrato in Windows Server Il DNS server integrato in Windows Server utilizza questa funzionalitautilizza questa funzionalita’’ (che non puo(che non puo’’ essere essere eliminata in caso di domain controller)eliminata in caso di domain controller)

Page 30: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

30

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 5959

Update dinamico: problemiUpdate dinamico: problemiIl problema della funzionalitaIl problema della funzionalita’’ di update dinamico edi update dinamico e’’ la la mancanza di mancanza di controllocontrollo su quello che accade alle informazioni della zonasu quello che accade alle informazioni della zona–– un client che prende un indirizzo utilizzato precedentemente da un client che prende un indirizzo utilizzato precedentemente da un altro un altro

client aggiorna lclient aggiorna l’’entry della risoluzione inversa (PTR), ma entry della risoluzione inversa (PTR), ma non eliminanon eliminaquella (vecchia) della risoluzione direttaquella (vecchia) della risoluzione diretta

–– in caso di assegnazione errata sparisce una entry che non dovrebin caso di assegnazione errata sparisce una entry che non dovrebbe be essere rimossaessere rimossa

Il DNS server di Windows Server Il DNS server di Windows Server elimina automaticamenteelimina automaticamente le le registrazioni di host che non appaiono attivi per registrazioni di host che non appaiono attivi per piupiu’’ di 30 giornidi 30 giorni–– questo genera un problema, in particolare per host dual bootquesto genera un problema, in particolare per host dual boot–– questo meccanismo non equesto meccanismo non e’’ eliminabileeliminabile

In sostanza il DNS non puoIn sostanza il DNS non puo’’ essere piuessere piu’’ utilizzato come utilizzato come database di database di riferimentoriferimento per la conta degli host definiti in reteper la conta degli host definiti in rete–– la mancanza di una registrazione non necessariamente corrispondela mancanza di una registrazione non necessariamente corrisponde ad ad

un indirizzo non assegnato: potrebbe essere stato assegnato ad uun indirizzo non assegnato: potrebbe essere stato assegnato ad un host n host spento da qualche tempo, ma non rimosso dalla retespento da qualche tempo, ma non rimosso dalla rete

–– registrazioni dirette possono essere non piuregistrazioni dirette possono essere non piu’’ attualiattuali

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 6060

DNS server forwardingDNS server forwardingEE’’ possibile definire un DNS server che ha il solo compito di farepossibile definire un DNS server che ha il solo compito di fare il il forwardingforwarding delle richiestedelle richieste–– tecnica utilizzata quando una rete etecnica utilizzata quando una rete e’’ situata situata dietro un firewalldietro un firewall, e solo , e solo

una macchina ha connettivitauna macchina ha connettivita’’ esternaesterna–– i server interni svolgono le loro funzioni normalmente, ma ogni i server interni svolgono le loro funzioni normalmente, ma ogni volta volta

che devono risolvere una query per un che devono risolvere una query per un dominio non localedominio non locale chiedono al chiedono al server che ha server che ha connettivitaconnettivita’’ esternaesterna

–– in questo modo si possono proteggere i DNS server interni, e delin questo modo si possono proteggere i DNS server interni, e delegare egare le funzionalitale funzionalita’’ per la rizoluzione di nomi di Internet ad una sola per la rizoluzione di nomi di Internet ad una sola macchinamacchina

La funzionalitaLa funzionalita’’ di forwarder edi forwarder e’’ quindi una quindi una proprietaproprieta’’ che si configura che si configura sui server internisui server interni (non su quello che fa da forwarder, che si (non su quello che fa da forwarder, che si comporta come un server normale)comporta come un server normale)–– ee’’ possibile istruire i server per utilizzare un forwarder in basepossibile istruire i server per utilizzare un forwarder in base alla query alla query

a cui deve rispondere, ad esempio solo per certi domini, o per ta cui deve rispondere, ad esempio solo per certi domini, o per tutti i utti i domini tranne alcunidomini tranne alcuni

Page 31: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

31

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 6161

Porte e firewallPorte e firewallIl DNS utilizza le seguenti porte per la sua funzionalitaIl DNS utilizza le seguenti porte per la sua funzionalita’’::–– il server ascolta sulla porta il server ascolta sulla porta UDP 53UDP 53 per ricevere le query dai per ricevere le query dai

client o da altri serverclient o da altri server–– i client interrogano il server a partire da una i client interrogano il server a partire da una qualunque porta qualunque porta

UDP > 1024UDP > 1024questo equesto e’’il comportamento di default, ma i client possono essere il comportamento di default, ma i client possono essere configurati per utilizzare TCP, sempre verso la porta 53configurati per utilizzare TCP, sempre verso la porta 53

–– i server interrogano gli altri server a partire da una qualunquei server interrogano gli altri server a partire da una qualunqueporta UDP > 1024, o dalla porte UDP 53porta UDP > 1024, o dalla porte UDP 53

questo comportamento equesto comportamento e’’ diverso dallo standard precedente, che diverso dallo standard precedente, che richiedeva che il server effettuasse query richiedeva che il server effettuasse query a partire dalla sola porta a partire dalla sola porta 53 UDP53 UDP

–– il traffico di il traffico di zone transferzone transfer avviene tramite avviene tramite connessione TCP sulla connessione TCP sulla porta 53 del server primarioporta 53 del server primario

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 6262

Porte e firewall (2)Porte e firewall (2)Da quanto abbiamo visto lo scenario eDa quanto abbiamo visto lo scenario e’’::–– i client interrogano solo i DNS server configurati per il resolvi client interrogano solo i DNS server configurati per il resolver: se i DNS er: se i DNS

server sono interni alla rete locale non devono essere aperte poserver sono interni alla rete locale non devono essere aperte porte da o rte da o verso lverso l’’esterno, altrimenti devono essere aperte le porte 53 UDP e TCP esterno, altrimenti devono essere aperte le porte 53 UDP e TCP verso questi DNS serververso questi DNS server

–– i server locali interrogano i server remoti sulla porta 53 UDP: i server locali interrogano i server remoti sulla porta 53 UDP: devono devono quindi poter uscire verso qualunque destinazione, porta 53 UDPquindi poter uscire verso qualunque destinazione, porta 53 UDP

se vengono utilizzati forwarder, solo questi devono poter uscirese vengono utilizzati forwarder, solo questi devono poter uscire verso verso qualunque destinazione, porta 53 UDPqualunque destinazione, porta 53 UDP

–– i server locali (se contengono informazioni da rendere pubblichei server locali (se contengono informazioni da rendere pubbliche verso verso Internet) devono poter essere contattati sulla porta 53 UDP a paInternet) devono poter essere contattati sulla porta 53 UDP a partire da rtire da qualunque sorgente (i DNS server del resto del mondo), qualunquequalunque sorgente (i DNS server del resto del mondo), qualunqueporta alta UDP (secondo lo standard attuale) e 53 UDP (standard porta alta UDP (secondo lo standard attuale) e 53 UDP (standard vecchio)vecchio)

questo costituisce un potenziale problema di sicurezza, che puoquesto costituisce un potenziale problema di sicurezza, che puo’’ essere essere affrontato in modo piuaffrontato in modo piu’’ sicurosicuro

–– deve essere aperto il traffico tra i DNS server primario e secondeve essere aperto il traffico tra i DNS server primario e secondari sulla dari sulla porta 53 TCP per permettere lo zone transferporta 53 TCP per permettere lo zone transfer

Page 32: Modulo 8: Applicativibrunengo/corsi/alet/Lezione 16.pdf · Modulo 8: Applicativi Parte 1: DHCP, Bootp Gennaio – Marzo 2007 Alessandro Brunengo – Mirko Corosu Reti di Calcolatori

32

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 6363

Strumenti di diagnosticaStrumenti di diagnostica

Esistono diversi programmi che Esistono diversi programmi che permettono di effettuare query di ogni permettono di effettuare query di ogni tipo per verificare il comportamento del tipo per verificare il comportamento del DNSDNSSu linux: nslookup, dig, hostSu linux: nslookup, dig, hostSu Windows: nslookupSu Windows: nslookup

Gennaio Gennaio –– Marzo 2007Marzo 2007Alessandro Brunengo Alessandro Brunengo –– Mirko CorosuMirko Corosu

Reti di CalcolatoriReti di Calcolatori 6464

nslookupnslookupLL’’utility si attiva con il comando nslookup, che fornisce un promputility si attiva con il comando nslookup, che fornisce un prompt ed t ed accetta ulteriori comandi, di cui vediamo i principali:accetta ulteriori comandi, di cui vediamo i principali:–– server <serverserver <server--address>address>: si utilizza per istruire nslookup ad effettuare query : si utilizza per istruire nslookup ad effettuare query

verso il DNS server selezionatoverso il DNS server selezionato–– set queryset query: si utilizza per definire il tipo di record da richiedere:: si utilizza per definire il tipo di record da richiedere:

set query=A chiede record di tipo Aset query=A chiede record di tipo Aset query=NS chiede solo record di tipo NSset query=NS chiede solo record di tipo NSset query=all chiede tutti i tipi di record associati al nome chset query=all chiede tutti i tipi di record associati al nome che verrae verra’’ inseritoinserito

–– <nome><nome>: si interroga il server selezionato per il nome specificato: si interroga il server selezionato per il nome specificatoquesto puoquesto puo’’ essere un FQDN o un nome semplice, che verraessere un FQDN o un nome semplice, che verra’’ completato con le regole completato con le regole definite dal resolver locale in funzione del domain name o delladefinite dal resolver locale in funzione del domain name o della search listsearch list

–– <indirizzo IP><indirizzo IP>: si interroga il server selezionato per effettuare una query re: si interroga il server selezionato per effettuare una query relativa lativa ad un record di tipo PTR nel sottodominio inad un record di tipo PTR nel sottodominio in--addr.arpa.addr.arpa.

–– [no]debug[no]debug: attiva (o disattiva) un livello di debug, che genera maggiori : attiva (o disattiva) un livello di debug, che genera maggiori informazioniinformazioni

–– [no]defname[no]defname e e [no]search[no]search: disattiva l: disattiva l’’aggiunta automatica del domain name e aggiunta automatica del domain name e della search list ai nomi semplicidella search list ai nomi semplici

–– [no]recurse[no]recurse: attiva (disattiva) la richiesta di query recursive (che e: attiva (disattiva) la richiesta di query recursive (che e’’ il default)il default)–– lsls: provoca uno zone transfer verso il nostro client (solitamente : provoca uno zone transfer verso il nostro client (solitamente bloccato dai bloccato dai

server remoti per motivi di sicurezza o di carico)server remoti per motivi di sicurezza o di carico)