Address Resolution Protocol: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
m Corretto la formattazione
 
(88 versioni intermedie di 65 utenti non mostrate)
Riga 1:
In [[telecomunicazioni]] con l''''Address Resolution Protocol''' ('''ARP'''), come specificato da [[Request for Comments|RFC]] 826, èsi intende un [[protocollo di rete]] appartenente alla suite del [[IPv4|protocollo internet (IP) versione 4]] e operante a [[livello di accesso alla rete]] (livello collegamento se si considera nomenclatura ISO/OSI), il cui compito è fornire la "mappatura" tra l'[[indirizzo IP]] a(32 32bitbit (4byte- 4 byte) e l'[[indirizzo MAC]] (''MAC48 address''bit - 6 byte) corrispondente di un [[host|terminale]] in una [[LAN|rete locale]] [[ethernet]]. Il suo analogo in [[IPv6]] è [[Neighbor Discovery Protocol]] o NDP. Il protocollo inverso che mappa da indirizzo MAC a Indirizzo IP all'atto della configurazione del PC in Rete è detto [[Reverse Address Resolution Protocol|RARP]].
{{IPstack}}
In [[telecomunicazioni]] l''''Address Resolution Protocol''' ('''ARP'''), come specificato da RFC 826, è un [[protocollo di rete]] appartenente alla suite del [[IPv4|protocollo internet (IP) versione 4]], il cui compito è fornire la "mappatura" tra l'[[indirizzo IP]] a 32bit (4byte) e l'[[indirizzo MAC]] (''MAC address'') corrispondente di un [[host|terminale]] in una [[LAN|rete locale]] [[ethernet]]. Il suo analogo in [[IPv6]] è [[Neighbor Discovery Protocol]] o NDP. Il protocollo inverso che mappa da indirizzo MAC a Indirizzo IP all'atto della configurazione del PC in Rete è detto [[Reverse Address Resolution Protocol|RARP]].
 
== Scopo del protocolloDescrizione ==
=== Scopo del protocollo ===
ARP è un protocollo di servizio, utilizzato in una [[rete di calcolatori]] che utilizzi il protocollo di rete [[Internet Protocol|IP]] sopra una rete di [[livello datalink]] che supporti il servizio di [[broadcast]].
ARP è un protocollo di servizio, utilizzato in una [[rete di calcolatori]] che utilizzi il protocollo di rete [[Internet Protocol|IP]] sopra una rete di [[livello datalink]] che supporti il servizio di [[Broadcasting (informatica)|broadcast]]. Se questo servizio non è disponibile, come ad esempio in [[Asynchronous Transfer Mode|ATM]], devono essere utilizzati altri meccanismi.
 
Per inviare un pacchetto IP ad un calcolatore della stessa sottorete, è necessario [[imbustamento|incapsularlo]] in un pacchetto di [[livello datalink]], che dovrà avere come indirizzo destinazione il MAC Address del calcolatore a cui lo si vuole inviare. ARP viene utilizzato per ottenere questo indirizzo.
 
Se il pacchetto deve essere inviato ad un calcolatore di un'altra [[sottorete]], ARP viene utilizzato per scoprire il MAC Address del [[gateway (informatica)|gateway]] o del [[router]].
 
In ogni calcolatore il protocollo ARP tiene traccia delle risposte precedentemente ottenute in una apposita [[cache]] (''ARP cache'') per evitare di dovere utilizzare continuamente ARP prima di inviare ciascun pacchetto al destinatario (il che comporterebbe un notevole ritardo nelle comunicazioni ed una maggiore complessità nella gestione del traffico). Le informazioni contenute nella cache ARP vengono cancellate dopo un certo periodo dall'ultima occorrenza, tipicamente dopo 5 minuti.
 
=== Funzionamento ===
L'[[host]] che vuole conoscere il MAC address di un altro host, di cui conosce l'indirizzo IP, invia in [[Broadcasting (informatica)|broadcast]] una richiesta ARP (pacchetto di '''ARP Request''') contenente il proprio indirizzo MAC e l'indirizzo IP del destinatario di cui si vuole conoscere il MAC Address. Tutti i calcolatori della sottorete ricevono la richiesta: in ciascuno di essi il protocollo ARP verifica, confrontando l'IP proprio con quello inviato, se viene richiesto il proprio MAC Address. L'host di destinazione che riconoscerà il proprio indirizzo IP nel pacchetto di ARP-request, provvederà ad inviare una risposta (ARP Reply) contenente il proprio MAC direttamente all'host mittente (quindi in [[unicast]]).
Tutti i calcolatori della sottorete ricevono la richiesta: in ciascuno di essi il protocollo ARP verifica, confrontando l'IP proprio con quello inviato, se viene richiesto il proprio indirizzo MAC. L'host di destinazione che riconoscerà il proprio indirizzo IP nel pacchetto di ARP-request, provvederà ad inviare una risposta ('''ARP Reply''') contenente il proprio MAC in unicast all'indirizzo MAC del richiedente.
 
