Proxy ARP
Partiamo del protocollo ARP. La comunicazione IP di un host (A) verso un altro (B) presenta due situazioni:
- B, il corrispondente di A, è nella stessa rete (IP) di A;
- B si trova su una differente rete non è sulla stessa rete do A..
Semplificando, nel primo caso, l’host A può contattare direttamente il destinatario B. A deve conoscere l’indirizzo fisico di B (MAC address), col quale costruire il pacchetto ethernet e inviarlo a B.
Per individuare il MAC address di B, A usa il protocollo ARP, invia in pacchetto di broadcast (destinato a tutti i nodi della rete) chiedendo se un nodo della propria rete ha l’indirizzo IP di B (il brocating non si propaga fra reti).
Se il nodo esiste risponde fornendo così il proprio MAC ad A.
Nel secondo caso, se B non è sulla stessa rete di A, A si rivolge al default gateway (più in generale alla tabella di routing presente in A. La comunicazione è simile al caso precedente, solo che il pacchetto fisico avrà come destinatario il MAC address del default gateway, il quale sa (o dovrebbe sapere) cosa fare per raggiungere il destinatario B.
E il Proxy ARP?
Ci sono casi in cui è possibile ed utile comunicare con nodi non fisicamente presenti sulla propria rete come se lo fossero.
Un esempio può essere utile per chiarire il meccanismo di proxy ARP.
Consideriamo la seguente configurazione:
Il nodo A (192.168.2.5) èconfigurato in modo errato, con una maschera di rete più ampia del dovuto.
A cerca erroneamente B sulla propria rete con il protocollo ARP e non attraverso il router. Naturalmente B non risponde perché è su una rete differente.
Ma il router è in grado di raggiungere B. Se il router implementa il proxy ARP allora è in grado di intercettare la richiesta di A e farla propria e, conoscendo B, propone il proprio indirizzo fisico per raggiungere B.
In sostanza la richiesta ARP, locale, di A è intercettata dal router, il quale risponde con il proprio MAC (della porta 19.168.2.1) e provvede a comunicare verso B.
L’esempio proposto è certamente legato ad un errore di configurazione e, nella pratica usuale, è bene risolvere il problema correggendo la configurazione e non ricorrere al proxy ARP. Ci sono casi però in cui il meccanismo di proxy ARP è utile e in configurazioni corrette, ad esempio nei meccanismi di NAT, Network Address Translation. Ma… è un’altra storia.