DHCP - Dipartimento di Informatica

Transcript

DHCP - Dipartimento di Informatica
Inizializzazione degli Host
a.a. 2002/03
Š Un host collegato ad una interrete deve essere
BOOTP e DHCP
inizializzato prima di poter interagire con gli altri
host dell’interrete
„
Prof. Vincenzo Auletta
deve conoscere il suo indirizzo IP, la sua netmask,
l’indirizzo del router di default, ecc.
Š Due possibili strategie
[email protected]
http://www.dia.unisa.it/~auletta/
„
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
„
Università degli studi di Salerno
Laurea e Diploma in Informatica
Š al momento del boot l’host chiede ad un server di fornirgli i
BOOTP e DHCP
Š In alcuni casi non conviene o non si può
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
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
„
„
valido solo per reti con indirizzo broadcast (Ethernet)
l’indirizzo IP
la netmask
l’indirizzo di un router
l’indirizzo di un name server
Š operano
consente di inviare il solo indirizzo IP
Š non gestisce la netmask, l’indirizzo del router, ecc.
2
valori
1
Inizializzazione Dinamica
„
Inizializzazione dinamica
3
come applicazioni e
direttamente con l’hardware
Š DHCP è un’estensione di BOOTP
non
interagiscono
BOOTP – 1
BOOTP – 2
Š 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
„
„
„
Š
Š I server BOOTP che ricevono il messaggio
4
„
il client utilizza solo la prima risposta ricevuta
Formato Messaggi BOOTP
Š stesso formato per richieste e risposte
Š i campi hanno lunghezza fissa (messaggio di 300 byte)
trasmissione
UDP non garantisce affidabilità
0
Š Accorgimenti usati dal client
„
H OPS
HLE N
Non usati
CLIENT IP ADDRESS
YOUR IP ADDRESS
SERVER IP ADDRESS
fissato (inizialmente [0, 4] secondi)
6
HTYPE
31
TRANSACTION ID
Š Il valore del timeout è scelto a caso in un intervallo
„
16
SECONDS
invia di nuovo la richiesta
riduce la probabilità di collisioni
ad ogni tentativo si raddoppia la dimensione dell’intervallo fino
ad un massimo di 60 secondi
8
OP
invia datagram con bit DF settato
utilizza una politica di ritrasmissione
Š se non riceve la risposta del server BOOTP entro un tempo fissato
„
evita una trasmissione broadcast
5
Š Il client BOOTP deve assicurare l’affidabilità della
„
In alternativa il server può scrivere a mano nella
tabella ARP l’indirizzo fisico del client
„
Politica di Ritrasmissione
„
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
„
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
rispondono con i dati necessari
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
RO UTER IP ADDRESS
CLIENT HARDW A RE AD DRESS (16 byte)
SERVER HOST NA M E (64 byte)
7
BO OT FILE NAM E (128 byte)
VEN D O R-SPECIFIC AREA (64 byte)
Parametri – 1
Parametri – 2
Š OP: Specifica se è una richiesta (1) o una risposta (2)
Š HTYPE e HLEN: Indicano il tipo di hardware e la
Š SECONDS: massimo tempo di attesa della
risposta
lunghezza dell’indirizzo hardware in byte
„
„
Es. per Ethernet HTYPE=1 e HLEN=6 byte
Š HOPS: contatore del numero di hops
„
„
Š CLIENT IP ADDRESS: indirizzo del client
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
„
server al client
Š SERVER IP ADDRESS: indirizzo del server
9
„
usato dal client per interrogare un server specifico
Parametri – 3
Parametri – 4
Š ROUTER IP ADDRESS: indirizzo del router
Š BOOT
„
FILE NAME:
inizializzazione
usato se il server BOOTP non si trova sulla stessa
rete
„
Š CLIENT HARDWARE ADDRESS: indirizzo fisico
„
del
file
di
usato per specificare l’immagine della memoria che
deve essere utilizzata per il boot
AREA:
informazioni
facoltative passate dal server al client
usato per identificare l’host a cui è diretta la
risposta del server
„
Š SERVER HOST NAME: nome del server BOOTP
„
nome
Š VENDOR-SPECIFIC
del client
10
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
permette di far corrispondere le richieste alle risposte
8
Il client aspetta un numero casuale di secondi
compreso fra 0 e SECONDS
contiene le informazioni necessarie al client per
connettersi all’interrete
Š
usato dal client per interrogare un server specifico
„
può contenere informazioni aggiuntive
Š
11
es. indirizzo del router
es. indirizzo del server di stampa, del name server o del
time server
Inizializzazione in Due Fasi
Esempio
Š BOOTP usa una procedura di due fasi
Š Implementare il boot remoto per un insieme di
„
macchine con diverso hardware
Š ogni macchina è multipiattaforma (Windows e
Linux)
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
„
„
12
al boot l’utente specifica il sistema operativo da
caricare
non è possibile creare un’immagine unica
Š Il client specifica nel campo BOOOT FILE NAME
si crea un’unica immagine di memoria valida per
tutte
oppure si crea un’immagine diversa per ogni
macchina
il sistema operativo
„
13
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
Š BOOTP consente che il server ed il client siano
Š BOOTP è adatto ad ambienti in cui gli host hanno
su reti differenti
„
connessioni permanenti alla rete che non vengono
modificate
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
„
„
Š Il protocollo non è adatto ad ambienti dinamici
„
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
14 4. R invia la risposta alla porta 68 di 255.255.255.255 sulla rete di A
il file di configurazione del server BOOTP specifica i parametri
da assegnare ad ogni host
utile per boot remoto di macchine senza disco
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
15
Esempio di Applicazione della
Configurazione Dinamica
DHCP
Š In molte situazioni gli utenti sono in numero
Š DHCP estende BOOTP in due modi
superiore al numero di indirizzi IP disponibili
„
„
non tutti gli utenti
contemporaneamente
Es. clienti di un ISP
sono
connessi
alla
„
1. Invia tutte le informazioni necessarie al client in un
rete
solo messaggio
„
indirizzo IP ad ogni utente
Š Al momento in cui un utente si collega l’ISP gli
assegna uno degli indirizzi IP disponibili
16
al termine della connessione l’utente restituisce
l’indirizzo IP
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
17
Assegnamento degli Indirizzi
Gestione degli Indirizzi Dinamici
Š DHCP consente tre tipi di assegnamento degli
Š 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
indirizzi
„
„
„
assegnazione statica gestita dall’amministratore
(come BOOTP)
assegnazione statica gestita dal server DHCP
assegnazione dinamica
„
durata dell’affitto
base all’identità del client
„
„
in genere l’identità è l’indirizzo hardware
permette di assegnare indirizzi statici ad alcuni host e
dinamici ad altri
evita che un client malizioso si appropri di un
indirizzo a tempo indeterminato
Š Il client ed il server possono concordare la
Š Il server sceglie la modalità di assegnamento in
18
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 è possibile assegnare staticamente un
„
un server DHCP può rispondere a richieste BOOTP
„
Allo scadere il client deve rinnovare l’affitto se non
vuole perdere l’indirizzo IP
Š Il client può anche restituire anticipatamente
19
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
„
Š Il
solo il primo bit è utilizzato per identificare se la risposta deve
essere inviata all’indirizzo di broadcast limitato o ad un indirizzo
unicast
campo
OPTIONS
„
VENDOR-SPECIFIC
diventa
un
campo
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
Š 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
22