10. NAT Traversal

Il NAT Traversal (Network Address Translation Traversal) è una tecnica che permette la comunicazione con dispositivi posizionati all'interno di una rete locale (LAN) che usa il NAT (Network Address Translation). E' contemplato anche il caso in cui entrambi i dispositivi che desiderano comunicare si trovino dietro differenti router con il NAT.

È usato principalmente per consentire a dispositivi in reti private di comunicare tra loro attraverso Internet, dove normalmente il NAT renderebbe difficile o impossibile tale comunicazione.


Il mascheramento introdotto dal meccanismo di NAT

Il NAT è una tecnologia che consente a più dispositivi su una rete locale (come in una casa o in un ufficio) di condividere un unico indirizzo IP pubblico. Questo risolve il problema della scarsità di indirizzi IPv4, ma crea una complicazione: i dispositivi sulla rete locale non possono essere facilmente raggiunti dall'esterno, poiché il router nasconde i loro indirizzi IP privati.

Questa caratteristica di "mascheramento" è utile per motivi di sicurezza e gestione degli indirizzi, ma diventa problematica quando due dispositivi, entrambi dietro a router NAT diversi, devono comunicare direttamente tra loro. Esempi comuni sono le applicazioni di VoIP (come Skype), i videogiochi online, i software di file-sharing e le VPN.


Le tecniche di NAT Traversal

Esistono diverse tecniche di NAT Traversal. Le più comuni sono:

STUN consente a un dispositivo di scoprire il proprio indirizzo IP pubblico e la porta che il router NAT sta utilizzando per inoltrare il traffico.

Una volta che un dispositivo conosce il proprio indirizzo pubblico, può informare altri dispositivi su come contattarlo.

STUN è utilizzato da molte applicazioni VoIP e di videoconferenza.

TURN è usato quando non è possibile stabilire una connessione diretta tra due dispositivi. In questo caso, il traffico viene "relayato" attraverso un server TURN.

È meno efficiente di STUN perché aggiunge latenza (il traffico deve passare attraverso un server intermedio), ma è utile quando altre tecniche falliscono.

Il protocollo UPnP permette ai dispositivi di richiedere automaticamente al router di aprire e inoltrare porte specifiche, rendendo possibile la comunicazione tra dispositivi all'interno e all'esterno della rete.

È comodo ma può presentare problemi di sicurezza, perché permette ai dispositivi di configurare il router senza intervento dell'utente.

Tecnica usata per far comunicare due dispositivi entrambi dietro NAT. Il "hole punching" avviene quando entrambi i dispositivi fanno una richiesta simultanea a un server di terze parti (come un server STUN), il quale "buca" i firewall NAT, permettendo ai dispositivi di comunicare direttamente.


Scenari nei quali si usa il NAT Traversal