Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Convenzioni

Premesse

Approccio basato sull'elenco degli accessi

Dall'host 1 all'host 2

Dall'host 1 all'host 3

Approccio route map

Dall'host 1 all'host 2

Dall'host 1 all'host 3

Informazioni correlate

Introduzione

Questo documento spiega come l'uso di elenchi degli accessi rispetto a mappe dei percorsi modifichi la funzionalità di Network Address Translation (NAT). Per ulteriori informazioni su NAT, fare riferimento a Cisco IOS NAT.

Prerequisiti

Requisiti

Nessun requisito specifico previsto per questo documento.

Componenti usati

Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:

- Cisco serie 2500 Router.

- Software Cisco IOS® versione 12.3(3).

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.

Convenzioni

Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.

Premesse

NAT utilizza solo elenchi degli accessi e mappe percorsi quando deve creare una voce di traduzione. Se esiste già una voce di traduzione corrispondente al traffico, verrà utilizzata la voce di traduzione; gli elenchi degli accessi o le mappe dei percorsi non saranno consultati. La differenza tra l'utilizzo di un elenco degli accessi o di una mappa dei percorsi consiste nel tipo di voce di traduzione che verrà creata.

Route map

Quando NAT utilizza una mappa dei percorsi per decidere di creare una voce di traduzione, crea sempre una voce di traduzione "completamente estesa". Questa voce di conversione contiene sia le voci dell'indirizzo interno che quelle dell'indirizzo esterno (locale e globale) ed eventuali informazioni sulle porte TCP o UDP. Per ulteriori informazioni, fare riferimento al documento NAT: Definizioni locali e globali per ulteriori informazioni su indirizzi interni ed esterni (locali e globali).

Elenchi di accesso (nessun overload)

Quando NAT utilizza un elenco degli accessi per decidere di creare una voce di traduzione, crea una voce di traduzione "semplice". Questa voce "semplice" contiene solo voci di indirizzi IP locali e globali solo per l'interno o l'esterno, a seconda che il comando ip nat inside o ip nat outside sia configurato. Inoltre, non include informazioni sulle porte TCP o UDP.

Elenchi di accesso (con overload)

Quando NAT utilizza un elenco degli accessi ed è stato specificato anche l'overload, NAT crea una voce di traduzione "completamente estesa". (Vedere Nota 1). L'operazione è simile al caso della mappa del percorso, con la differenza che la mappa del percorso ha alcune caratteristiche aggiuntive. Per ulteriori informazioni, vedere la nota 2. È possibile visualizzare un esempio di una semplice voce di traduzione NAT e una voce di traduzione NAT completamente estesa selezionando uno dei seguenti collegamenti:

- Voce di traduzione NAT semplice

- Voce di traduzione NAT completamente estesa

Questo è un esempio di diagramma di rete usato per illustrare la differenza tra l'utilizzo di una mappa dei percorsi e un elenco degli accessi con NAT:

Nel diagramma di rete di esempio riportato di seguito è necessario convertire gli host della versione 10.1.1.0 in:

- 131.108.2.0 quando si va a 131.108.1.0

- 131.118.2.0 quando si va a 131.118.1.0

Approccio basato sull'elenco degli accessi

Con un approccio basato sull'elenco degli accessi, per tradurre gli host sulla versione 10.1.1.0 è necessario attenersi alla seguente procedura:

ip nat pool pool108 131.108.2.1 131.108.2.254 prefix-length 24

!--- Defines a pool of global addresses to be allocated as needed.

ip nat pool pool118 131.118.2.1 131.118.2.254 prefix-length 24

ip nat inside source list 108 pool pool108

!--- Establishes dynamic source translation, specifying the !--- access list defined below.

ip nat inside source list 118 pool pool118

interface ethernet0

ip address 10.1.1.1 255.255.255.0

ip nat inside

!--- Marks the interface as connected to the inside.

interface ethernet1

ip address 10.1.2.1 255.255.255.0

ip nat outside

!--- Marks the interface as connected to the outside.

