Vai al contenuto

NAT e port forwarding

In questa lezione impari a

  • spiegare perché serve il NAT e le sue tre tipologie
  • configurare il NAT overload (PAT) da CLI
  • pubblicare un server interno con il port forwarding
  • verificare le traduzioni con show ip nat translations

Perché serve il NAT

Gli indirizzi IPv4 pubblici sono finiti da tempo: non ce n'è uno per ogni dispositivo. Le reti interne usano quindi indirizzi privati (192.168.x.x, 10.x.x.x, 172.16–31.x.x), che però non possono viaggiare su Internet.

Il NAT (Network Address Translation) risolve il problema: il router, quando un pacchetto esce, sostituisce l'indirizzo privato del mittente con il proprio indirizzo pubblico, e fa l'operazione inversa sulle risposte. È quello che fa il router di casa: tutti i dispositivi della famiglia escono su Internet con un unico indirizzo pubblico.

Il NAT ha anche un effetto di protezione: dall'esterno non si possono raggiungere i dispositivi interni, perché non hanno un indirizzo pubblico.

Schema del NAT overload: più dispositivi interni escono con un solo indirizzo pubblico
NAT overload: tanti indirizzi privati, un solo indirizzo pubblico.

Le tre tipologie di NAT

Tipo Traduzione Uso tipico
Statico 1 privato ↔ 1 pubblico, fisso un server interno raggiungibile da fuori
Dinamico privati ↔ un gruppo (pool) di pubblici aziende con più indirizzi pubblici
Overload (PAT) tanti privati → 1 pubblico, distinti dalla porta la quasi totalità delle reti, compresa quella di casa

Nel PAT il router tiene una tabella che associa a ogni connessione interna (IP privato e porta) una porta diversa sull'indirizzo pubblico: così sa a chi restituire ogni risposta.

Inside e outside

Il router deve sapere quale interfaccia guarda dentro (la LAN privata) e quale fuori (verso il provider). È l'errore più frequente: se le interfacce non sono marcate, il NAT non traduce nulla.

Configurazione del NAT overload in CLI

Router> enable
Router# configure terminal

! Passo 1: un'access-list indica QUALI indirizzi interni tradurre
Router(config)# ip access-list standard test-nat
Router(config-std-nacl)# permit 192.168.1.0 0.0.0.255
Router(config-std-nacl)# exit

! Passo 2: NAT overload sull'indirizzo dell'interfaccia esterna
Router(config)# ip nat inside source list test-nat interface Serial2/0 overload

! Passo 3: l'interfaccia ESTERNA è outside
Router(config)# interface Serial2/0
Router(config-if)# ip nat outside
Router(config-if)# exit

! Passo 4: l'interfaccia INTERNA è inside
Router(config)# interface FastEthernet0/0
Router(config-if)# ip nat inside
Router(config-if)# exit

Nell'access-list si usa la wildcard, cioè la maschera rovesciata: per una /24 è 0.0.0.255, per una /26 è 0.0.0.63, per una /25 è 0.0.0.127.

Verifica

Router# show ip nat translations
Router# show ip nat statistics
Router# clear ip nat translation *

Fate partire un ping o una pagina web da un PC interno, poi guardate show ip nat translations: vedrete l'indirizzo privato (inside local) e quello pubblico con cui è uscito (inside global).

Il port forwarding

Il NAT blocca le connessioni che arrivano da fuori. Ma se l'azienda ha un server web interno che deve essere visibile su Internet? Si apre una "porta" precisa: il port forwarding dice al router "le richieste che arrivano sulla porta 80 del mio indirizzo pubblico, girale a quel server interno".

Router(config)# ip nat inside source static tcp 192.168.1.10 80 interface GigabitEthernet0/0 80

Si legge: "il server interno 192.168.1.10, porta 80, è raggiungibile sulla porta 80 dell'interfaccia esterna". Se la vostra versione di Packet Tracer non accetta la forma con interface, scrivete al suo posto l'indirizzo pubblico: ... static tcp 192.168.1.10 80 200.10.0.1 80.

Il port forwarding sul router di casa

Sui router domestici si fa dall'interfaccia grafica. In Packet Tracer, sull'Home Router: GUI → Applications & Gaming → Single Port Forwarding, indicando porta esterna, porta interna, protocollo e IP del server.

Rete con router di casa e port forwarding verso un server interno in Packet Tracer
Port forwarding su un router domestico.
Port forwarding e router di casa

Esercizi

⭐ Facile

Esercizio 1 – NAT overload base.

  • Rete interna 192.168.1.0/24: router Gig0/1 192.168.1.1 (inside), switch e 3 PC con IP statici .10, .11, .12, gateway 192.168.1.1.
  • Rete esterna "Internet" 100.0.0.0/30: router Gig0/0 100.0.0.1 (outside), server web 100.0.0.2.

Costruite la topologia, configurate il NAT overload (access-list per la rete 192.168.1.0, overload su Gig0/0, interfacce inside e outside), attivate una pagina web sul server esterno e apritela dal browser dei PC digitando 100.0.0.2.

Verifiche: ✅ i PC pingano il server esterno ✅ il browser mostra la pagina ✅ show ip nat translations mostra le traduzioni ❌ il server esterno non raggiunge i PC interni (è corretto così!)

⭐⭐ Medio

Esercizio 2 – Rete ISP con NAT, Wi-Fi, RADIUS e routing pubblico.

