RARP: Reverse Adress Resolution Protocol

Cosa succede quando un computer non conosce il proprio indirizzo IP perché, ad esempio, non ha capacità di memoria? In un caso del genere, il Reverse Address Resolution Protocol (RARP) può aiutare in qualità di protocollo per la risoluzione inversa dell’indirizzo. Quindi il RARP è la controparte dell’ARP, il protocollo di risoluzione degli indirizzi.

Attualmente il Reverse ARP è stato superato e protocolli più recenti, come Bootstrap (BOOTP) o il Dynamic Host Configuration-Protocol (DHCP) l’hanno sostituito. Tuttavia, è opportuno conoscere anche la tecnologia precedente. Se è vero che oggi non ci sono più applicazioni che funzionano con RARP, resta comunque utile conoscere le tecniche del passato per comprendere meglio le tecnologie che si basano su di esse.

Cos’è RARP?

Per prima cosa RARP è un protocollo rilasciato nel 1984 e inglobato nello stack del protocollo TCP/IP. RARP si trova nel livello di rete (il livello più basso ed elementare dell’architettura) e rappresenta, quindi, una tecnologia di trasmissione tra due punti in una rete. Ogni partecipante di una rete dispone di due indirizzi più o meno univoci: uno logico, l’indirizzo IP, e uno fisico, l’indirizzo MAC. Mentre l’indirizzo IP è legato al software, l’indirizzo MAC è collegato all’hardware. Il produttore fornitore della vostra scheda di rete vi avrà sicuramente già fornito l’indirizzo Media Access Control.

Può accadere, però, che l’indirizzo IP non sia noto, ad esempio quando il dispositivo corrispondente non possiede una propria memoria in grado di salvare l’indirizzo. In questo caso interviene il protocollo Reverse ARP. Utilizzando l’indirizzo MAC a disposizione, il protocollo può determinare il relativo indirizzo IP. In questo modo si realizza un obiettivo completamente diverso rispetto a quello dell’ARP. Con quest’ultimo, l’indirizzo IP è noto e tramite ARP si determina l’indirizzo dell’hardware.

Come funziona RARP?

Come si fa, in una rete, a risalire all’indirizzo IP di un partecipante se neppure questo ne è a conoscenza? Risposta: utilizzando un server RARP specifico. Questo server, che risponde alle richieste RARP, può anche essere un semplice computer in rete. Tuttavia, è necessario che questo abbia memorizzato tutti gli indirizzi MAC con gli indirizzi IP assegnati. Pertanto, se un partecipante invia una richiesta RARP in rete, solo un server di questo tipo può rispondere a tale richiesta.

Poiché il partecipante che fa la richiesta non conosce il proprio indirizzo IP, deve inviare il pacchetto dati (richiesta) verso i livelli di rete più bassi in modalità broadcast. Ciò significa che il pacchetto giunge a tutti i partecipanti contemporaneamente. A rispondere, però, è soltanto il server RARP. Nel caso in cui ci siano più server, il partecipante richiedente utilizzerà soltanto la risposta che arriva per prima. I formati di richiesta e risposta sono strutturalmente molto simili a quelli del protocollo ARP.

Nei singoli campi si trovano le seguenti informazioni:

  • Hardware Address Space: in questi 2 byte viene specificato il tipo di indirizzo hardware.
  • Protocol Address Space: questo campo di 2 byte indica il tipo di protocollo di rete.
  • Hardware Address Length: questi 8 bit definiscono la lunghezza n dell’indirizzo hardware.
  • Protocol Address Length: questo campo determina la lunghezza m dell’indirizzo di rete.
  • Opcode: il campo di 2 byte indica di che tipo di operazione si tratta. Una richiesta RARP ha il valore 3 e la risposta corrispondente ha il valore 4.
  • Source Hardware Address: qui viene memorizzato l’indirizzo MAC del mittente. La lunghezza effettiva di questo campo è n e viene specificata dall’informazione data nell’Hardware Adress Length. In una rete Ethernet classica è di 6 byte.
  • Source Protocol Adress: in questo campo in teoria dovrebbe essere indicato l’indirizzo IP del mittente, ma se questo non è noto al momento della richiesta, il campo non viene definito. La risposta, invece, contiene l’indirizzo IP del server. La lunghezza di questo campo è m e dipende dalla lunghezza dell’indirizzo del protocollo. In genere il campo ha la lunghezza di un indirizzo IPv4, ovvero 4 byte.
  • Target Hardware Address: questo campo contiene l’indirizzo MAC di destinazione. Poiché nella richiesta RARP non esiste una destinazione specifica, qui viene visualizzato anche l’indirizzo del mittente. Nella risposta il server inserisce anche l’indirizzo del client richiedente. Questo campo ha la lunghezza n e nel caso di una rete Ethernet ha una dimensione di 6 byte.
  • Target Protocol Adress: l’ultimo campo non viene definito durante una richiesta per contenere poi, alla risposta del server, l’informazione ricercata: l’indirizzo IP dell’utente di rete. Questo campo ha la lunghezza m, di solito 4 bytes.

Tra i protocolli ARP e RARP esistono, tuttavia, differenze importanti: in prima linea questi si differenziano per quanto riguarda le informazioni. Mentre una richiesta RARP conosce il proprio indirizzo MAC, ma chiede l’indirizzo IP corrispondente, nella richiesta ARP avviene esattamente il contrario: l’indirizzo IP è noto ed è l’indirizzo MAC a essere richiesto. I due protocolli differiscono anche per quanto riguarda i contenuti dei loro campi operativi: ARP riconosce i valori 1 (per la richiesta) e 2 (per la risposta). RARP, invece, utilizza i valori 3 e 4. In questo modo il server è in grado di riconoscere già dal codice dell’operazione se si tratta di ARP o RARP.

Problematiche del Reverse ARP

Il Reverse Address Resolution Protocol presenta alcuni svantaggi che alla fine hanno portato alla sua sostituzione con un protocollo più moderno. Per utilizzare il protocollo in modo efficace, il server RARP, ad esempio, deve essere collocato nella stessa rete fisica. Il computer invia la richiesta RARP al livello più basso della rete. Per un router, quindi, non è possibile inoltrare il pacchetto. Inoltre, il protocollo RARP non è in grado di gestire le sottoreti, poiché non vengono supportate le maschere di sottorete. Se la rete viene suddivisa in più sottoreti, per ognuna di esse deve essere predisposto un server RARP.

Con tale richiesta, l’utente della rete viene così a conoscenza del proprio indirizzo IP. Come già spiegato, con Reverse ARP non si possono trasmettere maschere di sottorete, né informazioni sul gateway. Non è possibile, dunque, configurare il computer in una rete moderna. Queste mancanze hanno portato allo sviluppo di BOOTP e DHCP.