arp (address resolution protocol rarp (reverse-arp · università degli studi di bari “aldo...
TRANSCRIPT
Università degli Studi di Bari “Aldo Moro”Laurea in Informatica e Tecnologie per la Produzione
del SoftwareCorso di Reti di calcolatori (M-Z)
A.A. 2015/2016Docente: Luigi Sportelli
ARP (Address Resolution Protocol)RARP (Reverse-ARP)
Indirizzamento (1/3)
La consegna di un datagramma a un host o a un router
richiede due tipi di indirizzo: logico e fisico• l’indirizzo logico (indirizzo IP per lo strato di rete) è un indirizzo
di internetwork a giurisdizione universale, ovvero individua un
dispositivo in modo univoco su tutta la rete Internet. È detto
logico perché assegnato a livello software
• l’indirizzo fisico (chiamato anche MAC address - Media Access
Control address) è un indirizzo locale la cui validità è limitata
alla rete locale ed è detto fisico perché implementato
direttamente in hardware (assegnato fisicamente all’interfaccia di
rete)
Indirizzamento (2/3)
Gli indirizzi IP non possono essere utilizzati per
spedire pacchetti, in quanto l’hardware del livello di
collegamento dati non è in grado di comprenderli
Gran parte degli host è collegata ad una LAN
attraverso una scheda di interfaccia che capisce
unicamente gli indirizzi MAC
Indirizzamento (3/3) Ci sono diverse ragioni per l’esistenza degli indirizzi
MAC Le LAN sono progettate per protocolli arbitrari e non
solo per IP e Internet
Se gli adattatori usassero indirizzi IP, questi
dovrebbero essere registrati nella loro RAM e
riconfigurati ogni volta che l’adattatore venisse
spostato (o riacceso)
Per assicurare la massima indipendenza dei livelli,
sono necessari indirizzi propri (es. nomi di dominio,
numeri di porta, indirizzi IP e indirizzi MAC)
Relazioni tra strati e indirizzi in TCP/IP
Indirizzi MAC (1/2)
Non è un nodo ad avere un indirizzo MAC, ma
l’adattatore al nodo• Un indirizzo MAC è anche chiamato: indirizzo fisico,
indirizzo Ethernet o indirizzo LAN
• Per molte LAN (Ethernet e LAN a token-passig), l’indirizzo
MAC ha lunghezza di sei byte (48 bit) espresso tipicamente in
notazione esadecimale, con ciascun byte dell’indirizzo espresso
come una coppia di numeri esadecimali.
• L’indirizzo MAC di un adattatore è permanente ed è
memorizzato, al momento della costruzione, nella sua ROM.
Indirizzi MAC (2/2)
Non esistono due adattatori con lo stesso indirizzo
MAC
La gestione dello spazio fisico degli indirizzi MAC
è affidata all’IEEE• L’IEEE fissa, per ciascuna società costruttrice che presenta una
richiesta, i primi 24 bit di un indirizzo MAC, lasciando alla
società il compito di creare combinazioni uniche per ciascun
adattatore con i restanti 24 bit.
Indirizzi MAC vs Indirizzi IP
Ricorrendo ad esempi della vita quotidiana
L’indirizzo MAC è analogo al numero di codice
fiscale di una persona: ha una struttura orizzontale
in cui nulla cambia in qualunque posto una persona
si trasferisca
L’indirizzo IP è analogo all’indirizzo postale di una
persona: ha una struttura gerarchica e richiede di
essere sostituito quando la persona cambia
residenza
Esempi di indirizzi MAC
1A-23-F9-CD-06-9B
5C-66-AB-90-75-B1
49-BD-D2-C7-56-2A
88-B2-2F-54-1A-0F
Scenari possibili
Ci sono due situazioni in cui è necessario convertire
un indirizzo IP in un indirizzo MAC• Un host deve spedire un datagramma ad un altro host della
sua rete fisica
• Un router deve spedire un datagramma ad un altro router
sulla stessa rete (next hop)
Serve un meccanismo di corrispondenza tra
gli indirizzi logici e gli indirizzi fisici
Nota:
Tecniche di risoluzione degli
indirizzi
Ricerca vettoriale: necessita di tabelle in cui siano elencate le
corrispondenze fra indirizzi logici ed indirizzi MAC• le tabelle vengono immagazzinate nei dispositivi connessi alla rete locale
• la gestione di tali liste richiede un grande lavoro da parte degli
amministratori di rete
Computazione in forma chiusa: gli indirizzi IP hanno un
formato che permette il calcolo dell’indirizzo fisico
Computazione distribuita: è realizzata mediante protocolli
che permettono a un dispositivo di rete di determinare uno dei
due indirizzi, noto l’altro: il mittente chiede al destinatario di
svelare il suo indirizzo (ARP e RARP)
Architettura a strati e protocolli
TCP/IP Protocol Suite e modello OSI
ARP E RARP (1/3)
ARP per Ethernet è definito nella RFC 826 • Un’elegante introduzione ad ARP è fornita nella RFC 1180, il
tutorial su TCP/IP
RARP per Ethernet è definito nella RFC 903
ARP E RARP (2/3)
ARP RARP
Indirizzo logico Indirizzo logico
Indirizzo MAC Indirizzo MAC
ARP E RARP (3/3)
ARP viene usato tutte le volte che un host vuole
inviare un pacchetto ad un altro host di cui conosce
solo l’indirizzo IP
RARP viene usato da host non dotati di memoria di
massa (diskless) per reperire il proprio indirizzo IP
all’avvio (bootstrap)
ARP
Scenario di ARP:• A deve spedire un datagramma a B, host appartenente alla
medesima rete logica (cioè alla medesima rete IP)
• A conosce l’indirizzo IP di B, ma non il suo indirizzo MAC
Idea • A manda un pacchetto contenente l’indirizzo logico di B in
broadcast a tutti gli host della rete per conoscere
l’indirizzo MAC di B (ARP request)
• B riconosce il suo indirizzo logico e risponde ad A (ARP
reply) in modalità unicast
• A usa l’indirizzo ricevuto per spedire il datagramma a B
Indirizzo broadcast
Per LAN che usano indirizzi a sei byte, l’indirizzo
broadcast è una stringa costituita da soli 1
(FF-FF-FF-FF-FF-FF)16
Funzionamento del protocollo ARP
Sistema BSistema A
Richiesta
Sono alla ricerca dell’indirizzoMAC del nodo che ha indirizzo
IP: 141.23.56.23
A deve inviare un
pacchetto a B che
ha indirizzo IP: 141.23.56.23
Risposta ARP
in modalità
unicast
Richiesta ARP
in modalità
broadcast
Sistema A Sistema B
Risposta
Sono il nodo che cerchi e il mioIndirizzo MAC è
A4-6E-F4-59-83-AB
ARP: scenari tipici
Primo caso: l’host destinazione è sulla stessa LAN
(stessa subnet IP)
Secondo caso: l’host destinazione non è sulla stessa
rete LAN
Host sulla stessa LAN (1/3)
A B R1
Rete IP di classe C
rete: 192.168.1.0
netmask: 255.255.255.0
Default router
IP: 192.168.1.254
netmask: 255.255.255.0
IP: 192.168.1.3
netmask: 255.255.255.0
IP: 192.168.1.1
netmask: 255.255.255.0 • A ha intenzione di inviare un pacchetto a B.
• Domanda: come fa A a sapere se B è sulla
propria sottorete?
Risposta: attraverso la netmask!
Host sulla stessa LAN (2/3)
Ogni computer ha un indirizzo IP ed una netmask.
La netmask serve ad individuare la propria sottorete
IP:Digitare dal prompt di DOS il comando
• ipconfig /all
Il computer A esegue una AND tra l’indirizzo IP
destinazione e la propria netmaskNell’esempio:
È proprio l’indirizzo della
sottorete IP cui appartiene A
IP B: 192.168.1.3
AND
netmask A: 255.255.255.0
=
192.168.1.0
Host sulla stessa LAN (3/3)
Se il computer B è sulla stessa sottorete IP
allora è inviato un pacchetto ARP request in
broadcast
• tale pacchetto contiene nel campo INDIRIZZO
PROTOCOLLO OBIETTIVO, l’indirizzo IP di B
LAN interconnesse attraverso un
router (1/4)
IP:111.111.111.111
IP:111.111.111.112
IP:222.222.222.221
IP:222.222.222.222
1A-23-F9-CD-06-9B
IP:222.222.222.220
IP:111.111.111.110
E6-E9-00-17-BB-AB
74-29-9C-E8-FF-55 88-B2-2F-54-1A-0F
49-BD-D2-C7-56-2ACC-49-DE-D0-AB-7D
LAN interconnesse attraverso un
router (2/4)
Problema: un nodo su una LAN vuole spedire un datagramma
dello strato di rete ad un nodo esterno alla LAN (cioè su
un’altra rete IP) • Ci sono gli host e il router: quest’ultimo ha un indirizzo IP per ciascuna
delle sue interfacce
L’host 111.111.111.111 (sulla LAN 1) vuole spedire un
datagramma IP all’host 222.222.222.222 (sulla LAN 2)• Utilizzare ARP non funziona, in quanto l’host sulla LAN 2 non riceverà
il broadcast (i router non inoltrano broadcast a livello di Ethernet)
LAN interconnesse attraverso un
router (3/4)
Soluzioni possibili
Si fa in modo che l’host sulla LAN 1 capisca immediatamente che la destinazione appartiene a una rete remota (questa informazione è indicata nella sua tabella d’inoltro) e spedisca tutto il traffico remoto all’indirizzo Ethernet che lo gestisce, in questo caso il router
Il router potrebbe essere configurato per rispondere alle richieste ARP per conto della LAN 2 (idea di proxy ARP)
LAN interconnesse attraverso un
router (4/4)
Il datagramma deve essere spedito prima all’interfaccia
del router• L’appropriato indirizzo LAN per il frame è quello dell’adattatore del
router, cioè E6-E9-00-17-BB-4B. Questa operazione è svolta da
ARP
• Il router, attraverso la tabella di instradamento sa che deve inviare il datagramma attraverso l’interfaccia 222.222.222.220.
Quest’ultima passa il datagramma al suo adattatore e lo invia nella
LAN 2. Il router acquisisce l’indirizzo di destinazione finale attraverso
ARP
In conclusione più LAN possono essere collegate insieme
per formare LAN più grandi• Tutto senza l’intervento dell’instradamento dello strato di rete per
l’interconnessione di questi nodi locali
Considerazioni
Dall’esempio precedente si evince che ciascun calcolatore
risolve soltanto l’indirizzo relativo al salto successivo
Un calcolatore può risolvere un indirizzo soltanto se il
destinatario appartiene alla stessa rete fisica
Proxy ARP (ARP promiscuo)
Un proxy ARP è un router che risponde a richieste
ARP per conto di un insieme di host della sua rete• Serve per nascondere le differenze tra due reti fisiche e per
creare effetti di sottorete, cioè permette di usare la stessa subnet
su due o più reti fisiche diverse
• Solo su reti che utilizzano ARP
Funzionamento• Quando il router con il proxy riceve una richiesta di indirizzo
MAC per un host da lui controllato, risponde inviando il proprio
indirizzo MAC
• Successivamente provvede ad instradare i messaggi che gli
arrivano agli host verso i quali funge da proxy
Esempio di Proxy ARP
141.23.56.23141.23.56.21 141.23.56.22
Proxy ARP
router
Router o host
Richiesta
Sottorete aggiunta
Il router del proxy ARP
risponde a una richiesta
ARP per i nodi 141.23.56.21
141.23.56.22
141.23.56.23
Svantaggi del Proxy ARP
I proxy ARP creano problemi di sicurezza
• Nella cache ARP più indirizzi logici corrispondono ad un
solo indirizzo MAC
• È possibile che un host si stia spacciando per qualcun altro
per carpire informazioni (spoofing)
ARP: sommario (1/2)
Operazione di AND logico tra l’indirizzo IP della
destinazione e la propria netmaskse il risultato fornisce l’indirizzo della propria subnet IP
• è inviata una richiesta ARP per risolvere l’indirizzo della
destinazione
Altrimentiil pacchetto è inviato al router di default
• nel caso in cui l’indirizzo MAC del router non sia noto
è inviata una richiesta ARP per risolvere l’indirizzo IP
del router
ARP: sommario (2/2)
Un modulo ARP traduce un indirizzo IP in un indirizzo
MAC
Per molti aspetti è analogo al DNS che traduce i nomi di
dominio in indirizzi IP
Differenza
Il DNS esegue l’operazione per host situati in qualunque
punto di Internet, mentre l’ARP risolve solo gli indirizzi
IP per i nodi della stessa LAN o di LAN interconnesse
Precisazione su ARP (1/2)
Il protocollo ARP è progettato per funzionare su reti
fisiche di tipo diverso (non solo su Ethernet)• non può fare esplicito riferimento ad un formato degli
indirizzi MAC
Il formato e la dimensione del pacchetto ARP varia
in funzione della rete fisica su cui deve operare
Precisazione su ARP (2/2)
Il protocollo ARP è progettato per la risoluzione di
indirizzi arbitrari (IP, IPX, DECNet)• nella pratica, però, è quasi sempre usato per la traduzione
di indirizzi IP di 32 bit in indirizzi MAC di 48 bit
Due campi del messaggio ARP identificano il tipo
di rete ed il tipo di indirizzi da utilizzare
Formato di un messaggio ARP (1/3)
Tipo dell’indirizzo fisico
Lungh. ind.fis. Lungh. ind. prot. Operazione
Indirizzo fisico mittente (primi 4 byte)
Ind. prot. mittente (primi 2 byte)
Ind. prot. mittente (ultimi 2 byte)
Indirizzo protocollo obiettivo (tutti i 4 byte)
Indirizzo fisico obiettivo (ultimi 4 byte)
Ind. fisico obiettivo (primi 2 byte)
Ind. fisico mittente (ultimi 2 byte)
Tipo dell’indirizzo di protocollo
Lungh. ind. fis Lungh. ind. prot.
0 16 31248
Formato di un messaggio ARP (2/3)
Ciascuna riga della figura corrisponde a 32 bit del messaggio
ARP
I primi due campi da 16 bit specificano il tipo degli indirizzi
coinvolti nella risoluzione
• Per esempio, il campo tipo dell’indirizzo fisico contiene il valore 1 se la
rete sottostante è Ethernet, e il campo tipo dell’indirizzo di protocollo
contiene il valore (0800)16 se il protocollo dell’inter-rete è IP
La seconda coppia di campi specifica il numero di byte
dell’indirizzo fisico e di protocollo, mentre il campo operazione
indica se il messaggio è una richiesta (valore 1) o una risposta
(valore 2)
Formato di un messaggio ARP (3/3)
Ogni messaggio ARP ha spazio sufficiente per due coppie di
indirizzi, ciascuna costituita da un indirizzo fisico e uno di
protocollo• Una coppia corrisponde agli indirizzi del mittente, l’altra a quelli del
destinatario che è detto obiettivo (target)
• Chi emette la richiesta non conosce l’indirizzo fisico dell’obiettivo e
quindi può impostare a zero i valori del campo.
• D’altro canto chi risponde riempie il campo indirizzo fisico obiettivo
con l’indirizzo del richiedente originario.
È evidente, quindi, che il campo indirizzo fisico obiettivo non
ha alcuna funzione e potrebbe essere eliminato. Si tratta di un
residuo delle prime versioni del protocollo.
Trasmissione dei messaggi ARP
Al pari di ogni altro dato, anche i messaggi ARP sono
trasportati all’interno dei frame della rete fisica• Questa non è al corrente del fatto che il messaggio è una richiesta di
risoluzione o una risposta a tale richiesta, e non esamina i contenuti dei
campi del messaggio
L’azione di porre un messaggio all’interno di un frame per
poterlo trasportare è detta incapsulamento
Intestazione
del frameCarico del frame CRC
Messaggio ARP
Operazioni del protocollo ARP (1/2)
Tutti gli host e i router ricevono la trama e la passano
al protocollo ARP
Tutte le stazioni distruggono la trama ad eccezione di
quella che riconosce nell’indirizzo IP del destinatario
il proprio indirizzo IP
Operazioni del protocollo ARP (2/2)
Il destinatario risponde con un messaggio ARP
contenente il proprio indirizzo MAC
• la risposta, depositata in un frame, è trasmessa in modalità
unicast
Il mittente riceve il messaggio di risposta ed acquisisce
l’indirizzo MAC del destinatario
Il datagrama IP viene quindi incapsulato in una trama
che è spedita al destinatario
Identificazione dei frame ARP
Un calcolatore che riceve un frame si accorge che questo
contiene un messaggio ARP esaminando il campo tipo
frame• Su Ethernet i frame che trasportano i messaggi ARP hanno un
campo dei tipi pari a (0806)16
• Ethernet prevede un unico valore del campo tipo per tutti i
messaggi ARP, quindi per distinguere una richiesta da una risposta
oltre al campo tipo bisogna analizzare il contenuto del campo
operazione
ARP è un protocollo del livello di rete o
del livello di collegamento?
• Un pacchetto ARP è incapsulato in un frame a
livello di collegamento
• Un pacchetto ARP ha campi che contengono sia
gli indirizzi del livello di collegamento sia gli
indirizzi del livello di rete
Alla fine è probabilmente meglio considerare ARP come un protocollo che sta al confine tra i livelli di collegamento e di rete
Raffinamenti del protocollo
Per ridurre il traffico sulla rete A mantiene una cache
con le corrispondenze tra indirizzi logici e fisici• Prima di spedire una richiesta ARP controlla nella cache
Il pacchetto ARP contiene indirizzo fisico e logico del
mittente• 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• Tutti gli altri nodi vedono la richiesta ed aggiornano le loro
tabelle
Aggiornamento dati della cache
PROBLEMA• L’host B potrebbe cambiare il suo indirizzo fisico o non
essere disponibile
• L’informazione nella cache di A diventa obsoleta senza
preavviso (stato transitorio)
SOLUZIONE• Ad ogni corrispondenza nella cache è assegnato un timer
o TTL (Time-To-Live) che in genere è 20 minuti
• Quando il timer scade la corrispondenza viene rimossa
• Per ogni datagramma ricevuto da B viene resettato il
timer corrispondente
Esempio n.1 di tabella ARP
Una possibile tabella ARP per il nodo 222.222.222.220 è
Indirizzo IP Indirizzo LAN TTL222.222.222.221 88-B2-2F-54-1A-0F 13:45:00
222.222.222.223 5C-66-AB-90-75-B1 13:52:00
IP: 222.222.222.221
1A-23-F9-CD-06-9B
5C-66-AB-90-75-B1
49-BD-D2-C7-56-2A
88-B2-2F-54-1A-0F
IP:222.222.222.220
IP:222.222.222.223
IP:222.222.222.222
Esempio n. 2 di tabella ARP
223.1.2.1 08-00-39-00-2F-C3
223.1.2.3 08-00-5B-21-A7-22
223.1.2.4 08-00-10-99-A3-54
223.1.2.1 08-00-39-00-2F-C3
223.1.2.3 08-00-5B-21-A7-22
223.1.2.4 08-00-10-99-A3-54
223.1.2.2 08-00-28-00-38-A9
Ind. IP Mittente 223.1.2.1
Ind. LAN Mitt. 08-00-39-00-2F-C3
Ind. IP Destinatario. 223.1.2.2
Ind. LAN Dest. < vuoto >
Ind. IP Mittente 223.1.2.2
Ind. LAN Mitt. 08-00-28-00-38-A9
Ind. IP Destinatario. 223.1.2.1
Ind. LAN Dest. 08-00-39-00-2F-C3
Esempio di tabella ARP all’inizio
Esempio di richiesta ARP
Esempio di risposta ARP
Tabella ARP dopo la risposta
Code di pacchetti
Mentre il protocollo ARP è in attesa di scoprire
l’indirizzo MAC dell’host B i protocolli di livello
superiore possono richiedere di inviare altri pacchetti• La chiamata ad ARP non è bloccante e questi pacchetti
possono essere spediti ad altri indirizzi
Se arrivano altri pacchetti indirizzati a B il
protocollo li mantiene in una coda e li spedisce solo
dopo aver ricevuto il pacchetto ARP reply• C’è una coda diversa per ogni indirizzo di destinazione
Monitoraggio di ARP
Con il comando arp è possibile leggere e
modificare il contenuto della ARP cache• arp –a (legge il contenuto di tutta la cache)
• arp –d (cancella un’entrata dalla cache)
• arp –s (inserisce a mano un’entrata alla 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)
Reiterazione di richieste ARP
Se l’host A invia una richiesta ARP per l’indirizzo di
B e non riceve risposta reitera la richiesta dopo un
intervallo di tempo fissato
• Dopo un certo numero di tentativi desiste
La durata dell’intervallo cresce ad ogni
ritrasmissione
• più o meno raddoppia ad ogni tentativo
• serve ad evitare di introdurre troppo traffico sulla rete
ARP gratuito
Ogni macchina manda la propria coppia di indirizzi
in broadcast all’inizializzazione nella forma di un
pacchetto ARP. Non ci dovrebbe essere risposta ma
solo una nuova registrazione nella cache ARP di
tutti.• Se qualche host sulla rete risponde, lo stesso indirizzo IP
è stato assegnato a due macchine diverse
Utile per risolvere alcuni problemi• Evitare di assegnare a due host lo stesso indirizzo IP
• Aggiornare le cache di tutti gli host della rete con il
nuovo indirizzo MAC
Reverse-ARP (1/2)
Problema:
• A conosce il proprio indirizzo LAN, ma non conosce il
proprio indirizzo IP
Idea:
• A manda in broadcast il proprio indirizzo LAN e dice:
“Il mio indirizzo LAN da 48 bit è A4-6E-A4-57-82-36.
Qualcuno lì fuori conosce il mio indirizzo IP?”
• Il RARP server conosce l’indirizzo IP di A e risponde
con un RARP reply contenente l’indirizzo IP di A
Reverse-ARP (2/2)
Quindi
Il protocollo RARP svolge il ruolo opposto ad
ARP:
• indirizzo fisico indirizzo logico
Usato per sistemi diskless:
• X terminal, diskless workstation che all’avvio non
conoscono il loro indirizzo IP
Funzionamento del protocollo RARP
Viene effettuato il
boot dell’host A che si suppone sia
privo di disco
Risposta RARP
in modalità
unicast
Richiesta RARP
in modalità
broadcast
Server RARPHost A
Richiesta
Il mio indirizzo MAC è:A4-6E-A4-57-82-36
Quale è il mio indirizzo IP?
Host A Server RARP
Risposta
Il tuo indirizzo IP è:141.14.56.21
Formato del pacchetto RARP
Il formato del pacchetto RARP è identico a quello del pacchetto ARP
L’unica differenza sta nel campo operazione che in questo caso vale 3 per la richiesta e 4 per la risposta
Un pacchetto RARP viene inserito in una trama dello strato per il collegamento dati
• Il frame che trasporta il messaggio RARP ha un campo dei
tipi pari a (8035)16
Server Primario e Server di Backup
Per garantire l’affidabilità del sistema è consigliabile
prevedere la presenza di più server RARP nella stessa
rete• almeno uno risponderà alla richiesta
• il client utilizzerà solo la prima risposta ricevuta
Per evitare di introdurre troppo traffico sulla rete, i
server RARP vengono ordinati gerarchicamente• solo il server primario risponde alle richieste
• il server di backup risponde alla seconda iterazione se
quello primario non ha risposto alla prima richiesta
Altre soluzioni per Boot Remoto
Il protocollo RARP è stato sostituito da altri protocolli
più flessibili e potenti
• Basati su UDP
BOOTP: BOOTstrap Protocol
DHCP: Dynamic Host Configuration Protocol
• Utilizzati per assegnare dinamicamente gli indirizzi IP