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:
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.
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.
192.168.1.10 → 200.100.50.10
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
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.
Rete interna 192.168.1.0/24, tre host interni, pool pubblico 200.100.50.1–200.100.50.10.
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
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.
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.
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
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
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.
| 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 |
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.