Partite dal file Esercitazione_NAT.pkt. La topologia: PC e notebook dell'alunno → Home Router → ISP Iliad → ISP Wind → Router Azienda e Router IIS (già configurato). Ci sono 4 reti pubbliche e le reti private Alunno, Azienda e IIS: ogni studente ha i propri indirizzi nella sua tabella personale.

  1. Reti private (Alunno e Azienda). All'interfaccia LAN del router assegnate il primo host della rete privata. Configurate il DHCP sull'Home Router (GUI: Config → DHCP) e sul Router Azienda (CLI), escludendo il gateway più il 20% degli host disponibili, arrotondato per eccesso. Aggiungete un access point con SSID e sicurezza, collegate notebook e laptop in Wi-Fi e verificate la connettività.
  2. Wi-Fi dell'alunno con RADIUS. Server RADIUS nella rete privata Alunno: attivate AAA, aggiungete un utente (es. alunno01), impostate il segreto condiviso; sull'access point WPA2-Enterprise con IP del RADIUS e segreto; sui client la connessione Enterprise con le credenziali.
  3. NAT sul Router Azienda.
Router(config)# ip access-list standard NAT_PRIV
Router(config-std-nacl)# permit [rete_privata] [wildcard]
Router(config-std-nacl)# exit
Router(config)# ip nat inside source list NAT_PRIV interface [interfaccia_WAN] overload
Router(config)# interface [interfaccia_LAN]
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# interface [interfaccia_WAN_verso_Wind]
Router(config-if)# ip nat outside
  1. Routing statico, solo verso le reti pubbliche. Ogni router conosce le reti pubbliche non collegate direttamente. Ad esempio su ISP Iliad:
Router(config)# ip route [rete_pubblica_3] [maschera] [next-hop_ISP_Wind]
Router(config)# ip route [rete_pubblica_4] [maschera] [next-hop_ISP_Wind]
  1. Test finale: da un PC privato aprite il browser su http://175.168.0.2 (il server dell'IIS, già configurato).
Video della soluzione
Soluzione dell'esercizio 2

⭐⭐ Medio

Esercizio 3 – NAT, DHCP e DNS locale.

  • Rete interna 192.168.10.0/25 (maschera 255.255.255.128): router Gig0/1 192.168.10.1 (inside), server DNS 192.168.10.2 (statico), switch e 3 PC con DHCP (intervallo .10–.126).
  • Rete esterna 50.0.0.0/30: router Gig0/0 50.0.0.1 (outside), server web 50.0.0.2.

Configurate la subnet /25 (wildcard per l'access-list: 0.0.0.127), il DHCP sul router escludendo .1 e .2 e con DNS 192.168.10.2, il DNS locale con www.miosito.ext → 50.0.0.2 e il NAT overload. Dal browser dei PC navigate su www.miosito.ext.

Verifiche: ✅ i PC ricevono IP, gateway e DNS dal DHCP ✅ nslookup www.miosito.ext restituisce 50.0.0.2 ✅ il browser mostra la pagina ✅ show ip nat translations

⭐⭐ Medio

Esercizio 4 – NAT e port forwarding: il server web interno.

  • Rete interna 192.168.1.0/26 (maschera 255.255.255.192, 62 host): router Gig0/1 192.168.1.1 (inside), server web 192.168.1.10 (statico, pagina "Intranet Aziendale"), switch e 2 PC (.20, .21 statici).
  • Rete esterna 200.10.0.0/30: router Gig0/0 200.10.0.1 (outside), PC "Utente Remoto" 200.10.0.2.

Configurate la subnet /26 (wildcard 0.0.0.63), il NAT overload perché i PC interni escano, e il port forwarding:

Router(config)# ip nat inside source static tcp 192.168.1.10 80 interface GigabitEthernet0/0 80

L'utente remoto apre il browser, digita 200.10.0.1 e deve vedere la pagina interna.

Verifiche: ✅ i PC interni raggiungono l'esterno ✅ l'utente remoto vede "Intranet Aziendale" ✅ show ip nat translations mostra il PAT e la regola statica ❌ l'utente remoto non può pingare i PC interni

⭐⭐⭐ Avanzato

Esercizio 5 – Rete aziendale completa: subnetting, DHCP, DNS e NAT.

  • Reparto Uffici 192.168.1.0/26: switch e 3 PC con DHCP.
  • Reparto Server 192.168.1.64/26: switch, server web 192.168.1.66 e server DNS 192.168.1.67 (statici).
  • Router aziendale: Gig0/1 192.168.1.1 (gateway Uffici, inside), Gig0/2 192.168.1.65 (gateway Server, inside), Gig0/0 150.20.0.1 (verso Internet, outside).
  • Rete esterna 150.20.0.0/30: router ISP 150.20.0.2 e PC "Cliente Remoto" 150.20.1.10.

Richieste:

  1. verificate che le due subnet /26 non si sovrappongano;
  2. DHCP per gli Uffici escludendo .1–.5, con DNS 192.168.1.67;
  3. DNS locale: www.azienda.local → 192.168.1.66;
  4. sul server web una pagina "Sito Aziendale";
  5. NAT overload per entrambe le subnet interne;
  6. port forwarding della porta 80 verso 192.168.1.66;
  7. routing statico tra router aziendale e router ISP;
  8. test: i PC aprono www.azienda.local (DNS + HTTP) e raggiungono l'esterno (NAT); il cliente remoto digita 150.20.0.1 nel browser.

Verifiche: ✅ i PC degli uffici ricevono DHCP e DNS ✅ aprono www.azienda.local ✅ raggiungono il PC esterno ✅ il cliente remoto vede "Sito Aziendale" ✅ show ip nat translations ❌ il cliente remoto raggiunge l'interno solo sulla porta 80