Attraversamento NAT
# Attraversamento NAT

L'attraversamento NAT (in inglese NAT traversal) è una metodologia nelle reti di computer che permette di stabilire e mantenere le connessioni IP attraverso gateways che implementano la tecnica denominata network address translation (NAT). Questa tecnica rompe il principale schema della connettività punto a punto originariamente pensata quando è nato Internet.

La tecnica dell'attraversamento NAT è richiesta, se non indispensabile, per alcune applicazioni di rete, come ad esempio quelle di condivisione file peer-to-peer e VoIP (Voice over IP).

## Dettagli

Esistono alcune tecniche, ma nessuna di queste funziona in ogni situazione poiché non esiste uno standard per la tecnica di NAT. Alcune tecniche di attraversamento NAT richiedono l'assistenza di un servizio esterno tipo STUN/TURN Altri metodi usano il server solo una volta stabilita la connessione, mentre altri sono basate sull'utilizzo di un server remoto come intermediario, con un ovvio calo di performance rispetto ad una connessione diretta..

Molte di queste tecniche, inoltre, aggirano le misure di sicurezza adattate. Molti esperti di sicurezza preferirebbero tecniche che lavorassero con NAT e firewalls e non forzassero in questi comportamenti anomali.

## Tecniche

Attualmente le tecniche disponibili sono le seguenti:

* Socket Secure (SOCKS) è una tecnologia creata negli anni '90 che usa un server proxy per scambiare traffico tra le reti o i sistemi.
* UPnP IGD che è supportata da molti piccoli NAT gateways, specialmente quelli domestici.
* Interactive Connectivity Establishment (ICE) è una tecnica usata per VoIP, comunicazioni peer-to-peer, video, instant messaging, e altre applicazioni di multimedialità interattiva; utilizza il protocollo Session Traversal Utilities for NAT (STUN).
* Application-level gateway (ALG) è un componente di firewall o NAT che consente di configurare filtri NAT traversal.
* NAT hole punching è una tecnica che sfrutta la gestione di alcuni protocolli dietro NAT (es: UDP, TCP, o ICMP) per consentirne l'attraversamento di pacchetti bloccati.
