BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un host collegato ad una interrete deve essere inizializzato prima di poter interagire con gli altri host dell interrete deve conoscere il suo indirizzo IP, la sua netmask, l indirizzo del router di default, ecc. Due possibili strategie Inizializzazione statica L amministratore di rete assegna ad un host dei valori fissi i valori vengono scritti in un file sulla memoria dell host e letti al momento del boot Inizializzazione dinamica al momento del boot l host chiede ad un server di fornirgli i valori 2 Inizializzazione Dinamica In alcuni casi non conviene o non si può assegnare un indirizzo statico ad ogni host Macchine senza disco Macchine connesse alla rete solo per brevi periodi RARP consente di ottenere l indirizzo IP al momento del boot ma ha molte limitazioni approccio statico ma l informazione non è memorizzata sul disco locale dell host Richiede accesso diretto all hardware di rete difficile implementare il server consente di inviare il solo indirizzo IP non gestisce la netmask, l indirizzo del router, ecc. valido solo per reti con indirizzo broadcast (Ethernet) 3 BOOTP e DHCP BOOTstrap Protocol Dynamic Host Configuration Protocol sono protocolli che permettono di assegnare ad un host tutti i valori necessari per consentirgli di operare sull interrete l indirizzo IP la netmask l indirizzo di un router l indirizzo di un name server operano come applicazioni e non interagiscono direttamente con l hardware DHCP è un estensione di BOOTP
4 BOOTP 1 BOOTP è un applicazione basata sullo schema client/server usa le porte UDP 67 (server) e 68 (client) Il client spedisce il primo messaggio all indirizzo 255.255.255.255 con indirizzo sorgente 0.0.0.0 255.255.255.255 è l indirizzo di broadcast limitato Il modulo IP invia un datagram all indirizzo di broadcast limitato anche se non viene specificato l indirizzo sorgente I server BOOTP che ricevono il messaggio rispondono con i dati necessari il client utilizza solo la prima risposta ricevuta 5 BOOTP 2 Il server BOOTP deve inviare la risposta all indirizzo di broadcast limitato anche se conosce l indirizzo IP del client Scenario se il server inviasse la risposta direttamente all indirizzo IP del client il modulo IP del server dovrebbe chiedere ad ARP di convertire l indirizzo logico del client in un indirizzo fisico l host che ospita il client non risponderebbe alla richesta ARP perché non conosce il suo indirizzo IP In alternativa il server può scrivere a mano nella tabella ARP l indirizzo fisico del client evita una trasmissione broadcast Politica di Ritrasmissione Formato Messaggi BOOTP 6 Il client BOOTP deve assicurare l affidabilità della trasmissione UDP non garantisce affidabilità Accorgimenti usati dal client invia datagram con bit DF settato utilizza una politica di ritrasmissione se non riceve la risposta del server BOOTP entro un tempo fissato invia di nuovo la richiesta Il valore del timeout è scelto a caso in un intervallo fissato (inizialmente [0, 4] secondi) riduce la probabilità di collisioni ad ogni tentativo si raddoppia la dimensione dell intervallo fino ad un massimo di 60 secondi 7 stesso formato per richieste e risposte i campi hanno lunghezza fissa (messaggio di 300 byte) 0 8 16 31 OP SECONDS HTYPE HLEN TRANSACTION ID CLIENT IP AD D R ESS YOUR IP ADDRESS SERVER IP ADDRESS ROUTER IP ADDRESS Non usati CLIENT HARDW ARE ADDRESS (16 byte) SERVER HOST NA ME (64 byte) BOOT FILE NAM E (128 byte) VENDOR-SPECIFIC AREA (64 byte) HOPS
8 Parametri 1 OP: Specifica se è una richiesta (1) o una risposta (2) HTYPE e HLEN: Indicano il tipo di hardware e la lunghezza dell indirizzo hardware in byte Es. per Ethernet HTYPE=1 e HLEN=6 byte HOPS: contatore del numero di hops permette che il server BOOTP sia su un altra rete Inizializzato a 0 dal client e incrementato da ogni router che reistrada il datagram TRANSACTION ID: intero che identifica il messaggio permette di far corrispondere le richieste alle risposte 9 Parametri 2 SECONDS: massimo tempo di attesa della risposta Il client aspetta un numero casuale di secondi compreso fra 0 e SECONDS CLIENT IP ADDRESS: indirizzo del client utilizzato da un client quando conosce il suo indirizzo IP e chiede al server BOOTP le altre informazioni altrimenti è messo a 0 YOUR IP ADDRESS: indirizzo IP inviato dal server al client SERVER IP ADDRESS: indirizzo del server usato dal client per interrogare un server specifico Parametri 3 Parametri 4 10 ROUTER IP ADDRESS: indirizzo del router usato se il server BOOTP non si trova sulla stessa rete CLIENT HARDWARE ADDRESS: indirizzo fisico del client usato per identificare l host a cui è diretta la risposta del server SERVER HOST NAME: nome del server BOOTP usato dal client per interrogare un server specifico 11 BOOT FILE NAME: nome del file di inizializzazione usato per specificare l immagine della memoria che deve essere utilizzata per il boot VENDOR-SPECIFIC AREA: informazioni facoltative passate dal server al client contiene le informazioni necessarie al client per connettersi all interrete es. indirizzo del router può contenere informazioni aggiuntive es. indirizzo del server di stampa, del name server o del time server
Inizializzazione in Due Fasi Esempio 12 BOOTP usa una procedura di due fasi Il server indica al client come ottenere un immagine della memoria le immagini possono risiedere su un host diverso da quello su cui gira il server BOOTP Il client usa un secondo protocollo (es. TFTP) per recuperare le informazioni per il boot Utile per gestire insieme di macchine si crea un unica immagine di memoria valida per tutte oppure si crea un immagine diversa per ogni macchina 13 Implementare il boot remoto per un insieme di macchine con diverso hardware ogni macchina è multipiattaforma (Windows e Linux) al boot l utente specifica il sistema operativo da caricare non è possibile creare un immagine unica Il client specifica nel campo BOOOT FILE NAME il sistema operativo Il server invia l indirizzo dove recuperare l immagine appropriata (per il tipo di hardware e di sistema operativo) BOOTP con Relay Agent Configurazione Dinamica 14 BOOTP consente che il server ed il client siano su reti differenti la comunicazione passa attraverso un router che funziona da relay agent (proxy) il relay agent lavora a livello di applicazione client DHCP relay agent server DHCP A R B 1. A manda una richiesta BOOTP alla porta 67 di 255.255.255.255 2. R riceve la richiesta e la rimanda alla porta 67 di B setta i campi HOPS e ROUTER ADDRESS 3. B invia la risposta alla porta 68 di R 4. R invia la risposta alla porta 68 di 255.255.255.255 sulla rete di A 15 BOOTP è adatto ad ambienti in cui gli host hanno connessioni permanenti alla rete che non vengono modificate il file di configurazione del server BOOTP specifica i parametri da assegnare ad ogni host utile per boot remoto di macchine senza disco Il protocollo non è adatto ad ambienti dinamici non gestisce la mobilità degli utenti le informazioni sulla configurazione non possono essere cambiate rapidamente non consente di assegnare dinamicamente gli indirizzi agli host la corrispondenza tra indirizzi IP e indirizzi fisici è scritta nel file di configurazione del server
16 Esempio di Applicazione della Configurazione Dinamica In molte situazioni gli utenti sono in numero superiore al numero di indirizzi IP disponibili non tutti gli utenti sono connessi alla rete contemporaneamente Es. clienti di un ISP Non è possibile assegnare staticamente un indirizzo IP ad ogni utente Al momento in cui un utente si collega l ISP gli assegna uno degli indirizzi IP disponibili al termine della connessione l utente restituisce l indirizzo IP 17 DHCP DHCP estende BOOTP in due modi un server DHCP può rispondere a richieste BOOTP 1. Invia tutte le informazioni necessarie al client in un solo messaggio Es. può inviare sia l indirizzo IP che la netmask 2. Permette di ottenere un indirizzo IP dinamico DHCP supporta l autoconfigurazione perché il server non deve conoscere il client quando un computer si connette alla rete invia una richiesta al server DHCP ottiene in risposta tutte le informazione necessarie e si configura automaticamente, senza intervento manuale Assegnamento degli Indirizzi Gestione degli Indirizzi Dinamici 18 DHCP consente tre tipi di assegnamento degli indirizzi assegnazione statica gestita dall amministratore (come BOOTP) assegnazione statica gestita dal server DHCP assegnazione dinamica Il server sceglie la modalità di assegnamento in base all identità del client in genere l identità è l indirizzo hardware permette di assegnare indirizzi statici ad alcuni host e dinamici ad altri 19 Un indirizzo dinamico è preso in affitto dal client e restituito quando non serve più Il server DHCP può fissare un limite massimo alla durata dell affitto evita che un client malizioso si appropri di un indirizzo a tempo indeterminato Il client ed il server possono concordare la durata dell affitto Allo scadere il client deve rinnovare l affitto se non vuole perdere l indirizzo IP Il client può anche restituire anticipatamente l indirizzo
Diagramma di Stato del Client DHCP Formato dei Messaggi DHCP DHCP utilizza lo stesso formato di BOOTP ma alcuni campi hanno significato differente Il campo non utilizzato diventa un campo FLAGS a 16 bit solo il primo bit è utilizzato per identificare se la risposta deve essere inviata all indirizzo di broadcast limitato o ad un indirizzo unicast Il campo VENDOR-SPECIFIC diventa un campo OPTIONS contiene tutte le informazioni relative alla gestione degli indirizzi dinamici (es. durata dell affitto) I campi SERVER HOST NAME e BOOT FILE NAME possono essere eliminati se non servono 20 21 DHCP e Nomi di Dominio 22 DHCP non interagisce con il sistema dei noni di dominio la corrispondenza tra il nome di dominio assegnato all host e l indirizzo assegnato da DHCP deve essere gestita separatamente Se ad ogni indirizzo IP è assegnato staticamente un nome la corrispondenza può essere memorizzata nel DNS se l host ha un indirizzo statico è tutto OK se l host ha un indirizzo dinamico ad ogni connessione avrà un nome di dominio diverso DHCP non è in grado di gestire host con indirizzi dinamici ma nomi di dominio permanenti