access-list 108 permit ip 10.1.1.0 0.0.0.255 131.108.1.0 0.0.0.255

!--- Defines the access-list mentioning those addresses !--- that are to be translated.

access-list 118 permit ip 10.1.1.0 0.0.0.255 131.118.1.0 0.0.0.255

Per ulteriori informazioni su questi comandi, fare riferimento a Indirizzamento IP e comandi di servizi.

Dall'host 1 all'host 2

Ecco cosa succede quando l'host 1 si connette all'host 2.

Packet on (Network 1) s:10.1.1.2(1024)     d:131.108.1.2(23)

Packet on (Network 2) s:131.108.2.1(1024)  d:131.108.1.2(23)   (after NAT)

Poiché NAT ha utilizzato un elenco degli accessi per abbinare questo traffico, viene creata una voce di traduzione semplice, che include solo informazioni di traduzione interne e nessuna informazione su protocollo o porta:

inside                         outside

local        global          global         local

10.1.1.2     131.108.2.1       ----           ----

Pacchetto restituito: Dall'host 2 all'host 1:

Packet on (Network 2)  s:131.108.1.2(23)  d:131.108.2.1(1024)

Packet on (Network 1)  s:131.108.1.2(23)  d:10.1.1.2(1024)      (after NAT)

Dall'host 1 all'host 3

Con la semplice traduzione di cui sopra, ecco cosa succede quando l'host 1 si connette anche all'host 3:

Packet on (Network 1)  s:10.1.1.2(1025)     d:131.118.1.2(23)

Packet on (Network 2)  s:131.108.2.1(1025)  d:131.118.1.2(23)   (after NAT)

Potete vedere che c'è un problema. I pacchetti che vanno dagli host 10.1.1.0 all'host 131.118.1.0 devono essere convertiti in host 131.118.2.0, non 131.108.2.0. Ciò si verifica perché esiste già una voce di traduzione NAT per 10.1.1.2 <—> 131.108.2.1 che corrisponde anche al traffico tra l'host 1 e l'host 3. Pertanto, questa voce di traduzione verrà utilizzata e gli elenchi degli accessi 108 e 11111 8 non sono selezionate.

Anche se la voce di traduzione semplice è presente nella tabella di traduzione NAT, può essere utilizzata da qualsiasi utente esterno su qualsiasi host esterno per inviare un pacchetto all'host 1, a condizione che l'utente esterno utilizzi l'indirizzo globale interno (131.108.2.1) per l'host 1. Normalmente, per consentire questa operazione, è necessaria una traduzione NAT statica.

Approccio route map

Il modo corretto per configurare l'esempio in questo documento è utilizzare le mappe percorsi. Con un approccio basato sulla mappa dei percorsi, è possibile effettuare le seguenti operazioni per tradurre gli host in 10.1.1.0:

ip nat pool pool-108 131.108.2.1 131.108.2.254 prefix-length 24

ip nat pool pool-118 131.118.2.1 131.118.2.254 prefix-length 24

ip nat inside source route-map MAP-108 pool pool-108

!--- Establishes dynamic source translation, specifying !--- the route-map MAP-108 which is defined below.

ip nat inside source route-map MAP-118 pool pool-118

!--- Establishes dynamic source translation, specifying the route-map MAP-118. !--- Here, the route-maps are consulted instead of !--- access-lists (as in the previous case).

interface ethernet0

ip address 10.1.1.1 255.255.255.0

ip nat inside

interface ethernet1

ip address 10.1.2.1 255.255.255.0

ip nat outside

access-list 108 permit ip 10.1.1.0 0.0.0.255 131.108.1.0 0.0.0.255

access-list 118 permit ip 10.1.1.0 0.0.0.255 131.118.1.0 0.0.0.255

route-map MAP-108 permit 10

!--- Defines the Route-map MAP-108.

match ip address 108

!--- Specifies the criteria for translation. Here, the IP !--- address mentioned in the access-list 108 is translated. !--- The translation is defined in the !--- ip nat inside source route-map MAP-108 pool pool-108 command.