In questo modo, ogni host può scoprire l'indirizzo fisico degli altri host sulla stessa sottorete. Questo è particolarmente importante nel caso si vogliavogliano conoscere i dispositivi di rete quali [[gateway (informatica)|gateway]], [[router]], ecc. per verificare eventuali malfunzionamenti di un nodo della rete stessa.
 
Si noti che l'arrivo dell'ARP-request ad un nodo aggiorna completamente la tabella ARP presente nella cache a lei dedicata dal protocollo, senza rispetto per le voci preesistenti nella tabella di Routing.
Line 22 ⟶ 20:
Ogni scambio di pacchetti ARP avviene tramite incapsulamento di questi all'interno di [[data frame|frame]] di [[livello datalink]] (ad es. frame Ethernet).
 
=== ARP request/reply ===
Sono [[imbustamento|incapsulati]] all'interno di un [[data frame|frame]] Ethernet.
 
L'Ethernet destination address èviene settatoimpostato a ff:ff:ff:ff:ff:ff ([[Broadcasting (informatica)|broadcast]] per indirizzi ARP) se viene effettuata un'ARP Request.<br />Il campo type èviene settatoimpostato al valore 0x0806 (mentre per il [[RARP]] 0x8035).
 
I 28 byte per l'ARP Request/Reply sono strutturati in questo modo:<br/>
* ''hardware type'': specifica il tipo di interfaccia hardware su cui l'utente cerca una risposta, per l'Ethernet si setta il campo ad 1.
<ul>
<li>* <i>hardware''protocol type</i>'': specificaindica il tipo di interfacciaindirizzo hwad sualto cuilivello l'utenteche cercail mittente unaha rispostafornito, per l'EthernetIP si setta il campo ada 10x0800.
<li>* <i>''hardware len</i>'' e <i>''protocol len</i>'': consentono di usare ARP su reti arbitrarie perché specificano la lunghezza dell'indirizzo hardware (MAC) e dell'indirizzo del protocollo di alto livello (IP).
<li> <i>protocol type</i>: indica il tipo di indirizzo ad alto livello che il mittente ha fornito, per l'IP si setta a 0x0800.
<li><i>* ''ARP operation</i>'': specifica se si tratta di una richiesta ARP (valore 1), risposta ARP (valore 2), richiesta RARP (valore 3) oppure una risposta RARP (valore 4).
<li> <i>hardware len</i> e <i>protocol len</i>: consentono di usare ARP su reti arbitrarie perché specificano la lunghezza dell'indirizzo hardware (MAC) e dell'indirizzo del protocollo di alto livello (IP).
<li><i>ARP operation</i>: specifica se si tratta di una richiesta ARP (valore 1), risposta ARP (valore 2), richiesta RARP (valore 3) oppure una risposta RARP (valore 4).
</ul>
 
== Utilizzo ==
Il comando per visualizzare e modificare le voci nella cache ARP è <code>arp</code>.<ref>{{IETF|1147|FYI on a Network Management Tool Catalog: Tools for Monitoring and Debugging TCP/IP Internets and Interconnected Devices}}</ref><ref>{{cita web|url=https://learn.microsoft.com/it-it/windows-server/administration/windows-commands/arp|titolo=arp|sito=Microsoft Learn|editore=[[Microsoft]]|data=6 ottobre 2023}}</ref><ref>{{cita web|lingua=en|url=http://man.openbsd.org/arp.8|titolo=arp(8)|sito=OpenBSD manual pages}}</ref>
Il comando per visualizzare la tabella arp immagazzinata nella cache locale nei sistemi Windows, Mac e GNU/Linux è <tt>arp -a</tt>.
 
Per esempio il comando eseguito su Windows restituirà un risultato simile daa questo:
<pre>
<pre style="background-color:black;color:silver;font-weight:bold">
C:\>arp -a
Interfaccia: 10.10.22.156 --- 0x10004
Line 50 ⟶ 46:
Il procedimento inverso è svolto dal protocollo [[Reverse Address Resolution Protocol]] (RARP).
 
È anche possibile impostare manualmente degli indirizzi IP definiti statici nella tabella ARP, tramite il comando <ttcode>arp -s [IP address] [indirizzo fisico] </ttcode>
 
== Sicurezza ==
Line 56 ⟶ 52:
 
=== IP Spoofing ===
{{Vedi anche|IP spoofing}}
 
È molto facile configurare abusivamente un indirizzo IP su un host, purché questo sia collegato alla sottorete giusta, e l'indirizzo sia inutilizzato, oppure il legittimo proprietario sia spento.
 
Di conseguenza, il fatto che un host risponda ad un certo indirizzo IP non ci autorizza a "fidarci" di quell'host. Significa soltanto che è fisicamente collegato alla rete locale giusta (oppure che anche il routing è stato compromesso).
 
Nonostante questo, molte applicazioni usano dei criteri di sicurezza basati su filtri (ip filtering) di indirizzi ip utilizzandoli nel meccanismo di autenticazione. Solo certi host che hanno uno specifico indirizzo IP contenuto in un file di filtro possono accedere ai servizi.
Nonostante questo, {{chiarire|molti|chi?}} {{citazione necessaria|utilizzano l'indirizzo IP per autenticare gli utenti e consentire l'accesso a servizi non pubblici.}}
 
=== ARP Spoofing ===
*{{Vedi [[anche|ARP poisoning]]}}
La costruzione ad arte di un pacchetto ARP ingannevole è semplice sia su Linux che su Windows, e infatti questa è una tra le maggiori vulnerabilità delle reti locali. Inviando ad un host un ARP REPLY opportunamente contraffatto possiamo modificare la sua cache ARP, ottenendo ad esempio la possibilità di intercettare dati destinati ad altri host.
La costruzione ad arte di un pacchetto ARP ingannevole è semplice sia su Linux che su Windows, e infatti questa è una tra le maggiori vulnerabilità delle reti locali. Inviando ad un host un ARP REPLY opportunamente contraffatto possiamo modificare la sua cache ARP, ottenendo ad esempio la possibilità di intercettare dati destinati ad altri host. Questa tecnica è detta '''[[ARP Spoofing'''spoofing]] o '''ARP cache Poisoning''' (in inglese, avvelenamento della cache ARP).<br />
 
