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 (Session Traversal Utilities for NAT):
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 (Traversal Using Relays around NAT):
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.
UPnP (Universal Plug and Play):
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.
Hole Punching:
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
VoIP: Per chiamate vocali e videochiamate su Internet.
VPN: Per permettere a dispositivi remoti di connettersi a una rete aziendale o domestica.
Peer-to-peer (P2P): Per scambi di file tra computer (ad esempio in applicazioni come BitTorrent).
Giochi online: Per stabilire connessioni dirette tra giocatori su reti differenti.
Sito: 7ecnologie
Sezione: 13. Reti
Capitolo: 03. La suite TCP/IP
Paragrafo: 02. Livello Internet
Approfondimento: - 10. NAT Traversal
Indice dei capitoli: 00. Risorse - 01. Le telecomunicazioni - 02. Il modello OSI - 03. La suite TCP/IP - 04. Il cablaggio strutturato - 05. LAB - 07. Tutorial - 98. Esercizi
Indice dei paragrafi: 01. Network Access - 02. Livello Internet - 03. Livello Transport - 04. Livello Application
Indice degli approfondimenti: 01. Protocolli - 02. Classificazione degli indirizzi IP - 03. Subnetting - 04. Subnetting: esempi - 05. Ping e traceroute - 06. Routing - 07. NAT - 08. Autonomous System - 09. Carrier-Grade NAT - 10. NAT Traversal