Network Address Translation (NAT)

NAT statico, NAT dinamico e NAT overload (PAT)

Teoria di base ed esempi di configurazione su router Cisco
Introduzione al NAT

Il Network Address Translation è una funzione dei router che permette di riscrivere gli indirizzi IP contenuti nei pacchetti. Viene usato per collegare reti private (es. 192.168.x.x) a reti pubbliche, risparmiando indirizzi IPv4 e nascondendo la struttura interna della LAN.

Le interfacce del router che partecipano al NAT vengono classificate come:

  • inside: lato rete interna privata
  • outside: lato rete esterna o pubblica
interface fastethernet0/0
 ip nat inside

interface fastethernet0/1
 ip nat outside

Nei pacchetti in direzione inside → outside il router modifica l’indirizzo sorgente. Nei pacchetti di risposta outside → inside effettua la traduzione inversa, usando una tabella di associazione mantenuta in memoria.

NAT statico

Il NAT statico definisce una corrispondenza fissa 1:1 tra un indirizzo interno privato e un indirizzo esterno pubblico. È usato quando un host interno deve essere raggiungibile dall’esterno, come un server web o un server di posta.

Schema logico
192.168.1.10  →  200.100.50.10
Configurazione base

Esempio: rete interna 192.168.1.0/24, server interno 192.168.1.10, IP pubblico 200.100.50.10.

interface fastethernet0/0
 ip nat inside
interface fastethernet0/1
 ip nat outside

ip nat inside source static 192.168.1.10 200.100.50.10
Note operative
  • La traduzione è permanente: la mappatura rimane valida finché configurata.
  • Il numero di indirizzi pubblici necessari cresce con il numero di host esposti.
  • La visibilità dall’esterno è totale: il firewall va gestito separatamente.
NAT dinamico

Il NAT dinamico utilizza un pool di indirizzi pubblici. Quando un host interno genera traffico verso l’esterno, il router gli assegna uno degli indirizzi del pool. La traduzione rimane attiva per la durata della comunicazione e poi l’indirizzo torna libero.

Scenario di esempio

Rete interna 192.168.1.0/24, tre host interni, pool pubblico 200.100.50.1–200.100.50.10.

Configurazione
ip nat pool poolNAT 200.100.50.1 200.100.50.10 netmask 255.255.255.0
access-list 10 permit 192.168.1.0 0.0.0.255
ip nat inside source list 10 pool poolNAT

interface fastethernet0/0
 ip nat inside
interface fastethernet0/1
 ip nat outside
Possibili traduzioni generate
192.168.1.1 → 200.100.50.1
192.168.1.2 → 200.100.50.2
192.168.1.3 → 200.100.50.3

La lista di accesso individua gli indirizzi da tradurre, mentre il pool specifica la gamma di indirizzi pubblici utilizzabili.

NAT overload (PAT)

Il Port Address Translation, o NAT overload, permette a molti host interni di condividere un unico indirizzo IP pubblico. Il router distingue le singole connessioni usando le porte TCP/UDP sorgente.

È la configurazione tipica dei router domestici e di molte reti aziendali: l’intera LAN esce su Internet con un solo indirizzo pubblico.

Esempio logico
192.168.1.10:1025 → 200.100.50.10:40001
192.168.1.11:1026 → 200.100.50.10:40002
192.168.1.12:1027 → 200.100.50.10:40003
Configurazione con interfaccia come indirizzo pubblico

Rete interna 192.168.1.0/24, connessione verso Internet sulla f0/1 del router.

interface fastethernet0/0
 ip nat inside
interface fastethernet0/1
 ip nat outside

access-list 10 permit 192.168.1.0 0.0.0.255
ip nat inside source list 10 interface fastethernet0/1 overload
Configurazione PAT con pool
ip nat pool NATPOOL 200.100.50.10 200.100.50.10 netmask 255.255.255.0
access-list 10 permit 192.168.1.0 0.0.0.255
ip nat inside source list 10 pool NATPOOL overload

Il termine overload indica che più connessioni useranno lo stesso indirizzo globale sfruttando porte diverse.

Confronto tra NAT statico, dinamico e PAT
Tipo Relazione Indirizzi pubblici richiesti Uso principale
NAT statico 1 interno ↔ 1 pubblico Uno per ogni host pubblicato Server interni raggiungibili dall’esterno
NAT dinamico Molti interni ↔ pool di pubblici Un pool dedicato Accesso verso l’esterno con più IP pubblici
PAT (overload) Molti interni ↔ 1 pubblico (porte) Uno solo Collegamento di intere LAN con un solo IP
Comandi di verifica

Principali comandi IOS per controllare il funzionamento del NAT:

show ip nat translations
show ip nat statistics
debug ip nat

Le traduzioni attive mostrano la corrispondenza tra indirizzi inside local (privati), inside global (pubblici usati verso l’esterno) e indirizzi di destinazione outside.