Tra le contromisure una soluzione open source è [http://arpon.sf.net ArpON] "ARP handler inspection". ArpON è un demone portabile che rende il protocollo ARP sicuro contro attacchi Man in The Middle (MITM) attraverso tecniche ARP Spoofing, ARP Cache Poisoning, ARP Poison Routing (APR). Blocca anche attacchi derivati quali Sniffing, Hijacking, Injection, Filtering come ad esempio: DNS Spoofing, WEB Spoofing, Session Hijacking e SSL/TLS Hijacking & co attacks.<br />
 
== Note ==
<references />
 
== Bibliografia ==
* {{en}}RFC IETF|826 - |An Ethernet Address Resolution Protocol: -- or --Or Converting Network Protocol Addresses -to novembre48.bit 1982Ethernet -Address modificatafor daTransmission RFCon 5227Ethernet e RFC 5994Hardware}}
* {{en}}RFC IETF|5227 - |IPv4 Address Conflict Detection - luglio 2008}}
* {{en}}RFC 5994 - IETF|5494|IANA Allocation Guidelines for the Address Resolution Protocol (ARP) - aprile 2009}}
 
== Voci correlate ==
* [[proxyProxy ARP]]
* [[ARP poisoning]]
* [[Reverse Address Resolution Protocol]] ([[Reverse Address Resolution Protocol|RARP]])
* [[Bootstrap Protocol]] ([[Bootstrap Protocol|BOOTP]])
 
== Altri progetti ==
{{interprogetto|preposizione=sull'}}
 
== Collegamenti esterni ==
* {{FOLDOC}}
* {{en}}[http://www.networksorcery.com/enp/protocol/arp.htm Formato del pacchetto ARP]
* {{cita web|1=http://www.networksorcery.com/enp/protocol/arp.htm|2=Formato del pacchetto ARP|lingua=en|accesso=12 novembre 2004|dataarchivio=21 luglio 2006|urlarchivio=https://web.archive.org/web/20060721234608/http://www.networksorcery.com/enp/protocol/arp.htm|urlmorto=sì}}
* {{en}}RFC 826 - An Ethernet Address Resolution Protocol -- or -- Converting Network Protocol Addresses - novembre 1982 - modificata da RFC 5227 e RFC 5994
* {{en}}[cita web|http://arpon.sourceforge.net |ArpON home page]|lingua=en}}
* {{en}}RFC 5227 - IPv4 Address Conflict Detection - luglio 2008
* {{en}}RFC 5994 - IANA Allocation Guidelines for the Address Resolution Protocol (ARP) - aprile 2009
* {{en}}[http://arpon.sourceforge.net ArpON home page]
 
{{IPstack}}
{{Portale|Telematica}}
 
[[Categoria:Protocolli livello collegamento]]
 
[[an:Address Resolution Protocol]]
[[bg:Address Resolution Protocol]]
[[bs:Address Resolution Protocol]]
[[ca:Address Resolution Protocol]]
[[cs:Address Resolution Protocol]]
[[da:Address resolution protocol]]
[[de:Address Resolution Protocol]]
[[el:Address Resolution Protocol]]
[[en:Address Resolution Protocol]]
[[es:Address Resolution Protocol]]
[[et:Aadressiteisenduse protokoll]]
[[eu:ARP]]
[[fi:ARP]]
[[fr:Address Resolution Protocol]]
[[he:Address Resolution Protocol]]
[[hr:ARP]]
[[hu:ARP]]
[[id:Protokol Resolusi Alamat]]
[[ja:Address Resolution Protocol]]
[[ko:주소 결정 프로토콜]]
[[lv:ARP]]
[[nl:Address Resolution Protocol]]
[[nn:Address Resolution Protocol]]
[[no:Address Resolution Protocol]]
[[pl:Address Resolution Protocol]]
[[pt:Address Resolution Protocol]]
[[ru:ARP]]
[[sk:Address Resolution Protocol]]
[[sr:ARP]]
[[sv:Address Resolution Protocol]]
[[tr:Adres Çözümleme Protokolü]]
[[uk:ARP]]
[[yo:Address Resolution Protocol]]
[[zh:地址解析协议]]