ARP/RARP Università degli studi di Salerno Laurea in Informatica I semestre 03/04 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ 2 Problema della Risoluzione dell Indirizzo Due host possono comunicare direttamente solo se sono collegati alla stessa rete fisica Per potersi scambiare informazioni devono conoscere i rispettivi indirizzi fisici Il protocollo IP consente di individuare univocamente un host tramite un indirizzo logico 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 Scenari Ci sono due situazioni in cui è necessario convertire un indirizzo IP in un indirizzo logico 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) Corrispondenza statica e dinamica In alcune reti fisiche è possibile scegliere gli indirizzi fisici degli host 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 Utilizziamo un protocollo che dinamicamente lega gli indirizzi logici a quelli fisici 3 4
5 Address Resolution Protocol SCENARIO DI ARP: A deve spedire un datagram a B A conosce l indirizzo IP di B, ma non il suo indirizzo fisico IDEA 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 Aggiornamento Dati della Cache 6 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 Code di Pacchetti 7 PROBLEMA L host B potrebbe cambiare il suo indirizzo fisico o essere down L informazione nella cache di A diventa obsoleta SOLUZIONE 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 8 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 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 c è una coda diversa per ogni indirizzo di destinazione
9 Esempio ftp da 192.41.218.1 a 192.41.218.35 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 10 Formato del Pacchetto ARP Il protocollo ARP è progettato per funzionare su reti fisiche di tipo diverso non può fare esplicito riferimento ad un formato degli indirizzi fisici 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 Formato del pacchetto ARP su Ethernet Incapsulamento dei Pacchetti ARP 11 Hardware Type H_size P_size Sender HW Address Target HW Address 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 (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 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 L header del frame specifica che il frame contiene un pacchetto ARP
13 Monitoraggio di ARP Con il comando /sbin/arp è possibile leggere e modificare il contenuto della arp cache /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) 14 Esempio 1: Richiesta ARP ustica chiede di connettersi a martina Contenuto della cache libeccio (192.41.218.174) at 00:80:C8:FC:92:FF 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 Dump delle richieste 11:37:30.405979 arp who-has martina.dia.unisa.it tell ustica.dia.unisa.it 11:37:30.406095 arp reply martina.dia.unisa.it is-at 0:50:ba:b2:87:cc Esempio 2: Richiesta ad Host Irrangiungibile ustica chiede di connettersi a febbraio (host down) Contenuto della cache dopo la richiesta libeccio (192.41.218.174) at 00:80:C8:FC:92:FF 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 martina (192.41.218.180) at 00:50:BA:B2:87:CC febbraio.dia.unisa.it (192.41.218.44) at <incomplete> on eth0 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 15 16
17 Proxy ARP Un proxy ARP è un router che risponde a richieste ARP al posto di un altro host della sua rete Serve per nascondere le differenze tra due reti fisiche Solo su reti che utilizzano ARP I proxy ARP creano problemi di sicurezza 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) 18 Esempio di Proxy ARP 193.205.162.0 193.205.162.0.3.4.1.2 Proxy ARP.254 3 richiede l indirizzo fisico di 2 Sono su reti fisiche diverse 254 risponde con il proprio indirizzo fisico Il proxy ARP provvede a reistradare tutti i pacchetti che gli arrivano diretti a 2 Gratuitous ARP Un host può inviare una richiesta ARP per conoscere il proprio indirizzo IP Se qualche host sulla rete ha l indirizzo nella cache lo manda 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 fisico Esempio 19 20
RARP ARP è dinamico: IP <-> hardware automatico non è usato per il point-to-point, poiché gli hw address non sono coinvolti e.g. pc to pc con cavo cross!!! RARP è usato dalle diskless e richiede una configurazione manuale... lo vedremo in seguito Reverse ARP In alcune situazioni l host A conosce l indirizzo fisico di B ma non il suo indirizzo logico Non è possibile costruire un datagram Il protocollo RARP svolge il ruolo opposto ad ARP fisico logico Usato per sistemi diskless: X terminal, diskless workstation Al boot non conoscono il loro indirizzo IP 21 22 Scenario Formato del pacchetto RARP su Ethernet RARP SCENARIO: Hardware Type Protocol Type 23 A conosce il proprio indirizzo MAC, ma non conosce il proprio indirizzo IP L host B (server RARP) conosce l indirizzo IP di A Soluzione RARP request sull rete (in brodacast) B risponde con un RARP reply contenente l indirizzo IP di A 24 H_size P_size Sender HW Address Target HW Address 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
25 Progettazione di RARP Server Il server RARP deve essere configurato manualmente La progettazione è system dependent Di solito nel file /etc/ethers c è la tabella di corrispondenze hw-->ip...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!! 26 Server Primario e Server di Back-up 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 back-up 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 e DHCP Utilizzato per assegnare dinamicamente gli indirizzi IP a tutti le postazioni nei laboratori didattici 27