La configurazione dei sistemi in rete Il bootstrap dei sistemi
Configurazione e gestione della rete e dei sistemi Gestione della rete sempre più complessa per Reti estese e complesse Gestione dispositivi mobili (cambiano IP ogni volta che cambiano rete) Protocolli per la configurazione di host automazione processo di Assegnazione indirizzo IP Configurazione della connessione Protocolli a livello application per permettere: Host configuration Host management
I protocolli Nel passato, la configurazione era fatta a livello Network tramite protocolli come ARP e RARP Attualmente, la configurazione viene fatta tramite BOOTP (BOOTstrap Protocol) e DHCP (Dynamic Host Configuration Protocol), a livello Application Vantaggi: Configurazione slegata dall’hardware Messaggi E2E possono attraversare più reti È possibile utilizzare le funzionalità dei protocolli del livello di Transport Come?? Utilizzando il broadcasting
ARP e RARP ARP (Address Resolution Protocol) – RFC 826 Protocollo per effettuare il mapping tra indirizzi IP ed indirizzi di livello data-link. L’host richiedente invia un messaggio ARP in broadcast sulla rete locale. Il messaggio è ricevuto da tutti gli host ma solo l’host corrispondente all’indirizzo IP richiesto risponde con il suo indirizzo Ethernet. Ogni host mantiene una cache (per 20 minuti) delle associazioni di indirizzi IP/Hardware RARP (Reverse Address Resolution Protocol) – RFC 903 Compie l’operazione inversa del protocollo ARP Scopre l’indirizzo IP associato ad un indirizzo hardware Utilizzato per il bootstrap di macchine diskless
Il protocollo BOOTP (IETF RFC 951) Negli anni 80 si diffondono le workstation unix che non utilizzavano il disco interno (dove veniva memorizzato l’indirizzo IP) e dovevano caricare il Sistema operativo da un server. Questi pc avevano il programma di avvio su ROM, e tutte le machine disponevano dello stesso programma di boot --> dovevano procurarsi altrove l’IP in fase di boot --> BOOTP protocol BOOTP (Bootstrap Protocol) è un protocollo che permette ad un utente della rete di essere configurato in maniera automatica (=ricevere un indirizzo IP) e di avere un Sistema operativo caricato ed inizializzato senza il coinvolgimento dell’utente. Viene caricato direttamente nel BIOS della scheda di rete. Il server BOOTP, gestito da un amministratore di rete, assegna automaticamente gli indirizzi IP da un pool di indirizzi per una certa durata nel tempo.
RARP vs BOOTP A differenza di RARP, BOOTP permette di inviare la configurazione complete ad un host (per es l’indirizzo del server DNS, l’ip del gateway, il Sistema operative stesso), e non soltanto l’indirizzo IP. BOOTP utilizza il protocollo di trasprto UDP ed è indipendente dall’hardware della macchina Possibilità che client e server appartengano a reti diverse (grazie a DHCP/BOOTP Relay Agent)
BOOTP: come avviene la comunicazione Utilizza il trasporto UDP sulla porta 67 lato server e porta 68 lato client. Un client BOOTP utilizza l’indirizzo broadcast sia a livello IP (255.255.255.255) che a livello MAC (FF:FF:FF:FF:FF:FF) perchè non sa a chi inviare la richiesta Il server risponde con un messaggio che, a livello IP, è ancora un messaggio di broadcast (affinchè lo riceva il client che è in attesa dell’indirizzo), mentre a livello MAC è inviato un messaggio unicast (diretto), perchè il server conosce a quale destinatario fisico inviare I dati
Procedura di inizializzazione La procedura di inizializzazione avviene in due fasi: Su richiesta del client viene fornito l’indirizzo IP e alcune informazioni su come ottenere l’immagine contenente le configurazioni aggiuntive (compreso il sistema operativo) Il client usa il protocollo FTP per scaricare l’immagine da caricare sulla macchina
Affidabilità Essendo UDP un protocollo non affidabile, il controllo della comunicazione è affidato al client BOOTP: Checksum per controllo bit ricevuti Invio richieste e risposte con bit di non frammentazione (per gestire anche i client che non hanno memoria sufficiente per poter riassemblare i pacchetti in arrivo) Timer, allo scadere del quale la richiesta è ritrasmessa (timer a durata casuale)
BOOTP vs DHCP DHCP estende BOOTP: il DHCP è stato sviluppato in maniera da essere compatibile con BOOTP, di conseguenza hanno molto in comune BOOTP è utile per capire il senso del DHCP BOOTP non viene più utilizzato, se non per la configurazione di macchine senza disco DHCP nasce con la diffusione della tecnologia wireless. BOOTP era troppo lento nel configurare host che cambiano rete molto spesso.
Il DHCP (Dynamic Host Configuration Protocol) Nasce con l’esigenza di gestire dispositivi wireless BOOTP in questo campo era troppo lento per far fronte ai repentini e numerosi cambi di rete, oltre che la procedura di inizializzazione in due fasi diventa possibile solo se l’host non si sposta nel frattempo Nuovo protocollo, il DHCP appunto, che permetta ad ogni host di: Ottenere un IP in modo rapido e dinamico Acquisire tutte le info di configurazione in un unico messaggio DHCP server ha a disposizione un address pool usato per l’allocazione dinamica --> alcuni indirizzi vengono riutilizzati tra gli host della rete RFC di riferimento: 1541 --> 1997 –-> 2131, attualmente in uso con i relativi aggiornamenti: 3396, 4361, 6842
Vantaggi Automazione Gestione centralizzata (nell DHCP server): lista IP, lease time, …aggiornabili Condivisione e riutilizzo degli indirizzi: numero host può essere maggiore degli IP a disposizione Portabilità: qualunque host può aggiungersi a posteriori alla rete Assenza di conflitti
Configurazione dinamica dell’host Tre tipi di assegnazione degli indirizzi Manuale: per router o altri host che lo necessitano Automatica: svolta dal DHCP server. Indirizzi saranno poi statici (t lease = 0) Dinamica: DHCP server assegna gli indirizzi con lease time diverso da zero Modalità di assegnazione: come per BOOTP (il client invia il proprio MAC address al server che, riconoscendolo nel suo database, gli assegna l’indirizzo). Lease time policy: il lease time può essere impostato breve o lungo (o infinito) a seconda del tipo di host. Relay agent: per comunicare su subnet diverse.
DHCP Server(s) Un singolo DHCP server è sufficiente per la configurazione, anche su più sottoreti, dei client (assegnazione IP e configurazioni varie), così come di mantenere il log degli accessi e delle operazioni. Tuttavia, per garantire la fault tolerance, è auspicabile configurare uno o più DHCP server di backup. La gestione dei DHCP server, affinchè non si generino conflitti sugli indirizzi, viene demandata ad implementazioni commerciali.
Formato del messaggio DHCP HARDWARE TYPE 1 Ethernet 10Mbps 2 IEEE 802 15 Frame Relay 20 linea seriale HW ADDRESS LENGTH Lunghezza in byte dell’ind. fisico HOPS Settato a 0, usato da DHCP relay agent OPERATION CODE 1(request) 2 (reply) Formato uguale al messaggio BOOTP Differenze inserite nel campo «Options» Così DHCP server può rispondere alle richieste di client BOOTP «Options» contiene almeno 312 byte di opzioni Due tipi di messaggi: request e reply (sullo stesso messaggio) Numero casuale scelto dal client per associare reply a request Secondi dall’inizio del procedimento di acquisizione/rinnovo IP 1 broadcast Resto di bit a 0 Contiene un IP solo se il client è nello stato di BOUND, RENEW, REBIND, altrimenti 0. IP che il server ha assegnato al client Da usare per i messaggi successivi per il completamento del bootstrap Utilizzato dal relay agent Indirizzo fisico del client, usato per l’identificazione Opzionale, può essere anche un nome di dominio Nome del file di configurazione Parametri necessari allo svolgimento delle operazioni di base del DHCP. Diviso in tre campi: CODICE | LUNGHEZZA | VALORE
ISO /OSI