La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento viene spiegato come configurare la funzione NAT (Network Address Translation) su un router Cisco.
Per seguire gli argomenti trattati di seguito, è richiesta una conoscenza base della terminologia NAT.
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
Cisco serie 2500 Router
Cisco IOS® Software Release 12.2 (10b)
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Nota: in questo documento, quando si fa riferimento a Internet o a un dispositivo Internet, si intende un dispositivo di una rete esterna.
Quando si configura il NAT per la prima volta, può essere complicato capire come iniziare. La procedura illustrata aiuta a definire gli obiettivi che si intendono conseguire e come configurare il NAT:
Definire le interfacce NAT interna ed esterna.
Gli utenti usano interfacce diverse?
Per connettersi a Internet vengono usate più interfacce?
Definire gli obiettivi che si intendono conseguire con la conversione NAT.
Si vuole autorizzare gli utenti interni ad accedere a Internet?
Si vuole autorizzare l'accesso ai dispositivi interni da Internet (server di posta o server Web)?
Si vuole reindirizzare il traffico TCP su un'altra porta o indirizzo TCP?
Utilizzare per consentire la comunicazione delle reti che si sovrappongono?
Configurare la funzione NAT in modo da realizzare gli obiettivi definiti. A seconda di quanto deciso al passaggio 2, determinare quale delle seguenti funzioni usare:
NAT statico
NAT dinamico
Overloading
Una combinazione di queste funzionalità.
Verificare il funzionamento del NAT.
Gli esempi proposti aiutano l'utente a completare i passaggi da 1 a 3 indicati nella procedura rapida nell'immagine precedente. e si basano su alcuni scenari comuni nei quali è consigliato implementare il NAT.
Per implementare il NAT, occorre anzitutto definire le interfacce NAT interna ed esterna. Per semplificare, potremmo definire come interfaccia interna la rete interna e come interfaccia esterna la rete esterna. Tuttavia, l'assegnazione dei termini interna ed esterna è del tutto arbitraria. La figura seguente mostra un esempio di interfacce.
Supponiamo che si desideri autorizzare gli utenti interni ad accedere a Internet, ma non si disponga di un numero adeguato di indirizzi validi da assegnare. Se tutte le comunicazioni tra i dispositivi e Internet hanno origine dai dispositivi interni, è necessario un unico indirizzo valido o un pool di indirizzi validi.
Nell'immagine viene mostrato un semplice diagramma di rete con le interfacce del router definite come interne ed esterne.
Nell'esempio, si desidera che NAT consenta ad alcuni dispositivi interni (i primi 31 di ciascuna subnet) di avviare una comunicazione con i dispositivi esterni convertendo i propri indirizzi non validi in un indirizzo o in un pool di indirizzi valido. Il pool è stato definito come l'intervallo di indirizzi da 172.16.10.1 a 172.16.10.63.
Ora è possibile configurare la funzione NAT. Per realizzare l'obiettivo definito nell'immagine precedente, usare la NAT dinamica. Con il NAT dinamico, all'inizio la tabella di conversione del router è vuota e viene popolata dopo che il traffico che deve essere convertito ha attraversato il router. Con il NAT statico invece, la conversione viene configurata staticamente e inserita nella tabella di conversione senza nessuna trasmissione di dati.
Nell'esempio, è possibile configurare il NAT in modo che converta l'indirizzo di ciascun dispositivo interno in un indirizzo univoco valido oppure in uno stesso indirizzo valido. Questo secondo metodo è noto come overloading
. Di seguito vene fornito un esempio per ciascun metodo.
Router NAT |
---|
interface ethernet 0 ip address 10.10.10.1 255.255.255.0 ip nat inside !--- Defines Ethernet 0 with an IP address and as a NAT inside interface. interface ethernet 1 ip address 10.10.20.1 255.255.255.0 ip nat inside !--- Defines Ethernet 1 with an IP address and as a NAT inside interface. interface serial 0 ip address 172.16.10.64 255.255.255.0 ip nat outside !--- Defines serial 0 with an IP address and as a NAT outside interface. ip nat pool no-overload 172.16.10.1 172.16.10.63 prefix 24 !--- Defines a NAT pool named no-overload with a range of addresses |
Nota: Cisco sconsiglia vivamente l'uso di permit any per configurare gli elenchi degli accessi a cui fanno riferimento i comandi NAT. L'uso di permit any nella conversione NAT potrebbe comportare il consumo di un numero eccessivo di risorse del router con conseguenti problemi di rete.
Nella configurazione precedente, solo i primi 32 indirizzi della subnet 10.10.10.0 e i primi 32 indirizzi della subnet 10.10.20.0 sono autorizzati dall'elenco degli accessi 7. Pertanto, vengono convertiti solo gli indirizzi che hanno questa origine. La rete interna potrebbe contenere altri dispositivi con indirizzi diversi, ma questi non verranno convertiti.
Al termine, verificare che la conversione NAT funzioni come previsto.
Router NAT |
---|
interface ethernet 0 ip address 10.10.10.1 255.255.255.0 ip nat inside !--- Defines Ethernet 0 with an IP address and as a NAT inside interface. interface ethernet 1 ip address 10.10.20.1 255.255.255.0 ip nat inside !--- Defines Ethernet 1 with an IP address and as a NAT inside interface. interface serial 0 ip address 172.16.10.64 255.255.255.0 ip nat outside !--- Defines serial 0 with an IP address and as a NAT outside interface. ip nat pool ovrld 172.16.10.1 172.16.10.1 prefix 24 |
Nella seconda configurazione precedente, il pool ovrld
NAT dispone solo di un intervallo di indirizzi. La parola chiave overload usata nel comando ip nat inside source list 7 pool ovrld overload permette di convertire gli indirizzi di più dispositivi interni in un pool con un unico indirizzo.
Un'altra variante di questo comando isip nat all'interno dell'interfaccia source list 7 serial 0 overload, che configura NAT per l'overload sull'indirizzo assegnato all'interfaccia serial 0.
Quando overloading
è configurato, il router conserva informazioni sufficienti dai protocolli di livello superiore (ad esempio, i numeri di porta TCP o UDP) per convertire nuovamente l'indirizzo globale nell'indirizzo locale corretto. Per le definizioni di indirizzo globale e indirizzo locale, fare riferimento a NAT: definizioni degli indirizzi locali e globali.
Al termine, verificare che la conversione NAT funzioni come previsto.
In alcuni casi, è necessario che i dispositivi di una rete interna scambino informazioni con i dispositivi di una rete esterna, da cui è stata avviata la comunicazione, ad esempio per ricevere e-mail. In genere, i dispositivi della rete esterna inviano le e-mail a un server di posta che risiede sulla rete interna.
Nell'esempio, occorre anzitutto definire le interfacce NAT interna ed esterna, come mostrato nel diagramma di rete precedente.
Quindi, occorre stabilire che gli utenti della rete interna possano avviare una comunicazione con i dispositivi della rete esterna. I dispositivi esterni devono poter avviare la comunicazione solo con il server di posta interno.
Infine, occorre configurare il NAT. Per realizzare gli obiettivi definiti, è possibile configurare insieme il NAT statico e il NAT dinamico. Per ulteriori informazioni sulla configurazione di questo esempio, fare riferimento a Configurazione simultanea della NAT statica e dinamica. Al termine, verificare che la conversione NAT funzioni come previsto.
I dispositivi esterni devono poter avviare una comunicazione con i dispositivi interni anche in un'altra occasione, quando la rete interna ha un server Web. In alcune configurazioni, la porta TCP su cui il server Web interno rimane in ascolto potrebbe essere diversa dalla porta 80. Ad esempio, potrebbe essere stata scelta la porta TCP 8080. In questo caso, il NAT permette di reindirizzare il traffico destinato alla porta TCP 80 in modo che venga diretto alla porta TCP 8080.
Dopo aver definito le interfacce come mostrato nel diagramma di rete precedente, si può decidere di voler reindirizzare a 172.16.10.8:8080 i pacchetti provenienti dalla rete esterna e destinati a 172.16.10.8:80. Per convertire il numero di porta TCP, è possibile usare il comando static nat. Qui di seguito viene mostrato un esempio di configurazione.
Router NAT |
---|
interface ethernet 0 ip address 172.16.10.1 255.255.255.0 ip nat inside !--- Defines Ethernet 0 with an IP address and as a NAT inside interface. interface serial 0 ip address 10.200.200.5 255.255.255.252 ip nat outside !--- Defines serial 0 with an IP address and as a NAT outside interface. ip nat inside source static tcp 172.16.10.8 8080 172.16.10.8 80 !--- Static NAT command that states any packet received in the inside |
Nota: tenere presente che nella configurazione con comando NAT statico, ogni pacchetto ricevuto sull'interfaccia interna con indirizzo di origine 172.16.10.8:8080 viene convertito in 172.16.10.8:80. Analogamente, ogni pacchetto ricevuto sull'interfaccia esterna con indirizzo di destinazione 172.16.10.8:80 viene convertito in 172.16.10.8:8080.
Al termine, verificare che la conversione NAT funzioni come previsto.
show ip nat translations Pro Inside global Inside local Outside local Outside global tcp 172.16.10.8:80 172.16.10.8:8080 --- ---
La funzione NAT è utile quando si devono reindirizzare i dispositivi sulla rete o quando si deve sostituire un dispositivo. Supponiamo ad esempio di dover sostituire il server usato da tutti i dispositivi della rete con un server nuovo con nuovo indirizzo IP; riconfigurare tutti i dispositivi in modo che usino il nuovo indirizzo è un'operazione molto lunga. Nel frattempo, il NAT ci permette di convertire i pacchetti dei dispositivi con il vecchio indirizzo in modo che questi ultimi possano comunicare con il nuovo server.
Dopo aver definito le interfacce NAT come mostrato nell'immagine precedente, è possibile configurare la funzione NAT in modo che i pacchetti esterni destinati all'indirizzo del vecchio server (172.16.10.8) vengano convertiti e inviati all'indirizzo del nuovo server. Tenere presente che il nuovo server si trova su una LAN diversa e i dispositivi di questa LAN o raggiungibili tramite questa LAN (dispositivi all'interno della rete) devono essere configurati in modo che utilizzino l'indirizzo IP del nuovo server, se possibile.
Per realizzare questo obiettivo, è possibile usare il NAT statico. Ecco un esempio di configurazione.
Router NAT |
---|
interface ethernet 0 ip address 172.16.10.1 255.255.255.0 ip nat outside !--- Defines Ethernet 0 with an IP address and as a NAT outside interface. interface ethernet 1 ip address 172.16.50.1 255.255.255.0 ip nat inside !--- Defines Ethernet 1 with an IP address and as a NAT inside interface. interface serial 0 ip address 10.200.200.5 255.255.255.252 !--- Defines serial 0 with an IP address. This interface is not |
Nota: in questo esempio, il comando NAT sull'origine interna implica anche che l'indirizzo di destinazione dei pacchetti ricevuti sull'interfaccia esterna venga convertito da 172.16.10.8 a 172.16.50.8.
Al termine, verificare che la conversione NAT funzioni come previsto.
Le reti sovrapposte si formano quando si assegnano ai dispositivi interni indirizzi IP già usati da altri dispositivi della rete esterna. Una rete sovrapposta si può formare anche in occasione di una fusione tra aziende, se entrambe usano indirizzi IP a norma RFC 1918. Le due reti devono comunicare tra loro, possibilmente senza dover reindirizzare tutti i dispositivi.
Una configurazione NAT statica crea una mappatura uno-a-uno e converte un indirizzo specifico in un altro indirizzo. Questo tipo di configurazione crea una voce nella tabella NAT finché la configurazione è presente e consente agli host interni ed esterni di avviare una connessione. Ciò è particolarmente utile per gli host che forniscono servizi applicativi come posta, Web, FTP e così via. Ad esempio:
Router(config)#ip nat inside source static 10.3.2.11 10.41.10.12 Router(config)#ip nat inside source static 10.3.2.12 10.41.10.13
il NAT dinamico è utile quando gli indirizzi disponibili sono inferiori al numero di host effettivo da convertire. Quando l'host avvia una connessione, nella tabella NAT viene creata una voce e tra gli indirizzi si stabilisce una mappatura uno-a-uno. Tuttavia, la mappatura può variare e dipende dall'indirizzo registrato disponibile nel pool al momento della comunicazione. Il NAT dinamico permette di avviare le sessioni solo dalla rete interna o dalla rete esterna per la quale è configurato. Se l'host non comunica per un determinato periodo di tempo, personalizzabile, le voci NAT dinamiche vengono rimosse dalla tabella di conversione. L'indirizzo viene quindi restituito al pool per essere usato da un altro host.
Completare questi passaggi della configurazione dettagliata come esercitazione:
Creare un pool di indirizzi.
Router(config)#ip nat pool MYPOOLEXAMPLE 10.41.10.1 10.41.10.41 netmask 255.255.255.0
Creare un elenco degli accessi per le reti interne da mappare.
Router(config)#access-list 100 permit ip 10.3.2.0 0.0.0.255 any
Associare access-list 100, scegliendo di convertire l'indirizzo 10.3.2.0 0.0.0.255 della rete interna nel pool MYPOOLEXAMPLE, quindi sovraccaricare gli indirizzi.
Router(config)#ip nat inside source list 100 pool MYPOOLEXAMPLE overload
Al termine della configurazione, verificare che la conversione NAT funzioni come desiderato. Questa operazione può essere effettuata con un analizzatore di rete, i comandi show o i comandi di debug. Per un esempio dettagliato di verifica della NAT, fare riferimento a Verifica del funzionamento della NAT e risoluzione dei problemi di base.
Gli esempi riportati in questo documento illustrano le procedure di avvio rapido che possono essere utili per configurare e distribuire NAT.
La procedura rapida include:
Definire le interfacce NAT interna ed esterna.
Quali sono i risultati desiderati con la funzione NAT?
Configurare la funzione NAT in modo da realizzare gli obiettivi definiti nel passaggio 2.
Verificare il funzionamento del NAT.
In ciascuno degli esempi precedenti sono state utilizzate varie forme del comando ip nat insidecommand. Per raggiungere gli stessi obiettivi, è possibile anche utilizzare il comando ip nat outsideper tenere presente l'ordine delle operazioni NAT. Per gli esempi di configurazione che utilizzano i comandi ip nat outsidefare riferimento alla configurazione di esempio che utilizza il comando IP NAT Outside Source List.
Negli esempi precedenti sono state illustrate queste azioni:
Comando | Azione |
---|---|
ip nat inside source |
|
ip nat outside source |
|
Revisione | Data di pubblicazione | Commenti |
---|---|---|
2.0 |
03-Nov-2023 |
Requisiti di stile, SEO e formattazione aggiornati. |
1.0 |
10-Dec-2001 |
Versione iniziale |