ARP e RARP - Dipartimento di Informatica
Transcript
ARP e RARP - Dipartimento di Informatica
Problema della Risoluzione dell’Indirizzo I semestre 03/04 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/professori/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 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 diventa 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 Con il comando /sbin/arp è possibile leggere e ustica chiede di connettersi a martina 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 Dump delle richieste 11:37:30.405979 arp who-has martina.dia.unisa.it tell ustica.dia.unisa.it 14 11:37:30.406095 arp reply martina.dia.unisa.it is-at 0:50:ba:b2:87:cc Esempio 2: Richiesta ad Host Irrangiungibile Reiterazione di Richieste ARP ustica chiede di connettersi a febbraio (host se l’host A invia una richiesta ARP per l’indirizzo down) di B e non riceve risposta reitera la richiesta dopo un intervallo di tempo fissato Contenuto della cache dopo la richiesta 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 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 H_size il proprio indirizzo IP L’host B (server RARP) conosce l’indirizzo IP di A 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