ARP e RARP - Dipartimento di Informatica

Transcript

ARP e RARP - Dipartimento di Informatica
Problema della Risoluzione
dell’Indirizzo
a.a. 2002/03
Š Due host possono comunicare direttamente
ARP/RARP
solo se sono collegati alla stessa rete fisica
„
univocamente un host tramite un indirizzo
logico
[email protected]
http://www.dia.unisa.it/~auletta/
„
„
Corrispondenza statica e
dinamica
Š Ci sono due situazioni in cui è necessario
Š In alcune reti fisiche è possibile scegliere gli
convertire un indirizzo IP in un indirizzo logico
„
indirizzi fisici degli host
Un host deve spedire un datagram ad un altro host
della sua rete fisica
Un router deve spedire un datagram ad un altro
router sulla stessa rete (next hop)
„
Scegliamo gli indirizzi di host in modo che
corrispondano “facilmente” agli indirizzi fisici
Š Nella maggior parte delle reti (es. Ethernet)
gli indirizzi fisici sono fissati
„
3
Tutte le applicazioni usano gli indirizzi logici e
ignorano la rete fisica
Serve un meccanismo di corrispondenza tra gli
indirizzi logici e gli indirizzi fisici
2
Scenari
„
devono
Š Il protocollo IP consente di individuare
Prof. Vincenzo Auletta
Università degli studi di Salerno
Laurea e Diploma in Informatica
Per potersi scambiare informazioni
conoscere i rispettivi indirizzi fisici
4
Utilizziamo un protocollo che dinamicamente lega
gli indirizzi logici a quelli fisici
Address Resolution Protocol
Raffinamenti del protocollo
Š SCENARIO DI ARP:
Š Per ridurre il traffico sulla rete A mantiene una
cache con le corrispondenze tra indirizzi logici e
fisici
A deve spedire un datagram a B
A conosce l’indirizzo IP di B, ma non il suo indirizzo
fisico
„
„
„
Š IDEA
Š Il pacchetto ARP contiene indirizzo fisico e
logico del mittente
A manda un pacchetto contenente l’indirizzo logico di
B in broadcast a tutti gli host della rete per conoscere
l’indirizzo fisico di B
B riconosce il suo indirizzo logico e gli risponde
A usa l’indirizzo ricevuto per spedire il datagram a B
„
„
„
5
„
Gli host che leggono il pacchetto possono aggiornare
le loro ARP cache
Š Un host che ha cambiato indirizzo fisico manda
una richiesta ARP per il suo indirizzo logico
6
„
tutti gli altri nodi vedono la richiesta ed aggiornano le
loro tabelle
Aggiornamento Dati della
Cache
Code di Pacchetti
Š PROBLEMA
Š Mentre il protocollo ARP è in attesa di scoprire
„
„
l’indirizzo fisico dell’host B i protocolli di livello
superiore possono richiedere di inviare altri
pacchetti
L’host B potrebbe cambiare il suo indirizzo fisico o
essere down
L’informazione nella cache di A è obsoleta
Š SOLUZIONE
„
„
„
7
Prima di spedire una richiesta ARP controlla nella
cache
Ad ogni corrispondenza nella cache è assegnato
un timer (in genere 20 minuti)
Quando il timer scade la corrispondenza viene
rimossa
Per ogni datagram ricevuto da B viene resettato il
timer corrispondente
„
la chiamata ad ARP non è bloccante e questi
pacchetti possono essere spediti ad altri indirizzi
Š Se arrivano alrti pacchetti indirizzati a B il
protocollo li mantiene in una coda e li spedisce
solo dopo aver ricevuto il pacchetto ARP reply
„
8
c’è una coda
destinazione
diversa
per
ogni
indirizzo
di
Esempio
Formato del Pacchetto ARP
Š ftp da 192.41.218.1 a 192.41.218.35
Š Il protocollo ARP è progettato per funzionare su
„
„
„
„
„
„
l’applicazione ftp chiede a TCP di stabilire una
connessione con tale indirizzo
TCP chiede ad IP di inviare un messaggio
all’indirizzo 193.205.162.1
IP chiede ad ARP l’indirizzo fisico di 192.41.218.35
ARP effettua un broadcast (arp request) sulla rete
192.41.218.0
L’host 192.41.218.35 risponde (arp reply) con il
suo indirizzo fisico
IP prepara il datagram e chiede al data link di
spedirlo all’’indirizzo fisico restituito da ARP
9
reti fisiche di tipo diverso
„
Š Il formato e la dimensione del pacchetto ARP
varia in funzione della rete fisica su cui deve
operare
„
due campi dell’header identificano il tipo di rete ed il
tipo di indirizzi da utilizzare
10
Incapsulamento dei Pacchetti
ARP
Formato del pacchetto ARP su
Ethernet
Hardware Type
H_size
P_size
Sender HW Address
Target HW Address
Š
Š
Š
Š
Š
Š
11
non può fare esplicito riferimento ad un formato degli
indirizzi fisici
Protocol Type
Š Il protocollo ARP interagisce direttamente con il
livello di data link
Š Il pacchetto ARP viene incapsulato in un frame
e spedito in broadcast sulla rete
Operation
Sender IP Address
Target IP Address
„
Hardware type: tipo di interfaccia (Ethernet = 1)
Protocol type: tipo di protocollo (0x0800 per IP)
HLEN: lunghezza indirizzi fisici (6 ottetti)
PLEN: lunghezza indirizzi logici (4 ottetti)
Sender HA e IP: indirizzi della sorgente
Target HA e IP: indirizzi del destinatario
Lunghezza totale: 28 ottetti
12
L’header del frame specifica che il frame contiene un
pacchetto ARP
Monitoraggio di ARP
Esempio 1: Richiesta ARP
Š ustica chiede di connettersi a martina
Š Con il comando /sbin/arp è possibile leggere e
„
modificare il contenuto della arp cache
libeccio (192.41.218.174) at 00:80:C8:FC:92:FF
[ether] on eth0
udsab (192.41.218.1) at 00:60:CF:20:AD:93 [ether]
on eth0
nis1sa (192.41.218.254) at 00:04:4D:40:EE:42
[ether] on eth0
/sbin/arp –a (legge il contenuto di tutte le cache)
/sbin/arp –d (cancella un entrata dalla cache)
/sbin/arp –s (inserisce a mano un entrata dalla
cache)
„
„
„
Š Con il comando tcpdump è possibile monitorare
„
tutto il traffico che viaggia sulla rete
È possibile filtrare solo i pacchetti spediti da un dato
protocollo su una data interfaccia
tcpdump arp (legge solo i pacchetti arp)
„
13
„
14
11:37:30.406095 arp reply martina.dia.unisa.it
is-at 0:50:ba:b2:87:cc
Reiterazione di Richieste ARP
Š ustica chiede di connettersi a febbraio (host down)
Š se l’host A invia una richiesta ARP per l’indirizzo
Contenuto della cache dopo la richiesta
di B e non riceve risposta reitera la richiesta
dopo un intervallo di tempo fissato
libeccio (192.41.218.174) at 00:80:C8:FC:92:FF
[ether] on eth0
udsab (192.41.218.1) at 00:60:CF:20:AD:93 [ether]
on eth0
nis1sa (192.41.218.254) at 00:04:4D:40:EE:42
[ether] on eth0
martina (192.41.218.180) at 00:50:BA:B2:87:CC
[ether] on eth0
febbraio.dia.unisa.it (192.41.218.44) at
<incomplete> on eth0
15
Dump delle richieste
11:37:30.405979 arp who-has martina.dia.unisa.it
tell ustica.dia.unisa.it
Esempio 2: richiesta ad host
irrangiungibile
„
Contenuto della cache
„
Š la
dopo un certo numero di tentativi desiste
durata dell’intervallo
ritrasmissione
„
„
16
cresce
ad
ogni
più o meno raddoppia ad ogni tentativo
serve ad evitare di introdurre troppo traffico sulla
rete
Proxy ARP
Esempio di Proxy ARP
Š Un proxy ARP è un router che risponde a
193.205.162.0
richieste ARP al posto di un altro host della sua
rete
„
„
„
.1
Š Sono su reti fisiche diverse
Gratuitous ARP
conoscere il proprio indirizzo IP
Se qualche host sulla rete ha l’indirizzo nella cache lo
manda
Š Utile per risolvere alcuni problemi
„
19
Š 254 risponde con il proprio indirizzo fisico
Š Il proxy ARP provvede a reistradare tutti i
pacchetti che gli arrivano diretti a 2
Esempio
Š Un host può inviare una richiesta ARP per
„
.2
Š 3 richiede l’indirizzo fisico di 2
18
„
.254
193.205.162.0
Nella cache ARP più indirizzi logico corrispondono ad
un solo indirizzo fisico
È possibile che un host si stia spacciano per qualcun
altro per carpire informazioni (spoofing)
17
.4
Proxy ARP
Serve per nascondere le differenze tra due reti fisiche
Solo su reti che utilizzano ARP
Š I proxy ARP creano problemi di sicurezza
„
.3
Evitare di assegnare a due host lo stesso indirizzo IP
Aggiornare le cache di tutti gli host della rete con il
nuovo indirizzo fisico
20
RARP
Reverse ARP
Š ARP è dinamico: IP <-> hardware
Š In alcune situazioni l’host A conosce l’indirizzo
„
fisico di B ma non il suo indirizzo logico
automatico
Š non è usato per il point-to-point,
„
„
„
Š Il protocollo RARP svolge il ruolo opposto ad
poiché gli hw address non sono coinvolti
e.g. pc to pc con cavo cross !!!
ARP
Š RARP è usato dalle diskless e richiede una
„
Š ... lo vedremo in seguito
„
„
X terminal, diskless workstation
Al boot non conoscono il loro indirizzo IP
22
Formato del pacchetto RARP
su Ethernet
Scenario
Š RARP SCENARIO:
„
„
Hardware Type
A conosce il proprio indirizzo MAC, ma non conosce
il proprio indirizzo IP
L’host B (server RARP) conosce l’indirizzo IP di A
H_size
„
„
P_size
Sender HW Address
Š Soluzione
23
fisico Æ logico
Š Usato per sistemi diskless:
configurazione manuale
21
Non è possibile costruire un datagram
Target HW Address
RARP request sull rete (in brodacast)
B risponde con un RARP reply contenente l’indirizzo
IP di A
24
Š
Š
Š
Š
Š
Š
Protocol Type
Operation
Sender IP Address
Target IP Address
Hardware type: tipo di interfaccia (Ethernet = 1)
Protocol type: tipo di protocollo (0x0800 per IP)
HLEN: lunghezza indirizzi fisici
PLEN: lunghezza indirizzi logici
Sender HA e IP: indirizzi della sorgente
Target HA e IP: indirizzi del destinatario
Progettazione di RARP Server
Server Primario e Server di
Back-up
Š Il
Š Per
server RARP
manualmente
„
deve
essere
configurato
garantire l’affidabilità del sistema è
consigliabile prevedere la presenza di più server
RARP nella stessa rete
La progettazione è system dependent
Š Di solito nel file /etc/ethers c’è la tabella di
„
corrispondenze hw-->ip
„
„
„
„
Š Per evitare di introdurre troppo traffico sulla
...ma i kernel non leggono e analizzano tali file
i RARP server girano come processi utente
...quindi con capacità di tx/rx frame di tipo ethernet!!
rete i server
gerarchicamente
„
„
25
26
Altre Soluzioni per Boot
Remoto
Š Il protocollo RARP è stato sostituito da altri
protocolli più flessibili e potenti
„
Basati su UDP
Š BOOTP e DHCP
„
27
Utilizzato per assegnare dinamicamente gli indirizzi IP
a tutti le postazioni nei laboratori didattici
almeno uno risponderà alla richiesta
il client utilizzerà solo la prima risposta ricevuta
RARP
vengono
ordinati
solo il server primario risponde alle richieste
il server di back-up risponde alla seconda iterazione
se quello primario non ha risposto alla prima richiesta