route-map MAP-118 permit 10

!--- Defines the Route-map MAP-108.

match ip address 118

!--- The IP address mentioned in the access-list 118 is translated. !--- The translation is defined in the !--- ip nat inside source route-map MAP-118 pool pool-118 command.

Per ulteriori informazioni su questi comandi, fare riferimento a Indirizzamento IP e comandi di servizi.

Dall'host 1 all'host 2

Di seguito viene riportato ciò che accade quando l'host 1 si connette all'host 2:

Packet on (Network 1) s:10.1.1.2(1024)     d:131.108.1.2(23)

Packet on (Network 2) s:131.108.2.1(1024)  d:131.108.1.2(23)   (after NAT)

In questo caso, poiché NAT ha utilizzato una mappa dei percorsi per abbinare il traffico da tradurre, NAT creerà una voce di traduzione completamente estesa, che include informazioni di traduzione sia interne che esterne:

inside                               outside

local            global             global             local

10.1.1.2:1024    131.108.2.1:1024   131.108.1.2:23     131.108.1.2:23

Pacchetto restituito: Dall'host 2 all'host 1:

Packet on (Network 2) s:131.108.1.2(23)  d:131.108.2.1(1024)

Packet on (Network 1) s:131.108.1.2(23)  d:10.1.1.2(1024)      (after NAT)

Dall'host 1 all'host 3

Ora, quando l'host 1 invia un pacchetto all'host 3, viene visualizzato questo messaggio:

Packet on (Network 1) s:10.1.1.2(1025)     d:131.118.1.2(23)

Packet on (Network 2) s:131.118.2.1(1025)  d:131.118.1.2(23)   (after NAT)

La traduzione ha funzionato correttamente perché il pacchetto su (N1) non corrisponde alla voce di traduzione completamente estesa utilizzata per il traffico dall'host 1 all'host 2. Poiché la traduzione esistente non corrisponde, NAT crea un'altra voce di traduzione per il traffico dall'host 1 all'host 3.

Queste sono le voci di traduzione completamente estese sul router NAT:

inside                               outside

local            global             global             local

10.1.1.2:1024    131.108.2.1:1024   131.108.1.2:23     131.108.1.2:23

10.1.1.2:1025    131.118.2.1:1025   131.118.1.2:23     131.118.1.2:23

Poiché la tabella di conversione NAT include due voci complete, il traffico che va alle due diverse destinazioni dalla stessa origine verrà tradotto correttamente.

A differenza della voce di traduzione semplice creata tramite l'elenco degli accessi, la voce di traduzione completamente estesa creata tramite la mappa dei percorsi non può essere utilizzata da altri utenti esterni per inviare un pacchetto all'host 1. A tale scopo, è necessaria una traduzione NAT statica.

Nota 1

In caso di elenco degli accessi con sovraccarico, la configurazione è simile a quella del file elenco degli accessi senza sovraccarico. L'eccezione è che è necessario aggiungere la parola chiave overload al comando ip nat nell'elenco di origine 108 pool108 e ip nat nell'elenco di origine 118 pool118.

Nota 2

Il vantaggio di usare le route map è che con il comando match si possono avere più opzioni rispetto all'indirizzo IP di origine. Ad esempio, sotto la route-map, è possibile specificare match interface o match ip next-hop. Le route map consentono di specificare l'indirizzo IP e l'interfaccia o l'indirizzo dell'hop successivo a cui inoltrare il pacchetto. Pertanto, le route map con NAT vengono utilizzate in uno scenario in cui il sottoscrittore esegue il multihoming a diversi ISP.

Informazioni correlate

- NAT - Possibilità di utilizzare mappe percorsi con traduzioni statiche

- Cisco IOS Network Address Translation

- Configurazione di Network Address Translation

- NAT: Definizioni locali e globali

- Guida di riferimento ai comandi IP di Cisco IOS per indirizzamento e servizi, versione 12.3

- Documentazione e supporto tecnico – Cisco Systems